Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 
- поддержка Андроид 
- определение циклических зависимостей 
- отсутствие непол...
Dagger 
! 
(Directed Acyclic Graph) + ger 
- поддержка Андроид 
- определение циклических зависимостей 
- отсутствие непол...
В код…
Dagger 
18
Dagger 
19
Dagger 
20
Dagger 
21
Dagger 
22
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
! 
! 
! 
! 
! 
23
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
@Module + @Provides - механизм предоставления зависимостей 
! 
! 
!...
Dagger 
ObjectGraph - менеджер зависимотей и инжектор 
@Module + @Provides - механизм предоставления зависимостей 
@Inject...
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 
! 
...
Dagger vs Roboguice 
! 
- статический анализ зависимостей 
- проблемы во время компиляции 
- не использует reflection 
- в...
Вопросы ?
Спасибо за внимание 
Майборода Давид 
dmayboroda.yandex-team.ru
Upcoming SlideShare
Loading in …5
×

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

636 views

Published on

DI — популярный паттерн, кочующий между разными платформами. Android не исключение: появляется всё больше фреймворков для построения Android-приложений с использованием инъекций. Эти инструменты мы и рассмотрим в рамках доклада.

Published in: Technology
  • Be the first to comment

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

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

×