Фреймворк внедрения зависимостей — по сути надстройка на Dagger 2, упрощает работу с DI, но под капотом работает тот же Dagger.
Список готовых компонентов:
Application обязателен:
@HiltAndroidApp
class App : Application() { }
Для использования какого-либо сервиса, нужно пометить Activity/Fragment аннотацией, и после использовать @Inject
@AndroidEntryPoint
class ExampleActivity : AppCompatActivity() {
@Inject lateinit var testService: TestService
}
Пример создания модулей:
@InstallIn(ApplicationComponent::class)
@Module
class NetworkModule {
@Singleton
@Provides
fun provideHttpService(): HttpService {
return object : HttpService {
init {
Log.e("Tester", "HttpService initialized")
}
override fun request() {
Log.e("Tester", "HttpService::request")
}
}
}
}