Elegant URL routing library for Swift iOS apps, enabling navigation between view controllers via URL patterns.
URLNavigator is a Swift library for iOS that enables elegant URL-based navigation between view controllers. It solves the problem of managing complex navigation flows and deep linking by allowing developers to map URL patterns directly to view controllers or custom handlers, making routing logic more organized and maintainable.
iOS developers building apps that require deep linking, complex navigation flows, or a clean separation between routing logic and view controller implementation.
Developers choose URLNavigator for its declarative URL mapping, type-safe parameter extraction, and seamless integration with iOS navigation systems, offering a more structured alternative to manual view controller presentation.
⛵️ Elegant URL Routing for Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Centralizes navigation logic by allowing developers to register URL patterns with placeholders, making routing code clean, testable, and separate from view controllers, as emphasized in the README's philosophy.
Automatically extracts and validates URL parameters as specific types (e.g., integers, strings) from placeholders, reducing runtime errors and ensuring data integrity during navigation.
Supports custom value converters to enforce business rules, such as validating region codes or other domain-specific constraints, as demonstrated in the README's tips for custom converters.
Seamlessly integrates with iOS's AppDelegate methods for handling custom URL schemes and launch options, facilitating app interoperability and deep linking, with examples provided in the README.
Does not support SwiftUI, making it unsuitable for modern iOS projects adopting SwiftUI's declarative UI framework, as it relies on UIKit view controllers like UIViewController.
Requires explicit registration of all URL mappings and careful setup in AppDelegate, which can be verbose and error-prone, especially for large apps with complex navigation flows.
Officially supports only CocoaPods, lacking native integration with Swift Package Manager or Carthage, which are widely used in Swift development, as noted in the Installation section.