kotlin-navigation-compose-multiplatform

Enforce coherent navigation models in Compose Multiplatform projects using Jetpack Navigation 2.

63|6|Updated Mar 27, 2026
One-click install
npx skills add https://github.com/mmiani/kotlin-kmp-claude-agent-skills --skill kotlin-navigation-compose-multiplatform-mmiani
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kotlin-navigation-compose-multiplatform
Source: https://github.com/mmiani/kotlin-kmp-claude-agent-skills/tree/main/skills/kotlin-navigation-compose-multiplatform
Command: npx skills add https://github.com/mmiani/kotlin-kmp-claude-agent-skills --skill kotlin-navigation-compose-multiplatform-mmiani

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Clarifies and enforces a coherent navigation model across Compose Multiplatform projects to prevent brittle routing, tangled back stacks, and inconsistent deep-link handling.

Core Features & Use Cases

  • Explicit route modeling and typed destinations to reduce string literals scattered through the codebase.
  • Single NavController ownership and navigation events raised from hosts rather than leaf composables.
  • Clear back stack ownership and controlled mutations via a small set of navigation APIs.
  • Minimal argument passing and avoidance of large objects in navigation payloads.
  • Deep-link patterns that are non-overlapping and predictable, with shared routing logic for Android and shared code.
  • Adaptive navigation chrome that responds to window size while preserving navigation state.

Quick Start

Audit your current navigation boundaries and align them to a single NavController owner with typed routes and explicit back-stack policies.

Frequently Asked Questions about kotlin-navigation-compose-multiplatform

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent a brittle back stack when wiring navigation in Compose Multiplatform?

You can prevent a brittle back stack by establishing single NavController ownership and driving navigation events from app shell hosts rather than leaf composables to ensure coherent back stack mutations.

What is the best way to model routes in Kotlin Compose Multiplatform to avoid scattered string literals?

The best way to model routes is using explicit route definitions and typed destinations, which replace scattered string literals and clarify navigation boundaries across shared Android code.

Does Compose Multiplatform navigation support deep links across Android and shared code?

Yes, Compose Multiplatform navigation supports deep links by applying non-overlapping and predictable deep-link patterns with shared routing logic across Android and shared code.

How do I handle adaptive navigation chrome for different window sizes without losing navigation state?

To handle adaptive navigation chrome, apply responsive UI behavior for different window sizes while relying on a single NavController owner to preserve the underlying navigation state.

Can I pass large objects as arguments between destinations in Jetpack Navigation 2 with Compose Multiplatform?

No, you should use minimal argument payloads and avoid passing large objects between destinations to prevent brittle routing and tangled state in Compose Multiplatform.

When should I use popUpTo and saveState in Compose Multiplatform navigation?

You should use popUpTo and saveState in a controlled manner via a small set of navigation APIs to manage clear back stack ownership and prevent unpredictable routing behaviors.