~/talk

What I Did to Migrate Navigation 2 to 3 (Planned)

TalkinJapaneseat DroidKaigi 2025 · 2025-09-10..09-12· [android, frontend-architecture]
name:yokomii
links:none on file
slides:none on file

Describes migrating an Android app from Navigation 2 to Navigation 3 (alpha): Navigation 3 merges UI and navigation state, exposing a back stack as a MutableList of keys so entries are reused unless given unique content keys. Screens are composed using NavDisplay + EntryProvider + NavEntry and driven by Scene + SceneStrategy for adaptive layouts; per-entry saved state and ViewModel stores are provided by entry decorators (Hilt-compatible). Deep links require custom URL→key parsing, bottom sheets are implemented as overlay scenes, and prototypes work but need workarounds for key uniqueness and serializability.

AI-written summary · about

  1. 0:00Introduction
  2. 1:47Navigation 3 basics
  3. 8:14Scene and strategy mechanics
  4. 15:41Dialog scenes and state
  5. 19:38Migration plan overview
  6. 23:46Nested graph migration
  7. 27:01Hilt integration
  8. 28:03Deep link handling
  9. 30:10Bottom sheet migration
  10. 31:55Navigation bar redesign
  11. 35:48Extension points
  12. 37:33Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.