[flutter] Injectable을 사용하여 플러터 앱의 유지 보수성 향상하기

개발자들은 앱을 만들 때 유지 보수성과 확장성을 고려해야 합니다. 플러터(Flutter) 앱 개발에서도 이와 마찬가지입니다. 이번 글에서는 injectable 패키지를 사용하여 플러터 앱의 유지 보수성을 향상시키는 방법을 알아보겠습니다.

injectable 패키지란?

injectable은 의존성 주입(Dependency Injection)을 간편하게 구현할 수 있도록 도와주는 플러터 패키지입니다. 의존성 주입은 앱 내의 객체들 간의 의존성을 관리하고, 객체 간의 결합도를 낮춰 유연하고 테스트 가능한 코드를 작성하는 데 도움이 됩니다.

injectable 사용하기

단계 1: injectable 패키지 추가하기

먼저 pubspec.yaml 파일에 injectable 패키지를 추가해주세요.

dependencies:
  injectable: ^1.0.0

그런 다음 터미널에서 다음 명령어를 실행하여 패키지를 다운로드하세요.

flutter pub get

단계 2: injectable 설정하기

앱의 루트 폴더에 injectable.config.dart 파일을 생성하고, 다음과 같이 설정해주세요.

import 'package:injectable/injectable.dart';
import 'package:YOUR_PROJECT_NAME/your_injectable_module.dart';

@module
abstract class InjectableModule {
  @lazySingleton
  YourService get yourService;
}

여기서 YOUR_PROJECT_NAME은 자신의 프로젝트 이름으로 변경해야 합니다.

단계 3: 의존성 주입하기

이제 의존성을 주입할 클래스나 함수에 @injectable 어노테이션을 추가해주세요.

@injectable
class YourService {
  // ...
}

그런 다음 해당 클래스 또는 함수를 사용하고 싶은 곳에서 GetIt 객체를 사용하여 의존성을 주입하거나 검색할 수 있습니다.

final yourService = GetIt.instance.get<YourService>();

결론

injectable 패키지를 사용하면 플러터 앱의 유지 보수성을 향상시킬 수 있습니다. 의존성 주입을 통해 객체 간의 결합도를 낮추고, 유연하고 테스트 가능한 코드를 작성할 수 있습니다. injectable을 사용하여 개발 생산성을 높이고 팀원들과 협업을 원활하게 할 수 있습니다.

더 자세한 내용은 공식 문서를 참고해보세요.