Зачем нужен Dagger? В своих проектах я использую паттерн Dependency Injection. Он дает возможность:
- уменьшить зависимость между объектами
- сделать код более читабельным
- упростить написание тестов
Библиотека Dagger берет на себя часть реализации этого паттерна и, тем самым, упрощает работу разработчика и снижает количество написанного кода.
Звучит заманчиво, не так ли? Но не все так просто. Сам по себе Dagger не сложен в использовании, но понятных и хорошо изложенных курсов по нему найти трудно. Поэтому я решил создать свой.
Изучая Dagger мне пришлось просмотреть материалы с нескольких ресурсов - и нигде я не нашел полной информации. Кроме того, я потратил кучу времени на создание тестового проекта и эксперименты, чтобы до конца разобраться в теме. Тогда я понял, что нужно сделать свой курс. В четырех уроках я обобщил всю собранную информацию и дополнил примерами из практики. На чтение каждого урока у вас уйдет не больше часа. Уроки созданы в стиле startandroid.ru – все доступно и по шагам.
Урок 1. Введение
В этом уроке я подробно расскажу о Dagger и его возможностях. Мы разберем, что такое Component и Module, подключим Dagger к проекту, и сделаем несколько простых примеров
Урок 2. Дополнительные возможности.
Во втором уроке рассмотрим некоторые дополнительные возможности: Lazy, Provider, Named, Qualifier, Intoset, ElementsIntoSet, IntoMap, Inject.
Урок 3. SubComponent и Scope.
В третьем уроке вы узнаете, что такое SubComponent и как задается время жизни объектов с помощью Scope.
Урок 4. Produced.
В четвертом уроке разберем асинхронные механизмы Dagger: ProductionComponent, ProducerModule, Produces, Producer. А также разберем, как с помощью Produced обрабатывать ошибки.