Ответ
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, так как это может привести к утечкам памяти.