[flutter] Injectable을 사용하여 플러터 앱의 UI와 비지니스 로직의 분리

플러터(Flutter)는 크로스 플랫폼 앱 개발을 위한 인기있는 프레임워크입니다. 하지만 플러터 앱을 개발할 때 UI와 비지니스 로직을 분리하는 것은 가끔 어려운 작업일 수 있습니다. 이러한 문제를 해결하기 위해 Injectable 라이브러리를 사용할 수 있습니다.

Injectable이란?

Injectable은 플러터 앱에서 의존성 주입을 쉽게 처리할 수 있도록 도와주는 라이브러리입니다. 의존성 주입은 객체 간의 종속성을 최소화하고 코드의 재사용성과 유지보수성을 향상시킬 수 있는 패턴입니다. Injectable을 사용하면 앱의 비지니스 로직을 독립적으로 테스트하고 유지보수할 수 있습니다.

사용 방법

  1. pubspec.yaml 파일에 Injectable 라이브러리를 추가합니다.

    dependencies:
      injectable: ^1.4.0
    
  2. main.dart 파일에서 Injectable을 초기화합니다.

    import 'package:injectable/injectable.dart';
    import 'package:flutter/material.dart';
       
    void main() {
      configureInjection(Environment.prod);
      runApp(MyApp());
    }
    
  3. 비지니스 로직 클래스에 @injectable 애노테이션을 추가합니다.

    @injectable
    class BusinessLogic {
      // 비지니스 로직 구현
    }
    
  4. UI 클래스에서 @injectable 애노테이션을 사용하여 비지니스 로직 클래스를 주입합니다.

    @injectable
    class UI {
      final BusinessLogic businessLogic;
       
      UI(this.businessLogic);
       
      // UI 구현
    }
    
  5. 필요한 곳에서 getIt 객체를 사용하여 클래스를 인스턴스화하고 주입합니다.

    UI ui = getIt<UI>();
    

장점

마무리

이처럼 Injectable을 사용하면 플러터 앱의 UI와 비지니스 로직을 효율적으로 분리할 수 있습니다. 이는 코드의 가독성, 유지보수성 및 테스트 용이성을 향상시키는 데 도움이 됩니다. Injectable을 사용하여 더욱 좋은 플러터 앱을 개발해보세요!

참고: injectable