В Dagger Hilt доступны несколько готовых компонентов с определённым скоупом, которые соответствуют жизненному циклу Android-компонентов:
Какие готовые компоненты с определенным скоупом доступны в Dagger Hilt, и как можно добавить модуль к этой компоненте?
В Dagger Hilt доступны несколько готовых компонентов с определённым скоупом, которые соответствуют жизненному циклу Android-компонентов:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Dagger Hilt доступны несколько готовых компонентов с определённым скоупом, которые соответствуют жизненному циклу Android-компонентов:
SingletonComponent— скоуп на всё приложение.ActivityComponent— скоуп на жизненный цикл Activity.FragmentComponent— скоуп на жизненный цикл Fragment.ViewModelComponent— скоуп на жизненный цикл ViewModel.ServiceComponent— скоуп на жизненный цикл Service.ViewComponent— скоуп на жизненный цикл View.
Чтобы добавить модуль к компоненте, нужно создать класс с аннотацией @Module и указать в @InstallIn нужный компонент. Например:
@Module
@InstallIn(ActivityComponent::class)
object MyActivityModule {
@Provides
fun provideSomeDependency(): SomeDependency {
return SomeDependency()
}
}
Таким образом, зависимости из этого модуля будут доступны в пределах жизненного цикла Activity.