5. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
6. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
7. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
8. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
9. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
10. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
● возможность повторного использования компонентов
11. Ожидание от архитектуры
Правильно выбранная архитектура должна способствовать
системе соответствовать следующим свойствам:
● эффективность
● гибкость (компонентность)
● расширяемость
● масштабируемость процесса разработки
● тестируемость
● возможность повторного использования компонентов
● читаемость кода
23. Различия
● В MVP View не имеет доступа к Model
● В MVP Presenter привязан ТОЛЬКО к одной View
24. Различия
● В MVP View не имеет доступа к Model
● В MVP Presenter привязан ТОЛЬКО к одной View
● В MVP View должно быть реализовано максимально пассивным
компонентом
25. Ссылки для изучения MVP
● http://hannesdorfmann.com/mosby/getting-started/
● https://code.tutsplus.com/series/how-to-adopt-model-view-presenter-on-
android--cms-1012
● https://github.com/googlesamples/android-architecture
27. Clean architecture
Выделяют 3 основных слоя:
● внешний (implementation layer)
● средний (interface adapter layer)
● внутренний (business logic layer)
ВАЖНО (Dependency rule)
Внутренние слои ничего не должны знать про внешние
слои
28. Clean architecture
Implementation layer
Все что делается средствами Android SDK (framework
specific code)должно относиться к этому слою. Framework
specific code должен включать каждую строчку кода,
которая не относится к решению задачи приложения.
Примеры
UI, Intents, Storage, Networks
32. Clean architecture
Business layer
Вся логика, относящаяся к решению проблем должны
быть в этом слое. Ничего из Android SDK в нем не должно
быть. Код должен запускаться без эмулятора.
Примеры
Interactors, Models, Repositories, Executors
33. Clean architecture
Business layer
Interactors - бизнес логика приложения. Выполняются в
бэкграунде и возвращают эвенты во внешние слои
используя callback’и
Models - модели для бизнес логики
Repositories - only contains interface for database or some
other outer layer implements
Executor - this package contains code for making Interactors
run in background by using working thread executor
34. Clean architecture
Любой layer ответственен за конвертацию моделей для
layer’ов нижнего уровня перед тем как они начнут
использовать их.
Но нижние layer’ы не должны иметь доступа к моделям
верхнего layer.
Хотя внешние layer’ы могут использовать модели из
внутренних layer’ов.
35. Ссылки для изучения
● https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-
apps-using-the-clean-architecture-pattern-d38d71e94029#.y5v4gcwb4
● https://github.com/dmilicic/Android-Clean-Boilerplate/tree/example
● https://github.com/android10/Android-CleanArchitecture