Структура UI-слоя

May 26, 2020 · View on GitHub

Главная

Структура UI-слоя

Ядром UI-слоя приложения является core-mvp. Данный модуль предоставляет набор базовых классов для построения MVP.

Структура слоя

К UI-слою принадлежат следующие сущности:

  • Presenter- основной частью этого слоя являются презентеры экранов, содержащие всю логику соответствующего экрана.

  • View - является максимально пассивной и выполняет 2 задачи:

    • Показывает информацию пользователю;

    • Передает события пользовательского ввода в Presenter.

  • ScreenModel - дополнительная сущность, инкапсулирует состояние экрана, Переживает смену ориентации.

  • Route - маршрут для навигации, ответсвенен также за упаковку данных в интенты или бандл.

  • Configurator - содержит Dagger-компонент экрана, инкапсулирует в себе логику работы с даггером.

Эти пять сущностей полностью описывают экран.

Также к UI относяться любые вспомогательные классы, extension-методы, которые взаимодействуют с отображением.

Презентер взаимодействует с View через изменение ScreenModel. Апи вью и презентера должны состоять из методов типа void doSomething(). Таким образом обеспечивается unidirectional data flow

Здесь Actions - это Presenter, а State - ScreenModel. View передает сообщает презентеру о том, что произошло некоторое событие(презентер может быть подписан на событие, или его метод установлен как листенер). Презентер обращается к слою Interactor, меняет ScreenModel и передает ее на View для отрисовки. Таким образом, View отвечает только за то, что необходимо перерисовать.

Презентер же отвечает за логику и навигацию. Он содержит все необходимые для этого зависимости.

Структура пакетов/модулей

Используется многомодульная архитектура.