androidengineers.Book a session

LEARN WITH A CLEAR DIRECTION

Jetpack Compose

Master Android's modern declarative UI toolkit from fundamentals to advanced animations and custom components

Beginner to AdvancedSelf-paced26 modules2 available lessons

Your path, one skill at a time.

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.

What you’ll learn

  • Build complete Android UIs with Compose
  • Master state management and data flow
  • Create complex animations and transitions
  • Implement custom composables and modifiers
  • Design responsive layouts for different screen sizes
  • Integrate Compose with existing View-based apps
  • Optimize Compose performance and handle edge cases
  • Test Compose UIs effectively
  • Explain Compose internals (compiler/runtime/snapshots) to interviewers

THE CURRICULUM

Build your knowledge, step by step.

195 lessons across 26 modules. Lessons marked “Coming soon” aren’t available yet.

01MODULE 01Compose Fundamentals7 lessons · Self-paced

Core concepts of declarative UI and basic Compose building blocks

  1. 01Declarative vs Imperative UIComing soon
  2. 02Compose Setup and First ComposableComing soon
  3. 03Composable Functions and @ComposableComing soon
  4. 04Compose Compiler and RuntimeComing soon
  5. 05Preview and Tooling SupportComing soon
  6. 06Composition and RecompositionComing soon
  7. 07Practice: Hello Compose AppComing soon
02MODULE 02Basic UI Components8 lessons · Self-paced

Essential Compose components for building user interfaces

  1. 01Text and TypographyComing soon
  2. 02Buttons and Interactive ElementsComing soon
  3. 03Images and IconsComing soon
  4. 04TextFields and Input ComponentsComing soon
  5. 05Cards and Surface ComponentsComing soon
  6. 06Dividers and SpacersComing soon
  7. 07Component AccessibilityComing soon
  8. 08Practice: Basic UI ComponentsComing soon
03MODULE 03Layouts and Arrangement10 lessons · Self-paced

Master layout composables and create responsive designs

  1. 01Column and Row BasicsComing soon
  2. 02Box Layout and PositioningComing soon
  3. 03Arrangement and AlignmentComing soon
  4. 04Modifier System Deep DiveComing soon
  5. 05Padding, Spacing, and Sizing (no margins in Compose)Coming soon
  6. 06ConstraintLayout in ComposeComing soon
  7. 07Responsive Design PatternsComing soon
  8. 08Custom Layout ComposablesComing soon
  9. 09Layout Performance ConsiderationsComing soon
  10. 10Practice: Complex Layout DesignComing soon
04MODULE 04State Management11 lessons · Self-paced

Handle state effectively in Compose applications

  1. 01State in Compose FundamentalsComing soon
  2. 02remember and mutableStateOf20 min
  3. 03rememberSaveable & process-death: SavedStateHandle patterns12-15 min
  4. 04State Hoisting PatternsComing soon
  5. 05derivedStateOf and Computed StateComing soon
  6. 06ViewModel IntegrationComing soon
  7. 07StateFlow/Flow (and when to keep LiveData)Coming soon
  8. 08State Restoration and SavingComing soon
  9. 09Complex State Management PatternsComing soon
  10. 10State Management Best PracticesComing soon
  11. 11Practice: State-Driven UIComing soon
05MODULE 05Side Effects and Lifecycle9 lessons · Self-paced

Master side effects APIs to bridge Compose with external systems

  1. 01Understanding Side Effects in ComposeComing soon
  2. 02LaunchedEffect for Coroutine-based EffectsComing soon
  3. 03rememberCoroutineScope for Event HandlersComing soon
  4. 04DisposableEffect for CleanupComing soon
  5. 05SideEffect for Non-Compose State SyncComing soon
  6. 06produceState for Async Data to StateComing soon
  7. 07rememberUpdatedState for Capturing Latest ValuesComing soon
  8. 08Effect Keys and Restart BehaviorComing soon
  9. 09Practice: Building a Timer with EffectsComing soon
06MODULE 06Lists and Lazy Components8 lessons · Self-paced

