Аннотации Android и Dagger 2

Я читаю об инъекциях зависимостей и нашел 2 библиотеки, которые привлекли мое внимание, AndroidAnnotations и Dagger 2. Я увидел, что AA имеет множество функций, включая DI, но большинство разработчиков используют Dagger 2 для DI.

Мне было интересно, в чем разница между DI с АА и DI с Dagger 2? Если я использую АА, значит мне не нужен Кинжал 2?

Я не смог найти много информации о DI с AA и сравнении с другими библиотеками.

Любая информация очень поможет.


person tiagoMissiato    schedule 18.01.2017    source источник


Ответы (2)


Я не думаю, что АА и Даггер можно сравнивать.

Dagger — это общая библиотека внедрения зависимостей с множеством возможностей. Он также предназначен для работы на Android, но ему не нужен Android, его можно применять на чистых проектах Java. Он имеет множество функций внедрения зависимостей для инжектора зависимостей, полностью основанного на генерации кода.

AndroidAnnotations — это основанная на аннотациях платформа для Android. У него есть ограниченный модуль внедрения зависимостей (который является лишь небольшим подмножеством AA), однако это не его главная особенность. Он добавляет основанные на аннотациях API-интерфейсы для удаления шаблонов для многих вещей для Android, которые используются в каждом проекте и обычно требуют очень много ненужного кода, такого как представление и внедрение ресурсов, обработка событий, восстановление состояния экземпляра, многопоточность и т. д. Вы можете см. все варианты использования AA здесь.

Dagger и AA могут сосуществовать, на самом деле имеет смысл использовать сложное внедрение dep из Кинжал и множество фич АА вместе (я так делаю во всех своих проектах).

Отказ от ответственности: я разработчик AndroidAnnotations.

person WonderCsabo    schedule 25.01.2017

недавно я создал один пример приложения, внедрив Dagger 2 и архитектурные компоненты Android (Room и Viewmodel), которые могут помочь вам понять внедрение зависимостей с использованием библиотеки Dagger вместе с архитектурой MVVM.

Вот ссылка на проект github

person Satiswar Dash    schedule 12.02.2018