Что такое SingletonComponent в Hilt

«Что такое SingletonComponent в Hilt» — вопрос из категории DI, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SingletonComponent — это предопределённый компонент в Hilt, который соответствует стандартному @Singleton scope. Он создаётся при старте приложения и живёт до его завершения.

Особенности:

  • Объекты, помеченные @Singleton, создаются один раз и переиспользуются.
  • Подходит для зависимостей, которые должны быть общими для всего приложения (например, Retrofit, Room Database).

Пример:

@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    @Singleton
    @Provides
    fun provideApiService(): ApiService = Retrofit.Builder()
        .baseUrl("https://api.example.com/")
        .build()
        .create(ApiService::class.java)
}

⚠️ Не злоупотребляйте Singleton, так как это может привести к утечкам памяти.