Design System 3.0 with Jetpack Compose at N26
summary
N26 migrates its Compose design system from rigid view entities to a slot-based API, converting about 70% migrated of components since September 2023. Implementation details: use slots for nested, evolving pieces; prefer simple params when content is stable; offer custom scopes to surface correct child composables in IDE completion. Gains include easier animations, accessibility semantics, concise feature code and platform alignment; drawbacks are brittle feature tests without custom finders and the migration cost across many usages.
AI-written summary · about
chapters (14)
- 0:00Design System 3.0 intro
- 1:08What is a design system
- 2:10View to Compose evolution
- 4:37Sealed class limitations
- 6:44Why non-scalable persists
- 9:29Introducing slots
- 12:37When to use slots
- 15:42Custom scopes for APIs
- 19:55Custom scopes challenges
- 21:00Slots implementation wins
- 23:24Testing slots limits
- 26:10Migration to slots
- 28:17Should you migrate
- 30:01Final thoughts & Q&A
related talks
34mRetrofitting Legacy Code with Jetpack Compose at Scale
26mCompose Beyond Material Design
01h 08mAdopting Jetpack Compose @ Scale
38mDesigning scalable Compose APIs
49mImplement your own design system with Jetpack Compose
37mAdopting Jetpack Compose Safely
01h 09mJetpack Compose for consistency of your apps' UI
39mA Design System, it Composes!
