LEARN WITH A CLEAR DIRECTION
Master Android's modern declarative UI toolkit from fundamentals to advanced animations and custom components
Jetpack Compose is Android's modern UI toolkit that simplifies and accelerates UI development. This roadmap covers declarative UI, state management, animations, theming, navigation, testing, and performance. New: an optional Deep Dive track on compiler, runtime, snapshot state, and smart recomposition so you can explain internals in interviews.
THE CURRICULUM
195 lessons across 26 modules. Lessons marked “Coming soon” aren’t available yet.
Core concepts of declarative UI and basic Compose building blocks
Essential Compose components for building user interfaces
Master layout composables and create responsive designs
Handle state effectively in Compose applications
Master side effects APIs to bridge Compose with external systems
Build efficient scrollable lists and grids
Build robust forms with validation, focus management, and keyboard handling
Modal UI patterns and scaffold-based layouts for complete screens
Create beautiful and consistent visual designs
Implement navigation patterns and screen transitions
Create smooth animations and delightful user experiences
Handle touch gestures, drag and drop, and complex interactions
Build reusable custom components and advanced UI patterns
Integrate Compose with existing View system and third-party libraries
Comprehensive testing strategies for Compose applications
Optimize Compose performance and handle complex scenarios
Edge-to-edge design, safe areas, and layouts for all screen sizes
Implicit data passing and advanced theming techniques
Custom graphics, shaders, and advanced visual effects
Explore advanced Compose features and establish best practices
Formal properties and why Compose can re-run code safely
What the Kotlin compiler plugin generates and how stability is inferred
How the Composer builds, updates, and draws the UI tree
StateObjects/Records, snapshots, and conflict merging
Skippability, keys, stability, and concurrent recomposition
SideEffect, DisposableEffect, LaunchedEffect, rememberUpdatedState—what actually happens