Sobes.tech
Back to questions
Middle+
154

Какие готовые компоненты с определенным скоупом доступны в Dagger Hilt, и как можно добавить модуль к этой компоненте?

Answer from AI

sobes.tech AI

В 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.