Is there an existing issue for this?
Is this a feature request for one of the samples?
Sample app
JetNews
Describe the problem
Feature Request
I’d like to propose migrating the current navigation-compose based setup to
Jetpack Navigation 3 (Nav3), starting with a small and well-scoped flow.
Motivation
Navigation 3 introduces:
- State-driven navigation
- Type-safe destinations (no string routes)
- Better testability and UI/state separation
- Alignment with modern Compose & MVI-style architectures
Migrating would:
- Reduce reliance on
NavController
- Make navigation logic easier to reason about and test
- Future-proof the codebase as Navigation 3 matures
Additional Notes
I’m happy to:
- Start with a draft PR
- Adjust scope based on maintainer feedback
- Drop the change if Nav3 adoption isn’t desired at this time
Please let me know if this direction aligns with the project roadmap.
Describe the solution
Proposed Solution
Introduce Jetpack Navigation 3 in a small, isolated scope as a
proof-of-concept, without removing or breaking the existing
navigation-compose setup.
The proposal is to:
- Define type-safe destinations using a
sealed interface (or similar)
- Manage navigation using a state-driven back stack instead of
NavController
- Keep ViewModels navigation-agnostic
- Integrate Nav3 at the UI layer only
- Preserve the current navigation implementation for all unaffected screens
Incremental Plan
- Select a single navigation flow .
- Introduce a Nav3-based navigator for this flow only
- Keep the existing
NavHost for the rest of the app
- Validate behavior parity (back handling, deep links if applicable)
- Document the pattern for potential future adoption
This approach keeps the change:
- Low risk
- Easy to review
- Reversible if needed
Additional context
No response
Code of Conduct
Is there an existing issue for this?
Is this a feature request for one of the samples?
Sample app
JetNews
Describe the problem
Feature Request
I’d like to propose migrating the current
navigation-composebased setup toJetpack Navigation 3 (Nav3), starting with a small and well-scoped flow.
Motivation
Navigation 3 introduces:
Migrating would:
NavControllerAdditional Notes
I’m happy to:
Please let me know if this direction aligns with the project roadmap.
Describe the solution
Proposed Solution
Introduce Jetpack Navigation 3 in a small, isolated scope as a
proof-of-concept, without removing or breaking the existing
navigation-composesetup.The proposal is to:
sealed interface(or similar)NavControllerIncremental Plan
NavHostfor the rest of the appThis approach keeps the change:
Additional context
No response
Code of Conduct