A simple navigation library for iOS that decouples view controllers using enums to improve compile times and testability.
Router is a Swift library for iOS that provides a simple, enum-based navigation system to decouple view controllers. It solves the problem of tight coupling and slow compile times in complex iOS apps by centralizing navigation logic and eliminating direct dependencies between view controllers.
iOS developers building medium to large applications who struggle with navigation complexity, slow compile times, and want to improve testability and maintainability.
Developers choose Router for its type-safe enum-based navigation, which reduces recompilation cascades and makes navigation logic testable and centralized, leading to faster development cycles and cleaner code.
🛣 Simple Navigation for iOS - ⚠️ Deprecated
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Swift enums to define navigation paths, ensuring compile-time checks and preventing runtime errors from incorrect routes, as demonstrated in the profile example with associated values.
Decouples view controllers to reduce recompilation cascades, directly addressing slow compile times in large Swift projects, as highlighted in the README's explanation of the Swift compiler bug.
Encapsulates navigation logic in an AppNavigation object, making it easy to unit test navigation flows without instantiating view controllers, a key benefit listed.
Provides didNavigate callbacks to track navigation events, allowing easy plug-in of analytics services without cluttering view controller code.
The project is explicitly marked as deprecated by the authors, who no longer maintain it and recommend native alternatives, posing risks for bug fixes and updates.
Introduces an abstraction layer and setup steps that might be overkill for smaller apps, as the README admits favoring fewer dependencies and native routes.
Designed for UIKit-based iOS apps and does not support SwiftUI, making it irrelevant for modern iOS development trends towards declarative UI frameworks.