Стандартные паттерны презентация

Содержание

Слайд 2

Стандартные паттерны

MVC (Model-View-Controller)
MVP (Model-View-Presenter)
MVVM (Model-View-ViewModel)
Кратко говоря – Model-View-Delegate

Слайд 3

Model

Модельки объектов для взаимодействия View и Presenter

Слайд 4

View

Отображение данных, полученных от делегата
Передает действия пользователя в делегат
Управляется делегатом
Не содержит логики

Слайд 7

MVC vs MVP

Слайд 8

MVC vs MVP

Presenter управляет View через интерфейс непосредственно, Controller управляет View опосредованно через

Model
Controller может управлять несколькими View, а также переключать их, а Presenter управляет только одной View

Слайд 9

Наша архитектура

Слой данных (Repository, кэширование)
MVP

Слайд 10

Наша архитектура

Слайд 11

Пример экрана с MVP

Слайд 12

Экран авторизации

Слайд 13

Экран авторизации

Проверяем текущее состояние авторизации
Ошибка при нажатии кнопки, когда поля ввода пустые
Инициация процесса

авторизации при выполнении запроса
Показ и скрытие процесса загрузки пользователю
Открытие главного экрана в случае успешной авторизации
Отображение ошибки в поле логина в случае неудачной авторизации

Слайд 15

LoadingView

Слайд 16

Реализуем интерфейс AuthView в AuthActivity

Слайд 17

AuthPresenter - поля

Слайд 18

AuthPresenter - запуск экрана

Слайд 19

AuthPresenter - обрабатываем нажатие кнопки входа

Слайд 20

Используем AuthPresenter

Слайд 21

Вопросы

Насколько такая архитектура масштабируема?
Можно ли передавать Context в Presenter?
Нужно ли делать интерфейс или

базовый класс для Presenter?

Слайд 22

Практика

Слайд 23

Практика

Проект GithubMVP
Нужно перевести экран walkthrough (описание в WalkthroughActivity) на MVP
Реализовать экран списка коммитов

(описание в CommitsActivity) в соответствии с паттерном MVP и описанными сценариями

Слайд 24

Дополнительно - библиотека Mosby

Слайд 25

Зачем нужны библиотеки

MVP немного увеличивает код
Приходится писать много стандартного кода для каждого экрана

Слайд 26

Будьте крайне осторожны!

Использование библиотеки для создания архитектуры нарушает первый из принципов Clean Architecture
Библиотека

вынуждает вас писать код в ее рамках
Нужно хорошо изучить конкретное решение перед его использованием

Слайд 27

Библиотеки

Mosby
Moxy

Слайд 28

Преимущества Mosby

Структурирование кода и его организация в соответствии с паттерном MVP
Не нужно явно

хранить View и Presenter в виде полей
Автоматическое связывание View и Presenter
LCE-экраны (Loading-Content-Error)

Слайд 30

MvpBasePresenter

Слайд 31

MvpBasePresenter

Слайд 32

MvpActivity

Имя файла: Стандартные-паттерны.pptx
Количество просмотров: 22
Количество скачиваний: 0