← ClaudeAtlas

android-navigationlisted

Type-safe Compose Navigation for Android/KMP - route objects, feature nav graphs, cross-feature callbacks, and wiring in :app. Use this skill whenever setting up navigation, defining routes, adding a new screen to a nav graph, navigating between features, or wiring nav graphs in the app module. Trigger on phrases like "set up navigation", "add a route", "navigate between screens", "nav graph", "NavController", "type-safe nav", "cross-feature navigation", or "NavGraphBuilder".
lenorebreakneck630/claude-zero-to-hero-android-KMP · ★ 1 · AI & Automation · score 64
Install: claude install-skill lenorebreakneck630/claude-zero-to-hero-android-KMP
# Android / KMP Navigation ## Principles - **Type-safe navigation** with `@Serializable` route objects (KotlinX Serialization). - **One nav graph per feature**, defined in the feature's `presentation` module. - Feature nav graphs are assembled in `:app`. - Navigation **within** a feature uses a `NavController` passed into the feature nav graph. - Feature-to-feature navigation uses **callbacks**, keeping features decoupled. --- ## Route Objects Define routes as `@Serializable` objects or data classes in the feature's `presentation` module: ```kotlin // feature:notes:presentation @Serializable object NoteListRoute @Serializable data class NoteDetailRoute(val noteId: String) ``` Use `data object` for screens with no parameters, `data class` for screens with arguments. --- ## Feature Nav Graph Each feature exposes a `NavGraphBuilder` extension function: ```kotlin // feature:notes:presentation fun NavGraphBuilder.notesGraph( navController: NavController, onNavigateToEditor: (String) -> Unit // callback for cross-feature navigation ) { navigation<NoteListRoute>(startDestination = NoteListRoute) { composable<NoteListRoute> { NoteListRoot( onNavigateToDetail = { navController.navigate(NoteDetailRoute(it)) } ) } composable<NoteDetailRoute> { backStackEntry -> val route: NoteDetailRoute = backStackEntry.toRoute() NoteDetailRoot( noteId = route.noteI