Ответ
@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()
}