Build efficient scrollable lists and grids

  1. 01LazyColumn and LazyRow BasicsComing soon
  2. 02LazyVerticalGrid and LazyHorizontalGridComing soon
  3. 03List Item Keys and PerformanceComing soon
  4. 04Sticky Headers and SectionsComing soon
  5. 05Pull to Refresh ImplementationComing soon
  6. 06Paging 3 + Lazy lists (load states, separators, refresh)Coming soon
  7. 07Custom List LayoutsComing soon
  8. 08Practice: Advanced List ImplementationComing soon
07MODULE 07Forms, Input Validation, and Focus8 lessons · Self-paced

Build robust forms with validation, focus management, and keyboard handling

  1. 01TextField Variants and ConfigurationComing soon
  2. 02Input Validation PatternsComing soon
  3. 03FocusRequester and FocusManagerComing soon
  4. 04Keyboard Actions and IME OptionsComing soon
  5. 05Form State Management with StateHolderComing soon
  6. 06Visual Transformation and MaskingComing soon
  7. 07Error Handling and Feedback UIComing soon
  8. 08Practice: Multi-Field Registration FormComing soon
08MODULE 08Dialogs, Bottom Sheets, and Scaffold8 lessons · Self-paced

Modal UI patterns and scaffold-based layouts for complete screens

  1. 01AlertDialog and Custom DialogsComing soon
  2. 02ModalBottomSheet ImplementationComing soon
  3. 03Scaffold, TopAppBar, and FABComing soon
  4. 04Snackbar and SnackbarHostComing soon
  5. 05Drawer Layouts (ModalNavigationDrawer)Coming soon
  6. 06Popup and DropdownMenuComing soon
  7. 07Modal State Management Best PracticesComing soon
  8. 08Practice: Settings Screen with DialogsComing soon
09MODULE 09Theming and Styling9 lessons · Self-paced

Create beautiful and consistent visual designs

  1. 01Material Design 3 in ComposeComing soon
  2. 02Color Systems and PalettesComing soon
  3. 03Typography and Text StylingComing soon
  4. 04Shape System and Custom ShapesComing soon
  5. 05Dark Theme ImplementationComing soon
  6. 06Dynamic Color and Material YouComing soon
  7. 07Custom Theme CreationComing soon
  8. 08Theme Testing and PreviewsComing soon
  9. 09Practice: Custom Theme DesignComing soon
10MODULE 10Navigation and Screen Management9 lessons · Self-paced

Implement navigation patterns and screen transitions

  1. 01Navigation Component for ComposeComing soon
  2. 02NavHost and NavController SetupComing soon
  3. 03Route Parameters and ArgumentsComing soon
  4. 04Predictive Back + BackHandler, state restore, and multiple back stacksComing soon
  5. 05Bottom Navigation ImplementationComing soon
  6. 06Drawer Navigation and RailsComing soon
  7. 07Deep Linking and NavigationComing soon
  8. 08Navigation Testing StrategiesComing soon
  9. 09Practice: Multi-Screen NavigationComing soon
11MODULE 11Animations and Transitions10 lessons · Self-paced

Create smooth animations and delightful user experiences

  1. 01Animation Fundamentals in ComposeComing soon
  2. 02animate*AsState FunctionsComing soon
  3. 03Transition API and StatesComing soon
  4. 04AnimatedVisibility and Enter/ExitComing soon
  5. 05AnimatedContent for Content ChangesComing soon
  6. 06Custom Animations with AnimatableComing soon
  7. 07Gesture-Based AnimationsComing soon
  8. 08Shared Element TransitionsComing soon
  9. 09Animation Performance TipsComing soon
  10. 10Practice: Advanced Animation ShowcaseComing soon
12MODULE 12Gestures and Input Handling8 lessons · Self-paced

Handle touch gestures, drag and drop, and complex interactions

  1. 01Pointer Input and Touch EventsComing soon
  2. 02Drag and Drop ImplementationComing soon
  3. 03Nested scroll & BringIntoView: coordinating scroll behaviorsComing soon
  4. 04Swipe Gestures and DismissalComing soon
  5. 05Multi-touch and Zoom GesturesComing soon
  6. 06Custom Gesture DetectionComing soon
  7. 07Accessibility and Gesture SupportComing soon
  8. 08Practice: Gesture-Rich InterfaceComing soon
