Как стать автором
Обновить

Комментарии 5

Почему с генерацией кода размер APK меньше? Вроде наоборот, код сгенерировали, значит APK вырос?

Вы правы: генерация кода добавляет дополнительные классы в проект. Логично предположить, что больше кода = больше размер APK. Но это только на первый взгляд. Сгенерированный код даггера — это статические классы (и очень компактные) с чёткими зависимостями. Инструменты минификации (R8 или ProGuard) могут легко удалить неиспользуемые части кода или оптимизировать их (например, инлайн-функции). Поэтому, хотя сгенерированный код увеличивает исходный байткод, итоговый APK оказывается меньше, чем при использовании Koin, где runtime-рефлексия требует больше ресурсов.

Koin же использует рефлексию в runtime, и его библиотека включает универсальную логику для поиска и создания зависимостей, что занимает больше места и хуже оптимизируется. Так что, несмотря на генерацию, Dagger/Hilt дают меньший APK за счёт отсутствия runtime-оверхеда.

Как будто GPT DeepResearch нагенерил статью

Для поиска и анализа, а так же структурирования собранной информации, больше предпочитаю Grok :)

Разбирать ошибки нейросетевой статьи слишком муторно, поэтому я прокомментирую только таблицу:

  • Koin не использует рефлексию.

  • Koin не всегда проще Dagger и Hilt, и не всегда требует меньше кода для настройки, особенно на больших проектах.

  • Если в таблице есть ряд "Скорость", и в его ячейках есть значения "Высокая" и "Средняя", то, либо где-то должна быть ячейка "Низкая", либо нужен критерий того, что считать "средней" скоростью.

  • Koin имеет средства проверки ошибок, которые позволяют избегать проблем в runtime.

  • Также есть Koin Annotations, который позволяет делать "Compile-time DI", синтаксис с аннотациями и прочее.

  • Hilt - это тот же Dagger, только с инструментами для работы с Android, Koin тоже имеет такие инструменты. Соответственно, если считается, что Hilt имеет "нативные скоупы", то и Koin их имеет. Если Hilt имеет "нативную интеграцию с Android", то и Koin ее имеет.

  • Библиотеки с генерацией кода склонны давать больше кода, а не меньше.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации