Skip to content

surfstudio/surf-mvp-example

Repository files navigation

SurfMVP Example

Пример реализации архитектуры SurfMVP.

Краткая теория

Какие компоненты должны реализовать те или иные протоколы?

  • ViewInput – реализует сама View, ссылку держит Presenter
    • Данный протокол описывает методы, при помощи которых Presenter может управлять View, передавать данные, изменять состояния и так далее.
  • ViewOutput – реализует Presenter, ссылку на него держит View
    • Протокол описывает набор действий, которые могут произойти во View, и методы жизненного цикла, например, события взаимодействия пользователя с экраном.
  • RouterInput – реализует Router, а ссылку на него держит Presenter
    • Он является единственным ответственным за то, чтобы инициировать дальнейшую навигацию в приложении.
  • ModuleInput – реализует Presenter
    • Данный протокол должен содержать в себе методы, при помощи которых другой модуль, который держит ссылку на этот протокол, мог бы изменять состояния текущего модуля.
  • ModuleOutput – реализует Presenter вызывающего модуля, ссылку держит Presenter вызываемого модуля
    • ModuleOutput передается в Configurator вызываемого модуля и там устанавливается в Presenter. Содержит в себе методы модуля, которые влияют на поведение вызывающего модуля.
  • ModuleTransitionable – реализует View, ссылку на него держит Router
    • Это единственный «базовый» протокол в SurfMVP. Он нужен для того, чтобы предоставить Router набор методов для работы с навигацией по приложению.

Более подробную информацию о SurfMVP можешь найти:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published