Выбор ответа Middle DI: Hilt и Koin спрашивают часто обновлено

Когда Koin находит ошибки

Вопрос

Чем Koin принципиально отличается от Hilt?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Koin разрешает зависимости в рантайме по DSL, ошибки графа видны при запуске. Koin это DSL с single, factory, viewModel, разрешение происходит при обращении во время работы.

Варианты ответа

  1. Koin генерирует граф при компиляции через KSP, а Hilt собирает его рефлексией при запуске
  2. Koin работает только с Java и требует аннотаций, а Hilt написан для Kotlin
  3. Koin разрешает зависимости в рантайме по DSL, ошибки графа видны при запускеправильный ответ
  4. Koin не поддерживает ViewModel, поэтому для них отдельно подключают Hilt

Разбор

Koin это DSL с single, factory, viewModel, разрешение происходит при обращении во время работы. Это проще и быстрее для сборки, работает в KMP, но отсутствующее определение даст исключение при запуске, если не проверять модули в тестах (verify()) или не использовать Koin Annotations. Hilt наоборот генерирует граф при компиляции. Koin написан для Kotlin и поддерживает ViewModel.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.