2026.09.03 10:20 ~ 11:00 Otter

Nav2, Nav3... or build your own? Understanding the design intent of Nav3 by building it

Jetpack Compose 日本語 Interpretation available

Jetpack Navigation 3 is now stable. It is a Compose-first navigation library used by combining building blocks such as NavDisplay, Scene, SceneStrategy, and NavEntryDecorator. On the other hand, if you do not have major issues with Nav2 (Navigation Compose), many of you might feel it seems intimidating due to the number of components, and may still be waiting to see before migrating even six months after the stable release. I personally migrated to Nav3. However, Nav3 has more components and extension points compared to Nav2, and I feel it is a library where it is easy to fall into unexpected pitfalls if used without understanding the details. In this talk, to understand the design intent of each component in Nav3, we will build navigation ourselves using Compose. Starting from mutableStateListOf<Route>() and adding necessary features one by one, you will gradually see what Nav3 is trying to solve with each component. This is not a talk to recommend migrating to Nav3. Regardless of whether you adopt Nav3 or not, let's understand how navigation works together through building it yourself. (Translated by the DroidKaigi Committee)

Intended audience

People who feel Nav3 is difficult People who are taking a wait-and-see approach to migrating to Nav3 People who think Nav2 is fine as it is People who want to understand the design intent of Nav3

Sessions in the same time slot

View all sessions