Какие знаешь инструменты для DI

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

Ответ

Для внедрения зависимостей в Android есть несколько популярных инструментов:

  1. Dagger/Hilt – стандартные решения от Google. Hilt – это упрощённая обёртка над Dagger, специально для Android.
@HiltAndroidApp
class MyApp : Application()

@AndroidEntryPoint
class MainActivity : AppCompatActivity()
  1. Koin – легковесная DI-библиотека, работающая на pure Kotlin (без аннотаций).
val appModule = module {
    single { MyRepository() }
    factory { ViewModel(get()) }
}
  1. Kodein – ещё один Kotlin-ориентированный вариант, похожий на Koin.

  2. Manual DI – ручное внедрение через конструкторы или фабрики (используется в чистых архитектурах).

Hilt рекомендуется для больших проектов, Koin – для быстрого старта. Все они решают проблему управления зависимостями, но с разным подходом к конфигурации и производительности.