Kotlin중급 #2 Hilt (2021.08.05수정)

0

구글 공식사이트

Hilt는 DI 라이브러리다.

DI는 의존성 주입이라는 의미로, 객체생성없이 원래있었던 객체를 넣어준다는 의미이다.
확장성런타임시간, 컴파일 안정성까지 책임지는 Hilt를 알아보자

😀 1. 라이브러리 추가

프로젝트의 빌드에 추가한다.

buildscript {
    ...
    ext.hilt_version = '2.38.1'
    dependencies {
        ...
        classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
    }
}

이제 앱수준의 빌드에 아래의 글을 추가한다.

plugins {
    kotlin("kapt")
    id("dagger.hilt.android.plugin")
}

android {
    ...
}

dependencies {
    implementation("com.google.dagger:hilt-android:$hilt_version")
    kapt("com.google.dagger:hilt-android-compiler:$hilt_version")
}

😋 2. Application 추가

힐트를 사용하기 위해선 Applcation 상속받아서 @HiltAndroidApp를 붙여야한다.
이와 같은 행동은 Hilt가 생명주기에 연결되고, 액세스를 할수있도록 만든다.

@HiltAndroidApp
class ExampleApplication : Application() { ... }

3. 클래스에 종속성 주입

어플리케이션에 추가가 되면 힐트는 다른 클래스에서 @AndroidEntryPoint를 받아
종속성을 제공한다.

@AndroidEntryPoint
class ExampleActivity : AppCompatActivity() { ... }

현재 종속성을 주입받을수잇는 클래스들

현재 ViewModel과 Application만 다른 Annotation을 받는다.

4. 주입

AnalyticsAdapter

class AnalyticsAdapter @Inject constructor(
  private val service: AnalyticsService
) { ... }
profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글

관련 채용 정보