라벨이 DI인 게시물 표시

안드로이드 Kotlin Hilt로 의존성 주입(DI) 사용하기 2편

이미지
개발환경 안드로이드 스튜디오 4.1.1 JDK 1.8 Kotlin 1.4.20 모든 코드는  https://github.com/aispark/myhilt 에 있습니다. Hilt 모듈 생성자 삽입할 수 없는 상황(외부 라이브러리, 인터페이스일 경우)에서는 Hilt 모듈을 사용하여 Hilt에 바인딩 정보를 제공할 수 있습니다.  @Module @InstallIn (ApplicationComponent:: class ) object HashcodModule { @Provides fun provideHashcode () = hashCode().toString() } 필드 삽입을 실행할 수 있는 각 Android 클래스마다 @InstallIn 주석에 참조할 수 있는 관련 Hilt 구성요소가 있습니다. 각 Hilt 구성요소는 해당 Android 클래스에 결합을 삽입해야 합니다.  ApplicationComponent 는 인젝터 되는 클래스가 Applicaiton 입니다. @AndroidEntryPoint class MainActivity : AppCompatActivity() { @Inject lateinit var singletonClass : SingletonClass @Inject lateinit var hashcode : String override fun onCreate (savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout. activity_main ) Log.d( "singleton" , singletonClass .hashCode().toString()) Log.d( "singleton" , "hashcode: $ hashcode " ) } } 다른 Activity나 Fragmen...

안드로이드 Kotlin Hilt로 의존성 주입(DI) 사용하기 1편

이미지
의존성 주입 의존성 주입은(DI) 프로그래밍에 널리 사용되는 개념입니다. DI 원칙을 따르면 훌륭한 앱 아키텍쳐 토대를 만들 수 있으며 다음과 같은 이점이 있습니다. 코드 재사용 가능 리팩토링 편의성 테스트 편의성 앱에서 Hilt 사용하기 Hilt는 Android에서 의존성 주입을 위한 Jetpack의 권장 라이브러리입니다. Hilt는 프로젝트의 모든 Android 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써 애플리케이션에서 DI를 실행하는 표준 방법을 정의합니다. Hilt는 인기 있는 DI 라이브러리 Dagger를 기반으로 빌드되었으며 앱에 적용하기 어렵다는 단점을 개선되어 비교적 쉽게 앱에 적용할 수 있습니다. 개발환경 안드로이드 스튜디오 4.1.1 JDK 1.8 Kotlin 1.4.20 모든 코드는  https://github.com/aispark/myhilt 에 있습니다. 프로젝트 생성 Empty Activity 선택 Language를 Kotlin으로 선택 Minimum SDK API21 선택 후 Finish 클릭 레이아웃 액티비티와 프레그먼트를 이동하면서 주입되는 인스턴스가 싱클턴인지 확인합니다. 소스는  https://github.com/aispark/myhilt 에서 확인하세요. 의존성 추가 buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha' } } 프로젝트의 루트 build.gradle  파일에 추가합니다. plugins { ... id 'kotlin-kapt' id 'dagger.hilt.android.plugin' } dependencies { ... //navgation 의존성 추가 implementation 'androidx.navigation:n...