Dependency Injection в Android, Давид Майборода

Post on 10-May-2015

435 views 4 download

description

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

Transcript of Dependency Injection в Android, Давид Майборода

Dependency Injection in Android

Обо мне

Пишу код, больше ничего не умею…

3

Идея

- Переиспользование компонентов

4

Идея

- Переиспользование компонентов

- Лёгкость в тестировании

5

Идея

- Переиспользование компонентов

- Лёгкость в тестировании

- Стандартизированый код

6

ВНИМАНИЕ

7

Проблемы

Проблемы

- Память

9

Проблемы

- Память

- Скорость

10

Проблемы

- Память

- Скорость

!

- Порог вхождения

11

Dagger

Dagger

(Directed Acyclic Graph) + ger

13

Dagger

(Directed Acyclic Graph) + ger

- поддержка Андроид

!

14

Dagger

(Directed Acyclic Graph) + ger

- поддержка Андроид

- создание графа на этапе компиляции

!

15

Dagger

(Directed Acyclic Graph) + ger

- поддержка Андроид

- создание графа на этапе компиляции

- определение циклических зависимостей

!

16

Dagger(Directed Acyclic Graph) + ger

- поддержка Андроид

- создание графа на этапе компиляции

- определение циклических зависимостей

- отсутствие неполных модулей

!

!

17

Dagger(Directed Acyclic Graph) + ger

- поддержка Андроид

- создание графа на этапе компиляции

- определение циклических зависимостей

- отсутствие неполных модулей

- стандарт JSR-330

!

18

Dagger vs Roboguice

- Cтатический анализ зависимостей

19

Dagger vs Roboguice

- Cтатический анализ зависимостей

- Ошибки во время компиляции

20

Dagger vs Roboguice

- Cтатический анализ зависимостей

- Ошибки во время компиляции

- Не использует reflection

21

Dagger vs Roboguice

- Cтатический анализ зависимостей

- Ошибки во время компиляции

- Не использует reflection

- Выигрывает по памяти

22

В код…

В код…

24

Dagger (компоненты)

ObjectGraph - менеджер зависимотей и инжектор

25

В код…

26

Dagger (компоненты)

ObjectGraph - менеджер зависимотей и инжектор

@Module + @Provides - механизм предоставления зависимостей

27

В код…

28

Dagger (компоненты)

ObjectGraph - менеджер зависимотей и инжектор

@Module + @Provides - механизм предоставления зависимостей

@Inject - механизм для запроса зависимостей

29

Вопросы ?

Спасибо за внимание!

Давид Майборода dmayboroda@yandex-team.ru