Overview
NavigationKit is a modern SwiftUI navigation framework that provides a clean, coordinator-based architecture for managing complex navigation flows in iOS applications.
Key Features
π― Coordinator Pattern
Clean separation of navigation logic from view presentation.
π Type-Safe Navigation
Compile-time safety for all navigation operations.
π± Multiple Styles
Push, sheet, full-screen, and custom presentations.
π Deep Link Support
Built-in deep link handling with easy integration.
β‘ SwiftUI Native
Designed specifically for SwiftUI with iOS 16+.
π‘οΈ Thread-Safe
MainActor compliance ensures thread-safe operations.
Quick Start
// Add to your Package.swift
dependencies: [
.package(url: "https://github.com/dimzfresh/NavigationKit.git", from: "1.0.0")
]
Basic Usage
@MainActor
final class MainCoordinator: BaseCoordinator {
@Published var childCoordinator: (any Coordinator)?
@Published var navigationRouters: [NavigationRouter] = []
var rootView: some View {
NavigationStack(path: rootNavigationRouter.pathBinding) {
HomeView()
.navigationDestination(for: NavigableView.self) { navigableView in
navigableView.view
}
}
.onAppear {
setupNavigationRouter()
}
}
}
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NavigationKit Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β Coordinator β β BaseCoordinator β β
β β (Protocol) ββββββ€ (Protocol) β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β β β
β β βΌ β
β β βββββββββββββββββββ β
β β βNavigationRouter β β
β β β (Class) β β
β β βββββββββββββββββββ β
β β β β
β β βΌ β
β β βββββββββββββββββββ β
β β β NavigableView β β
β β β (Struct) β β
β β βββββββββββββββββββ β
β β β β
β β βΌ β
β β βββββββββββββββββββ β
β β β NavigationType β β
β β β (Enum) β β
β β βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Requirements
- iOS 16.0+
- Swift 5.10+
- Xcode 15.0+