Navigation 3: The Good, the Bad, and the Hotfixed — A Production Story
summary
Migration takes two weeks, one developer, 302 files changed, and single-digit hours of sleep to move 170+ screens from Nav2 to Nav3 with no incremental path. Deep links become centralized and type-safe, but a serialization exception at a 1% rollout forces a hotfix and a new fully serializable nav state. Bottom sheets require a custom rendering hack until Google ships native support, summarized as bottom sheets as navigation destinations. Regression suites and staged rollouts save the release.
AI-written summary · about
chapters (16)
- 0:00Navigation 3 migration story
- 1:02Legacy navigation debt
- 2:46Business and technical reasons
- 3:49Navigation 3 declarative model
- 5:12Feasibility study and backward compatibility
- 6:40Manual migration challenges
- 8:03Deep link auditing and type safety
- 9:08Bottom sheet workaround
- 10:11Regression testing and rollout
- 10:51Serialization exception fix
- 12:16Post-migration tools and lessons
- 12:58Critical warnings for bottom navigation
- 14:22Serialization contracts verification
- 15:25Results and velocity improvements
- 16:29Key rules and takeaways
- 16:51Q&A
related talks
39mWhat I Did to Migrate Navigation 2 to 3 (Planned)
41mBottom Navigation Headache
49mNavigation Component, feedback from the trench
43mNavigation Component, feedback from the trench
41mNavigating Android Like a Pro
41mNav2, Nav3… Or Roll Your Own? — Building to Understand Nav3’s Design Intent
33mFinding Your Way Through the Navigation Framework
39mNavigating the future with Jetpack Navigation 3
