I am working on a very big app and decided to go with the modular approach where each feature is implemented as a Framework and one feature should not "know" other features.
I decided to use heavily in ReSwift which is a library to build iOS app following the REDUX principles.
I've managed to decouple the global App State from all the Feature state so each feature define its own state and its all managed by the global app state.
The next challenge that I am facing with is Routing / Navigation. I want to be able to route between one view controller which located in Feature1 to another view controller which located in Feature2 (Remember: I want to avoid dependencies between features so Feature1 is not know anything about Feature2).
I know that I can create a central place in my app that can handle all the routes of the application but I wanted to know if there is a way that every Feature will implement its own route. So Feature1 will route to Feature2 without calling to some central implementation. The motivation here is that every Feature will provide its own resources to the app. So in REDUX principles each feature should provide: State, Reducer, Actions and Router but the challenge here is that features is not depended in other feature.
P.S. for routing I decided to go with ReSwift-Router which is a declarative routing library for ReSwift apps.
Thanks!