What We’ve Done to (Plan to) Migrate from Navigation 2 to 3

Jetpack Navigation 3 is a new navigation library, completely redesigned for Jetpack Compose and announced at Google I/O 2025. Compared with the previous Navigation 2 (navigation-compose), its structure has been significantly revised so that it works more naturally with Compose’s state management. Key changes include a scene-based NavHost structure, direct access to the BackStack via a MutableList, and state retention that ties in more seamlessly with Compose mechanisms. These improvements make back-navigation and history control more flexible, but they also require a careful understanding of how Navigation 3 differs from existing codebases. With this in mind, we’re planning to migrate our company’s app “OneBank,” which currently uses navigation-compose, to Navigation 3, and we’ve begun research and preparations. This session introduces the work we’re doing from the following perspectives: - Understanding the new API architecture through the official Navigation 3 documentation and sample code - Taking stock of our app’s navigation graph and transition patterns - Mapping out how Navigation 3’s structure and responsibilities affect existing code - Implementing a small-scale migration on individual Compose screens and verifying basic behaviors such as screen transitions and back navigation - Organizing discussion points on Deep Link handling and state retention across multiple screens As apps designed around Navigation 3 become more common, we hope these insights will help projects currently on Navigation 2 migrate in a phased and manageable way. (Translated by the DroidKaigi Committee)

  • yokomii Android Engineer


Summary

  • Dates 2025.09.12 / 11:20 ~ 12:00 (40min)
  • Place Koala
  • Language Japanese

Intended audience

- Developers building apps with Jetpack Compose who want to review and refine their navigation architecture - Teams using Navigation 2 (navigation-compose) who want to understand the differences with Navigation 3 and the key points for migration - Those who may adopt Navigation 3 in future projects and wish to grasp its core concepts and ways to migrate

Android is a trademark of Google LLC. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Android, Google Play and the Google Play logo are trademarks of Google LLC.

© 2014- DroidKaigi Committee