13MODULE 13Custom Composables and Components8 lessons · Self-paced

Build reusable custom components and advanced UI patterns

  1. 01Creating Custom ComposablesComing soon
  2. 02Composable APIs and ParametersComing soon
  3. 03Slot APIs and Content ComposablesComing soon
  4. 04Custom Modifier APIs (+ Modifier.Node in modern Compose)Coming soon
  5. 05Canvas and Custom DrawingComing soon
  6. 06Component Libraries and Design SystemsComing soon
  7. 07Composable Testing StrategiesComing soon
  8. 08Practice: Custom Component LibraryComing soon
14MODULE 14Integration and Interoperability7 lessons · Self-paced

Integrate Compose with existing View system and third-party libraries

  1. 01Compose in View-based AppsComing soon
  2. 02View in Compose with AndroidViewComing soon
  3. 03Fragment Integration PatternsComing soon
  4. 04WebView and Maps IntegrationComing soon
  5. 05Third-party Library AdaptationComing soon
  6. 06Migration StrategiesComing soon
  7. 07Practice: Hybrid App DevelopmentComing soon
15MODULE 15Testing Compose UIs9 lessons · Self-paced

Comprehensive testing strategies for Compose applications

  1. 01Compose Testing FundamentalsComing soon
  2. 02ComposeTestRule and Test SetupComing soon
  3. 03Finding and Interacting with NodesComing soon
  4. 04Assertions and VerificationsComing soon
  5. 05Semantics matchers, idling, and flake-proof waits (runOnIdle, waitUntil)Coming soon
  6. 06Testing State and InteractionsComing soon
  7. 07Screenshot TestingComing soon
  8. 08Testing Best PracticesComing soon
  9. 09Practice: Comprehensive Test SuiteComing soon
16MODULE 16Performance Optimization9 lessons · Self-paced

Optimize Compose performance and handle complex scenarios

  1. 01Compose Performance FundamentalsComing soon
  2. 02Recomposition Optimization: stable data classes, equals(), derivedStateOfComing soon
  3. 03Stability and ImmutabilityComing soon
  4. 04LazyList Performance TuningComing soon
  5. 05@Stable/@Immutable, snapshotFlow pitfalls, and tracing recompositions (Layout Inspector & compiler metrics)Coming soon
  6. 06Memory Management in ComposeComing soon
  7. 07Performance Profiling ToolsComing soon
  8. 08Common Performance PitfallsComing soon
  9. 09Practice: Performance OptimizationComing soon
17MODULE 17Window Insets and Adaptive Layouts9 lessons · Self-paced

Edge-to-edge design, safe areas, and layouts for all screen sizes

  1. 01Understanding WindowInsets in ComposeComing soon
  2. 02Edge-to-Edge ImplementationComing soon
  3. 03System Bars and Keyboard InsetsComing soon
  4. 04imePadding and consumeWindowInsetsComing soon
  5. 05Adaptive Layouts with WindowSizeClassComing soon
  6. 06ListDetailPaneScaffold for Large ScreensComing soon
  7. 07Foldable Device SupportComing soon
  8. 08Testing on Different Screen SizesComing soon
  9. 09Practice: Adaptive Email Client LayoutComing soon
18MODULE 18CompositionLocal and Advanced Theming5 lessons · Self-paced

Implicit data passing and advanced theming techniques

  1. 01CompositionLocal FundamentalsComing soon
  2. 02staticCompositionLocalOf vs compositionLocalOfComing soon
  3. 03Creating Custom CompositionLocalsComing soon
  4. 04When to Use CompositionLocal vs ParametersComing soon
  5. 05Practice: App-wide Settings with CompositionLocalComing soon
19MODULE 19Graphics Layer and Advanced Drawing8 lessons · Self-paced

