A complete, step-by-step Jetpack Compose tutorial series. From your first Composable to building and publishing a real app. Every article has working code you can copy and run.

No complicated theory. Just simple explanations and real code.


Part 1: Foundations

Learn the building blocks of Jetpack Compose.

#TutorialWhat You Will Learn
1What is Jetpack Compose and Why Should You Care?What Compose is, Compose vs XML, project setup, first Composable, @Preview
2Layouts — Column, Row, and Box ExplainedArranging elements, Arrangement, Alignment, weight, Spacer, practical examples
3Modifiers — The Secret to Styling EverythingSize, padding, background, borders, click, scroll, modifier order
4Text, Button, Image, TextField — Core ComponentsStyling text, button types, images, handling user input, login form
5State — The Most Important Conceptremember, mutableStateOf, recomposition, rememberSaveable, state hoisting
6Lists — LazyColumn and LazyRowRecyclerView replacement, items, grid layouts, click listeners, performance
7Material 3 Theming — Colors, Typography, and Dark ModeCustom themes, color schemes, fonts, dark mode, dynamic colors

Part 2: Intermediate

Build multi-screen apps with proper architecture.

#TutorialWhat You Will Learn
8Navigation — Moving Between ScreensNavHost, NavController, passing arguments, bottom navigation, type-safe nav
9ViewModel with ComposeStateFlow vs mutableStateOf, surviving config changes, connecting to UI
10MVI — Keep Your App Simple and CleanState, Intent, ViewModel pattern, one state per screen, common mistakes
11Side Effects — LaunchedEffect and FriendsLaunchedEffect, DisposableEffect, rememberCoroutineScope, derivedStateOf
12Retrofit — Loading Data from APIsAPI calls, loading/error/success states, StateFlow, error handling
13Room Database — Saving Data LocallyEntity, DAO, CRUD operations, observing with Flow, notes app example
14Dependency Injection with HiltWhat DI is, @HiltViewModel, @Inject, connecting API + DB + ViewModel

Part 3: Advanced

Build production-quality apps.

#TutorialWhat You Will Learn
15Animations — Make Your UI Feel AliveAnimatedVisibility, animateAsState, Crossfade, transitions
16Custom Layouts and CanvasCustom Layout composable, Canvas drawing, custom progress indicator
17Performance — Making Your App FastRecomposition, stable types, remember, debugging tools
18Testing Compose UIcreateComposeRule, finding elements, actions, assertions
19Permissions and CameraRuntime permissions, CameraX Compose, handling denied states
20Adaptive Layouts — Phones, Tablets, and FoldablesWindow size classes, adaptive layouts, list-detail pattern

Part 4: Build a Real App

Put everything together and build a complete task manager app.

#TutorialWhat You Will Learn
21Planning the App — A Task ManagerApp overview, features, project structure, setting up Hilt + Room + Nav
22Building the Data LayerRoom entities, DAO, repository pattern, use cases
23Building the UI LayerTask list, add/edit screen, form validation, MVI, search and filter
24Navigation, Animations, and PolishMulti-screen nav, transitions, swipe-to-delete, empty states, dark mode
25Publishing Your App — From Code to Google PlaySigned APK, Play Store listing, screenshots, upload and publish

Who is This For?

  • Beginners who know some Kotlin but never used Compose
  • XML developers who want to switch to the modern way
  • Intermediate developers who want to learn architecture patterns (MVI, clean architecture)
  • Anyone who learns better by building real things instead of reading documentation

How to Use This Series

Start from Tutorial #1 and go in order. Each tutorial builds on the previous one. By the end, you will have built a complete app from scratch.

If you already know the basics, jump to Part 2 (Tutorial #8) for architecture and real-world patterns.