A flexible iOS routing library that handles URL recognition, controller display with parsed parameters, and automatic controller stack preservation.
WAAppRouting is an iOS routing library that enables deep linking and navigation management within iOS apps. It maps URLs to view controllers, parses parameters, and automatically preserves the controller stack, simplifying the implementation of features like Universal Links, 3D Touch shortcuts, and search integration.
iOS developers building apps that require robust deep linking, navigation management, or integration with iOS features like Universal Links and 3D Touch.
Developers choose WAAppRouting for its protocol-oriented flexibility, automatic stack management, and support for custom route matchers and handlers, making it adaptable to complex navigation requirements without being tied to a specific implementation.
iOS routing done right. Handles both URL recognition and controller displaying with parsed parameters. All in one line, controller stack preserved automatically!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Preserves and manages navigation stacks automatically during deep linking, ensuring proper back navigation without manual controller handling, as emphasized in the controller stack preservation feature.
Uses a protocol-oriented architecture that allows developers to replace default route matchers and handlers with custom implementations, promoting testability and avoiding tight coupling.
Seamlessly supports iOS 9+ features like Universal Links, 3D Touch shortcuts, and Core Spotlight search results, simplifying the implementation of advanced iOS capabilities.
Offers both simple path-based registration and detailed entity-based configuration, accommodating everything from basic deep links to complex navigation hierarchies, as shown in the setup examples.
Includes WAAppLinkParameters to avoid hardcoded URL keys by mapping parameters to object properties, reducing regressions and improving maintainability, as detailed in the 'one more thing' section.
Cannot present a modal controller and then push additional controllers onto it, restricting certain UI flows, as admitted in the 'Modal with navigation controller' limitation.
Prevents reusing the same view controller class in multiple navigation paths without subclassing due to stack retrieval based on class unicity, adding complexity for reusable components.
Requires implementing protocols in controllers, understanding custom matchers/handlers, and configuring route entities, making it less suitable for quick prototyping or novice developers.
Built entirely for UIKit with no native support for SwiftUI, limiting its relevance in modern iOS projects adopting SwiftUI, and requiring bridging in mixed environments.