How We Built Our SingleState Navigation Framework on Android
summary
An Android team replaced legacy navigation when migrating to Jetpack Compose by building a custom SingleState navigation framework. The talk explains the architecture decisions: keeping all navigation state in one place, applying a UDF-style approach to navigation, how state is stored and rendered and navigation events are produced, refactoring existing app navigation into modular pieces, handling BottomSheets and dialogs, and how the navigation library was covered with automated tests.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 2:14Navigation problems on Android
- 6:31Single State approach choice
- 9:43Single State navigation architecture
- 11:30Navigation state as state machine
- 15:11Navigation reducer and action handling
- 17:57Navigation state render
- 19:26Screen state preservation
- 20:55Back button handling
- 21:39Transition animations
- 22:44Modal screens implementation
- 25:32Framework modular structure
- 27:01Framework integration and usage
- 29:53Framework testing
- 33:46Summary and future plans
- 34:49Q&A
related talks
31mModel-driven navigation with Jetpack Compose – From zero to hero
50mAndroid Navigation at scale
42mComposing your navigation: charting your route in the Jetpack ecosystem
42mRoad to Single Activity
35mPainless, Typesafe Jetpack Compose Navigation with Voyager
49mBuilding an Android UI using declarative programming in Jetpack Compose
33mAdventures in Navigation
36mNavigation and the Single Activity: Learnings from a Skeptic
