Заменяет ли Hilt Dagger2? - PullRequest
1 голос
/ 14 июля 2020

Покопавшись в DI-фреймворке Google Dagger2, чтобы выбрать DI-Framewor для использования его в приложении среднего размера, я также заметил Hilt

Итак, согласно его обзорному описанию:

Hilt работает с помощью кода, генерирующего ваш установочный код Dagger для вас. Это убирает большую часть шаблонов использования Dagger и действительно просто оставляет аспекты определения того, как создавать объекты и куда их вставлять. Hilt сгенерирует компоненты Dagger и код для автоматического внедрения ваших Android классов (например, действий и фрагментов) для вас.

Hilt генерирует набор стандартных Android компонентов Dagger на основе вне вашего транзитивного пути к классам. Для этого необходимо пометить ваши модули Dagger аннотациями Hilt, чтобы указать Hilt, в какой компонент они должны go. Получение объектов в классах вашего Android фреймворка выполняется с помощью другой аннотации Hilt, которая генерирует код внедрения Dagger в базовый класс, который вы расширяете. Для пользователей Gradle расширение этого класса выполняется с помощью скрытого преобразования байт-кода.

1. Он не заменяет Dagger2 и не является его преемником?

2. Рукоять является чем-то дополнительным к Dagger2, что упрощает использование Dagger2?

3. Есть ли какие-то недостатки, кроме как все еще в Альфе?

1 Ответ

3 голосов
/ 15 июля 2020

Заменяет ли рукоять Dagger2?

Нет. Эфес все еще использует Dagger под капюшоном. Вы можете думать об этом как о самоуверенном расширении Dagger для Android. Я говорю «самоуверенный», потому что у него есть некоторые ограничения того, что вы могли бы сделать с простым Dagger по сравнению с использованием Hilt, который имеет жесткую структуру компонентов, но в то же время это убирает большую часть шаблонов использования Dagger .

Ваши вопросы также могут служить ответом ...

  • Он не заменяет Dagger2 и не является его преемником
  • Рукоять является чем-то дополнительным к Dagger2, которое затем упрощает использование Dagger2.

Есть ли какие-то недостатки, кроме альфа-версии?

Ну, это альфа-версия, и все может измениться. Я определенно подожду, прежде чем использовать его в производстве.

Преимущество перед обычным Dagger или dagger. android состоит в том, что его будет проще настроить из-за строгой структуры взаимосвязи компонентов. Это также позволяет Hilt удалить некоторые шаблоны и сделать настройку менее многословной. Это должно упростить интеграцию. Но в то же время это еще и его недостаток. Вы можете строить всевозможные графы зависимостей с помощью простого Dagger, тогда как Hilt ограничивает вас их предопределенной структурой. Так что может быть не таким мощным , когда дело касается больших и сложных проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...