Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. RouteComposer

RouteComposer

MITSwift2.22.1

A protocol-oriented iOS library for declarative view controller composition, navigation, and deep linking, replacing the Coordinator pattern.

GitHubGitHub
926 stars64 forks0 contributors

What is RouteComposer?

RouteComposer is a protocol-oriented Swift library for iOS that handles view controller composition, navigation, and deep linking through declarative configurations. It solves the problem of tangled navigation code by separating routing logic from view controllers, enabling flexible and reusable navigation flows. It can replace the Coordinator pattern and works alongside UIKit and SwiftUI.

Target Audience

iOS developers building complex navigation flows, deep linking, or A/B testing scenarios, especially those using UIKit and seeking to decouple navigation logic from view controllers.

Value Proposition

Developers choose RouteComposer for its declarative configuration, deep linking out-of-the-box, and ability to replace Coordinator patterns with a more modular, protocol-oriented approach that reduces boilerplate and improves testability.

Overview

Protocol oriented, Cocoa UI abstractions based library that helps to handle view controllers composition, navigation and deep linking tasks in the iOS application. Can be used as the universal replacement for the Coordinator pattern.

Use Cases

Best For

  • Replacing Coordinator patterns in iOS apps
  • Implementing deep linking and universal links
  • Building A/B tests with different navigation layouts
  • Decoupling navigation logic from view controllers
  • Handling complex view controller compositions
  • Integrating navigation interceptors like authentication checks

Not Ideal For

  • iOS projects with simple, linear navigation that don't require complex flows or deep linking
  • Teams exclusively using SwiftUI who prefer its native navigation stack over UIKit integration
  • Applications prioritizing minimal external dependencies where Apple's built-in navigation suffices

Pros & Cons

Pros

Declarative Navigation Flows

Enables defining navigation steps with a fluent API, cleanly separating routing logic from view controllers, as shown in the Configuration.productScreen example in the README.

Built-in Deep Linking

Makes every view controller deep-linkable by default, simplifying universal link handling without extra code, highlighted in the deep-linking section of the README.

Coordinator Pattern Replacement

Reduces boilerplate associated with the Coordinator pattern by providing a modular, protocol-oriented alternative, evidenced by testimonials from companies like Viz.ai in the README.

Flexible Interceptor Hooks

Supports routing interceptors for tasks like authentication checks and post-routing analytics, allowing seamless integration of business logic into navigation, as described in the interceptor examples.

Cons

Verbose Configuration

Requires implementing multiple protocols (Factory, Finder, Action, etc.) for each view controller, leading to a steeper initial setup compared to simpler solutions, as seen in the implementation examples.

UIKit-Centric Design

While compatible with SwiftUI, the library is fundamentally built around UIKit abstractions, which might not align well with pure SwiftUI projects and adds complexity for SwiftUI-only teams.

Limited Community Adoption

Has a smaller ecosystem and community support compared to more established navigation libraries, which could impact long-term maintenance, third-party resources, and troubleshooting.

Frequently Asked Questions

Quick Stats

Stars926
Forks64
Contributors0
Open Issues0
Last commit3 months ago
CreatedSince 2018

Tags

#declarative#ios#factory#view-controller#swift5#swiftui#deeplink#swift#coordinator-pattern#protocol-oriented#router#routing-engine#navigation#uikit#deep-linking

Built With

S
SwiftUI
U
UIKit
S
Swift

Included in

iOS51.7k
Auto-fetched 6 hours ago

Related Projects

JLRoutesJLRoutes

URL routing library for iOS with a simple block-based API

Stars5,714
Forks690
Last commit3 years ago
DeepLinkKitDeepLinkKit

A splendid route-matching, block-based way to handle your deep links.

Stars3,455
Forks280
Last commit5 months ago
URLNavigatorURLNavigator

⛵️ Elegant URL Routing for Swift

Stars3,344
Forks299
Last commit1 year ago
RxFlowRxFlow

RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern

Stars1,907
Forks116
Last commit11 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub