Какие знаешь аннотации в Hilt позволяющие добавить класс в граф зависимостей

«Какие знаешь аннотации в Hilt позволяющие добавить класс в граф зависимостей» — вопрос из категории DI, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

@Inject - конструктор класса помечается этой аннотацией, чтобы Hilt добавил его в граф зависимостей.

@Module + @Provides - для классов, которые нельзя пометить @Inject (например, сторонние библиотеки).

@Binds - для интерфейсов, абстрактных классов. Используется в модулях вместе с @Module.

@InstallIn - указывает, в каком компоненте Hilt будет доступен модуль (например, SingletonComponent).

Пример:

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