Автор курса в своих проектах использует шаблон (паттерн) проектирования Dependency Injection (Внедрение зависимостей). Данный паттерн предоставляет следующие возможности:
- уменьшение зависимостей между объектами
- создание более «чистого» (читабельного) кода
- упрощение написания тестов
Библиотека Dagger 2 берет на себя часть реализации паттерна Dependency Injection и упрощает работу разработчика, снижает количество написанного кода.
Во время постижения всех премудростей Dagger 2 автору пришлось изучить материалы из многих источников. Но информации оказалось недостаточно. Поэтому он потратил много времени на создание тестового проекта и эксперименты, чтобы до конца разобраться в теме.
Для создания курса, автор обобщил всю собранную информацию, включая выводы из своих экспериментов, и дополнил примерами из практики.
Так получился полноценный курс с уроками в стиле startandroid – все доступно, по шагам и с картинками.
Рассматриваются самые последние возможности библиотеки.
Содержание курса
Урок 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 обрабатывать ошибки.
Урок 5. Builder.
- В этом уроке мы подробно рассмотрим билдеры: как они генерируются даггером, как можно использовать свой билдер, как с помощью аннотации @BindsInstance передавать объекты в компонент минуя модули. Кроме этого, рассмотрим вариант архитектурного решения Dagger 2 + MVP, которое позволит вам сохранять презентер при повороте экрана. Научимся создавать сабкомпоненты с помощью билдеров и аргумента subcomponents в аннотации @Module.
Урок 6. AndroidInjection.
- В этом уроке разберемся как работает механизм AndroidInjection, который позволяет упростить inject для Activity и Fragment. Рассмотрим классы DaggerActivity и DaggerFragment, при использовании которых, в вашем коде вообще не будет строки с вызовом метода inject.





