Based on the experience we gathered on programmatic navigation in SwiftUI, we decided to build an open source library that enables rich deeplinking and navigation along navigation paths.
Welcome ComposableNavigator! ![]()
ComposableNavigator is based on a NavigationTree that defines all valid paths in your application. NavigationTree leverages ResultBuilder introduced alongside SwiftUI to enable a concise DSL for tree building.
struct AppNavigationTree: NavigationTree {
let homeViewModel: HomeViewModel
let detailViewModel: DetailViewModel
let settingsViewModel: SettingsViewModel
var builder: some PathBuilder {
Screen(
HomeScreen.self,
content: {
HomeView(viewModel: homeViewModel)
},
nesting: {
DetailScreen.Builder(viewModel: detailViewModel),
SettingsScreen.Builder(viewModel: settingsViewModel)
}
)
}
}
Looking forward to feedback and contributions!