The Workflow Pattern, Composed
summary
Workflow is already running nearly two thirds of Square’s flagship app and now integrates with Jetpack Compose via a composable view factory and a workflow rendering composable that let views and composables nest both ways. The implementation wires lifecycle and save-state owners, implements compose-to-view and view-to-compose interop, and fixed early Compose bugs; about 120 renderings migrated so far. Migration happens incrementally one view factory at a time, and the approach proves practical though some inefficiencies remain in full-tree re-renders.
AI-written summary · about
chapters (17)
- 0:00Introduction and speaker intro
- 1:18Talk purpose and workflow overview
- 3:27Workflow architecture deep dive
- 8:44Compose integration with workflow
- 11:33Simple Compose rendering example
- 12:57Nested renderings in Compose
- 15:27Lifecycle handling in Compose
- 17:34Fixing rendering type changes
- 20:31Recap of Compose integration
- 21:32View to Compose interop
- 25:25Seamless UI toolkit migration
- 26:51Challenges and bugs in interop
- 29:19State saving across UI toolkits
- 31:26Composition locals and API design
- 32:52Workflow library evolution
- 33:56Square’s Compose adoption status
- 35:41Closing remarks and thanks
related talks
41mSquare Workflow: Android and iOS apps composed of state machines defining UI and navigation.
33mMigrating to Jetpack Compose - an interop love story
37mAdopting Jetpack Compose Safely
44mComposables in Views: Interoperability and the Clash of Lifecycles
38mFrom Android View to Jetpack Compose — A Guide to Migrating to Jetpack Compose
19mUsing Jetpack libraries in Compose
35mDeclarative UI patterns
25mWhat can we learn from Jetpack Compose?
