Hilt или Koin
Вопрос
Сравни Hilt и Koin. Что бы ты выбрал для нового проекта и почему?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Hilt: кодогенерация, проверка графа при компиляции, стандарт Google
Koin: DSL, разрешение в рантайме, без кодогенерации
Ошибки: Hilt при сборке, Koin при запуске или в тестах verify
Сборка: Hilt медленнее (KSP/kapt), Koin быстрее
Koin работает в Kotlin Multiplatform
Выбор по размеру проекта, команде и KMP
Что могут спросить следом
- Как ускорить сборку с Hilt?
- Как проверить граф Koin в CI?
Разбор
Hilt это надстройка над Dagger: граф описывается аннотациями, код фабрик генерируется при компиляции, и ошибка вроде отсутствующей зависимости видна сразу при сборке. Рантайм быстрый, есть готовые интеграции с ViewModel, WorkManager и Navigation, это рекомендация Google. Цена: время сборки, особенно с kapt, поэтому лучше KSP, и более высокий порог входа. Koin это DSL на Kotlin без кодогенерации: модули с single, factory, viewModel, разрешение при обращении в рантайме. Он проще, сборка быстрее, и он работает в Kotlin Multiplatform. Минус в том, что ошибка графа проявится только при запуске, поэтому в CI нужен тест verify() или Koin Annotations. Для большого Android-проекта с несколькими командами я выберу Hilt из-за проверки при компиляции. Для небольшого проекта или KMP с общей бизнес-логикой разумен Koin.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.