Перейти к содержанию

DI

Раздел охватывает dependency injection в Android: владение зависимостями, composition root, constructor injection, scopes, проверку графа, тестирование и компромиссы DI-фреймворков.

Практический порядок изучения: начните с принципов DI и ручной сборки зависимостей. Затем разберите Dagger и Hilt, чтобы понять compile-time графы и время жизни Android-компонентов, после чего сравните их с runtime DSL в Koin. Статья про legacy DI пригодится при поддержке старого проекта или планировании постепенной миграции.

Основы

  • DI Basics - зависимости, composition root, constructor injection, runtime values, scopes, компромиссы Service Locator и риски времени жизни singleton.

DI-фреймворки для Android

  • Dagger / Hilt - compile-time графы, constructor- и module-bindings, qualifiers, видимость компонентов, scopes и интеграция с ViewModel.
  • Koin - runtime definitions, constructor DSL, qualifiers, параметры, lifecycle-aware scopes, валидация и изоляция тестов.

Legacy-проекты и миграция

  • Legacy DI - старые версии Dagger, Toothpick, lifecycle-риски Moxy, владение scopes, проверки перед миграцией и безопасная замена компонентов.