SlideShare a Scribd company logo
Dependency injection in Android
О себе… 
Несу позитив в массы… 
2
Идея 
- Перенос компонентов 
3
Идея 
- Перенос компонентов 
- Лёгкость в тестировании 
! 
4
Идея 
- Перенос компонентов 
- Лёгкость в тестировании 
- Стандартизация кода 
! 
! 
5
ВНИМАНИЕ 
6
Проблемы
Проблемы 
- Память 
! 
! 
! 
8
Проблемы 
- Память 
- Время 
! 
! 
! 
! 
9
Проблемы 
- Память 
- Время 
! 
- Порог вхождения 
! 
! 
10
Dagger
Dagger 
! 
(Directed Acyclic Graph) + ger 
! 
! 
! 
12
Dagger 
! 
(Directed Acyclic Graph) + ger 
- поддержка Андроид 
! 
! 
! 
13
Dagger 
! 
(Directed Acyclic Graph) + ger 
- поддержка Андроид 
- определение циклических зависимостей 
! 
! 
14
Dagger 
! 
(Directed Acyclic Graph) + ger 
- поддержка Андроид 
- определение циклических зависимостей 
- отсутствие неполных модулей 
! 
15
Dagger 
! 
(Directed Acyclic Graph) + ger 
- поддержка Андроид 
- определение циклических зависимостей 
- отсутствие неполных модулей 
- стандарт JSR-330 
16
В код…
Dagger 
18
Dagger 
19
Dagger 
20
Dagger 
21
Dagger 
22
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
! 
! 
! 
! 
! 
23
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
@Module + @Provides - механизм предоставления зависимостей 
! 
! 
! 
! 
24
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
@Module + @Provides - механизм предоставления зависимостей 
@Inject - механизм для запроса зависимостей 
! 
! 
! 
25
Dagger (проблемы)
Dagger (проблемы) 
! 
- поддержка private и final полей 
! 
! 
! 
! 
27
Dagger (проблемы) 
! 
- поддержка private и final полей 
- работа с ProGuard 
! 
! 
! 
28
Dagger (проблемы) 
! 
- поддержка private и final полей 
- работа с ProGuard 
- отсутствие иньекций методов 
! 
! 
29
Dagger vs Roboguice
Dagger vs Roboguice 
! 
- статический анализ зависимостей 
! 
! 
! 
! 
31
Dagger vs Roboguice 
! 
- статический анализ зависимостей 
- проблемы во время компиляции 
! 
! 
! 
32
Dagger vs Roboguice 
! 
- статический анализ зависимостей 
- проблемы во время компиляции 
- не использует reflection 
! 
! 
33
Dagger vs Roboguice 
! 
- статический анализ зависимостей 
- проблемы во время компиляции 
- не использует reflection 
- выигрывает по памяти 
! 
34
Вопросы ?
Спасибо за внимание 
Майборода Давид 
dmayboroda.yandex-team.ru

More Related Content

PDF
Dependency Injection в Android, Давид Майборода
PDF
GTUG Almaty. Dependency Injection в Android
PPTX
Пути обхода граблей в стартапах. GDG Almaty
PDF
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
PPTX
Антон Минашкин "Dagger 2. Right way to do Dependency Injections"
PDF
Предсказание оттока игроков из World of Tanks
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Dependency Injection в Android, Давид Майборода
GTUG Almaty. Dependency Injection в Android
Пути обхода граблей в стартапах. GDG Almaty
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
Антон Минашкин "Dagger 2. Right way to do Dependency Injections"
Предсказание оттока игроков из World of Tanks
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса

More from Yandex (20)

PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
PDF
Эталонное описание фильма на основе десятков дубликатов
PDF
Поиск списков в неструктурированных данных
PDF
Производительность параметрического поиска на основе опенсорс-платформы
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Эталонное описание фильма на основе десятков дубликатов
Поиск списков в неструктурированных данных
Производительность параметрического поиска на основе опенсорс-платформы
Ad

Dependency injection in android, Давид Майборода