An iOS library for simplifying and centralizing navigation logic in routers, supporting deep links, 3D Touch, and flexible transitions.
Marshroute is an iOS library that centralizes navigation logic in Router components, making them simple yet powerful. It solves the complexity of managing view controller transitions, deep links, and navigation state by providing a unified API that works consistently across different presentation styles and device idioms. The library encourages clean architecture by decoupling navigation from view logic.
iOS developers building maintainable applications with complex navigation flows, especially those using architectures like VIPER or similar patterns that separate routing responsibilities. It's also suitable for teams needing robust deep link support and 3D Touch integration.
Developers choose Marshroute for its ability to make routers extremely flexible and future-proof—allowing presentation style changes without breaking existing navigation code. Its built-in support for deep links, 3D Touch, and retain cycle detection reduces boilerplate and potential bugs, while keeping navigation logic centralized and testable.
Marshroute is an iOS Library for making your Routers simple but extremely powerful
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Moves all navigation out of the View layer into dedicated Routers, making it declarative and testable across different iOS devices, as emphasized in the philosophy section.
Automatically forwards transitions to the topmost UIViewController, enabling easy deep link implementation from any point in the app, such as presenting an authorization module from the root router.
Allows changing animations with a single line of code by attaching custom animators, as shown in the tuning section where RecursionAnimator is used for modal presentations.
Provides PeekAndPopUtility for previews and state observation, reducing boilerplate for force touch features and enabling UI adjustments based on peek and pop states.
Written in pure Swift with latest features, requiring Swift for router code even in Objective-C projects, which limits cross-language use as noted in the Objective-C support section.
Optimized for patterns like VIPER; adapting to other architectures may require significant refactoring, and the demo project assumes this structure, adding complexity for simpler setups.
Installation is limited to Cocoapods and Carthage, lacking native SPM support which is increasingly standard in modern Swift development, potentially inconveniencing newer projects.