Я работаю над очень большим приложением и решил использовать модульный подход, в котором каждая функция реализована в виде фреймворка, а одна функция не должна «знать» другие функции.
Я решил интенсивно использовать в ReSwift , которая является библиотекой для создания приложений для iOS, следуя принципам REDUX.
Мне удалось отделить глобальное состояние приложения от всех состояний функций, чтобы каждая функция определяла свое собственное состояние, и все они управляются глобальным состоянием приложения.
Следующая проблема, с которой я столкнулся, - это Маршрутизация / Навигация. Я хочу иметь возможность маршрутизировать между одним контроллером представления, который находится в Feature1, к другому контроллеру представления, который расположен в Feature2 (Помните: я хочу избежать зависимостей между функциями, поэтому Feature1 ничего не знает о Feature2).
Я знаю, что могу создать центральное место в моем приложении, которое может обрабатывать все маршруты приложения, но я хотел знать, есть ли способ, чтобы каждая функция реализовала свой собственный маршрут. Таким образом, Feature1 будет перенаправлять на Feature2, не обращаясь к какой-либо центральной реализации.
Мотивация заключается в том, что каждая функция предоставит приложению свои собственные ресурсы . Таким образом, в принципах REDUX каждая функция должна обеспечивать: состояние, редуктор, действия и маршрутизатор, но проблема в том, что функции не зависят от других функций.
P.S. для маршрутизации я решил использовать ReSwift-Router , который является декларативной библиотекой маршрутизации для приложений ReSwift.
Спасибо!