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

Содержание

Слайд 2

Стандартные паттерны MVC (Model-View-Controller) MVP (Model-View-Presenter) MVVM (Model-View-ViewModel) Кратко говоря – Model-View-Delegate

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

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

Слайд 3

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

Model

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

Слайд 4

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

View

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

логики
Слайд 5

MVC

MVC

Слайд 6

MVP

MVP

Слайд 7

MVC vs MVP

MVC vs MVP

Слайд 8

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

MVC vs MVP

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

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

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

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

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

Слайд 10

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

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

Слайд 11

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

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

Слайд 12

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

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

Слайд 13

Экран авторизации Проверяем текущее состояние авторизации Ошибка при нажатии кнопки,

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

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

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

AuthView

AuthView

Слайд 15

LoadingView

LoadingView

Слайд 16

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

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

Слайд 17

AuthPresenter - поля

AuthPresenter - поля

Слайд 18

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

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

Слайд 19

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

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

Слайд 20

Используем AuthPresenter

Используем AuthPresenter

Слайд 21

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

Вопросы

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

интерфейс или базовый класс для Presenter?
Слайд 22

Практика

Практика

Слайд 23

Практика Проект GithubMVP Нужно перевести экран walkthrough (описание в WalkthroughActivity)

Практика

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

списка коммитов (описание в CommitsActivity) в соответствии с паттерном MVP и описанными сценариями
Слайд 24

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

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

Слайд 25

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

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

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

каждого экрана
Слайд 26

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

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

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

Clean Architecture
Библиотека вынуждает вас писать код в ее рамках
Нужно хорошо изучить конкретное решение перед его использованием
Слайд 27

Библиотеки Mosby Moxy

Библиотеки

Mosby
Moxy

Слайд 28

Преимущества Mosby Структурирование кода и его организация в соответствии с

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

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

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

MvpView

MvpView

Слайд 30

MvpBasePresenter

MvpBasePresenter

Слайд 31

MvpBasePresenter

MvpBasePresenter

Слайд 32

MvpActivity

MvpActivity

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