Primary/Android

[Hilt] Application

해스끼 2022. 8. 11. 20:54

Hilt를 사용하려면 ``Application`` 클래스에 ``@HiltAndroidApp`` 어노테이션을 붙여야 한다. ``@HiltAndroidApp``은 Hilt component 코드를 만드는 시발점이다. 

@HiltAndroidApp
class MyVocaApplication: Application() {
    @Inject lateinit var foo: Foo
}

사실 ``Application``도 Hilt의 entry point이다. 따라서 ``Application``에서도 변수를 주입받을 수 있으며, 해당 변수는 ``super.onCreate()`` 안에서 주입된다. 물론 해당 변수를 제공할 바인딩이 ``SingletonComponent``에 존재해야 한다.

잠깐 복습! 바인딩의 위치를 결정하는 건 module의 component이다.

@HiltAndroidApp
class MyVocaApplication: Application() {
    @Inject lateinit var foo: Foo
    
    override fun onCreate() {
        super.onCreate()       // 여기서 foo가 inject됨
        
        foo.doSomething()      // 접근가능
    }
}