Custom graphics, shaders, and advanced visual effects

  1. 01graphicsLayer Modifier Deep DiveComing soon
  2. 02drawBehind and drawWithContentComing soon
  3. 03Blend Modes and Color FiltersComing soon
  4. 04Path Drawing and CurvesComing soon
  5. 05RuntimeShader and AGSL IntroductionComing soon
  6. 06Image Filters and EffectsComing soon
  7. 07Performance Considerations for GraphicsComing soon
  8. 08Practice: Custom Animated BackgroundComing soon
20MODULE 20Advanced Topics and Best Practices9 lessons · Self-paced

Explore advanced Compose features and establish best practices

  1. 01Compose BOM and Dependency ManagementComing soon
  2. 02Compose Multiplatform OverviewComing soon
  3. 03Architecture Patterns with ComposeComing soon
  4. 04Accessibility in ComposeComing soon
  5. 05Internationalization and LocalizationComing soon
  6. 06Baseline Profiles for PerformanceComing soon
  7. 07Compose Compiler MetricsComing soon
  8. 08Future of Compose DevelopmentComing soon
  9. 09Final Project: Complete Compose AppComing soon
21MODULE 21Deep Dive: Nature of Composable Functions4 lessons · Self-paced · Optional

Formal properties and why Compose can re-run code safely

  1. 01Composable function properties: idempotent, side-effect-free, restartableComing soon
  2. 02Calling context & colored functions; similarities with suspendComing soon
  3. 03Positional memoization & why parameter order mattersComing soon
  4. 04Exercise: Rewrite a side-effecting composable into a pure oneComing soon
22MODULE 22Deep Dive: The Compose Compiler5 lessons · Self-paced · Optional

What the Kotlin compiler plugin generates and how stability is inferred

  1. 01Annotations, IR lowering, and injecting the ComposerComing soon
  2. 02Stability inference, default params, and control-flow groupsComing soon
  3. 03Lambda memoization & comparison propagationComing soon
  4. 04Live literals, version checks, klib/decoy generation (overview)Coming soon
  5. 05Exercise: Use compiler metrics to spot unnecessary recompositionsComing soon
23MODULE 23Deep Dive: Runtime, Slot Table & UI Materialization5 lessons · Self-paced · Optional

How the Composer builds, updates, and draws the UI tree

  1. 01Slot table, groups, reads/writes; recompose scopesComing soon
  2. 02Appliers, LayoutNode lifecycle, and modifier chainsComing soon
  3. 03Measuring policies, intrinsic measurements, constraintsComing soon
  4. 04Semantics: merged vs unmerged trees & accessibility signalsComing soon
  5. 05Exercise: Instrument a custom Layout + measure pass loggingComing soon
24MODULE 24Deep Dive: Snapshot State & Concurrency (MVCC)4 lessons · Self-paced · Optional

StateObjects/Records, snapshots, and conflict merging

  1. 01What snapshot state is; MVCC model & snapshot treeComing soon
  2. 02Observing reads/writes, nested snapshots, threadingComing soon
  3. 03Change propagation & merging write conflictsComing soon
  4. 04Exercise: Diagnose a missed snapshot read in a list screenComing soon
25MODULE 25Deep Dive: Smart Recomposition4 lessons · Self-paced · Optional

Skippability, keys, stability, and concurrent recomposition

  1. 01Skips via stability & equality; when comparison failsComing soon
  2. 02Keys, derivedStateOf, and minimizing invalidationsComing soon
  3. 03Recomposer & concurrent recomposition (pitfalls & patterns)Coming soon
  4. 04Exercise: Make a dashboard skippable without sacrificing correctnessComing soon
26MODULE 26Deep Dive: Effects & Lifecycle4 lessons · Self-paced · Optional

SideEffect, DisposableEffect, LaunchedEffect, rememberUpdatedState—what actually happens

  1. 01Non-suspended vs suspended effects; lifecycle semanticsComing soon
  2. 02Keying effects correctly; avoiding stale closuresComing soon
  3. 03Adapters for 3rd-party libs (e.g., listeners, callbacks)Coming soon
  4. 04Exercise: Refactor side-effects out of composables safelyComing soon