YD_S 개발로그
article thumbnail
Published 2024. 3. 24. 12:23
injectable 패키지 (DI 관련) Flutter
 

injectable | Dart package

Injectable is a convenient code generator for get_it. Inspired by Angular DI, Guice DI and inject.dart.

pub.dev

 

DI(Dependency Injection) 패키지인 get_it 의 짝궁인 injectable 패캐지를 소개합니다.

IoC(Inversion of Control)의 이점이 있는 get_it을 더 편리하게 사용할 수 있습니다.

그렇기에 필수적으로 get_it 패키지와 함께 사용해야합니다.

 

Annotation을 사용하기에 백엔드 프레임워크인 Spring을 해보신 분들이라면 익숙하길꺼라 생각듭니다.

 

사용하기

  • pubspec.yaml에 get_it과 injectable 관련 패키지를 추가합니다.
  • build_runner를 통해 코드 생성을 하기 위해 injectable_generator 패키지도 함께 추가합니다.
  • dart 파일을 생성해 초기화 메소드를 생성해줍니다.
  • main 에서 초기화 매소드를 호출해 injectable 패키지를 사용할 수 있도록 합니다.

 

Factory

  • @injectable을 사용해 Factory 등록을 합니다.
  • ServiceB 클래스 내 ServiceA 클래스가 DI 되어 있어있는 것을 확인할 수 있습니다.

Singletone

  • @singleton 와@lazySingleton을 사용해 싱클톤 등록을 합니다.
  • @disposeMethod 을 활용해 싱글톤을 직접 폐기 시킬 수 있습니다.

 

Module

  • ThirdParty 의 종속성을 부여하기 위해 사용합니다.
  • module로 등록하기 위해선 abstict class 여야합니다.

간단한 사용법에 대해 설명하였습니다.

이 외에도 DI 관련 다양한 활용법이 있습니다. 패키지 README를 꼭 한 번 확인 후 간단하게 DI, IoC를 활용해보세요~!

 

profile

YD_S 개발로그

@YD_S

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!