strongself / The-Book-of-VIPER

the one and the only

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Базовый модуль в VIPER.

Tequilag opened this issue · comments

Всем привет. Я стал часто сталкиваться с такой задачей, что нужно переиспользовать какую-то логику на нескольких экранах, то есть модулях. Например, внизу показывается небольшая группа пользователей, которая
грузится из интернета, на обновления которых пользователь может подписаться. Плюс на любом экране нужно показывать сообщение в виде view'хи, в которой отображается статус об отсутствии интернета, под navigation bar'ом. Это такие задачи, которые затрагивают сразу несколько слоев VIPER модуля. То есть копировать весь код в каждый модуль ведет к тому, что если эта общая логика меняется, то надо вносить изменения во всех местах. Делать расширения через базовые протоколы накладывает ограничение на изменение состояния модуля, то есть можно делать какие-то простые действия в духе открыть какой-то экран, показать alert с сообщением, но грузить данные из интернета, обновлять массив ячеек, потом обновлять UI, для этого расширение уже нельзя использовать.
Поделитесь, пожалуйста, как вы решаете подобные проблемы в своих проектах в плане переиспользования комплексной логики?