rambler-ios / team

sweet home
177 stars 40 forks source link

Может ли быть нам полезен Application Coordinator? #42

Open serkrapiv opened 8 years ago

serkrapiv commented 8 years ago

Андрей Панов из Avito на разных конференциях рассказывает о концепции Application Coordinator'a. Эта штука, в которой централизуется процесс переходов между модулями приложения. Она позволяет уйти от того, что модулям необходимо знать друг о друге: они сообщают о желании перейти на другой модуль и передать в него данные этому самому координатору, а тот уже знает на какой экран и как надо переходить.

Вброс на подумать: может ли такая концепция пригодиться нам в VIPER для каких-нибудь случаев?

Слайды тут: https://speakerdeck.com/andreypanov/introducing-application-coordinators

Код тут: https://github.com/AndreyPanov/ApplicationCoordinator

etolstoy commented 8 years ago

Не вижу пока ничего плохого в том, что модули знают друг о друге. Это кажется довольно логичным, ведь именно модуль, по сути, определяет, куда и как с него можно уйти. Добавлять для этого каких-то верхнеуровневых чуваков с размытой ответственностью вместо композитных роутеров - ну хз.

artyom-razinov commented 8 years ago

В VIPER есть понятие сабмодуля. Соответственно если есть сабмодуль, то почему не может быть супермодуля? Супермодуль может управлять навигацией модулей-экранов, при этом сами экраны не будут знать о переходах на другие экраны. Супермодуль - это такой же VIPER-модуль, префикс "супер" просто семантический. Это может быть полезно в ситуациях, когда в зависимости от каких-то условий одно и то же действие пользователя на одном экране может приводить к открытию различных других экранов. Также это полезно для переиспользуемости модулей и облегчает их комбинирование.