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 Mode (Coming Soon)Custom 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 Screens (Coming Soon)NavHost, NavController, passing arguments, bottom navigation, type-safe nav
9ViewModel with Compose (Coming Soon)StateFlow 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 Friends (Coming Soon)LaunchedEffect, DisposableEffect, rememberCoroutineScope, derivedStateOf
12Retrofit — Loading Data from APIs (Coming Soon)API calls, loading/error/success states, StateFlow, error handling
13Room Database — Saving Data Locally (Coming Soon)Entity, DAO, CRUD operations, observing with Flow, notes app example
14Dependency Injection with Hilt (Coming Soon)What DI is, @HiltViewModel, @Inject, connecting API + DB + ViewModel

Part 3: Advanced

Build production-quality apps.

#TutorialWhat You Will Learn
15Animations — Make Your UI Feel Alive (Coming Soon)AnimatedVisibility, animateAsState, Crossfade, transitions
16Custom Layouts and Canvas (Coming Soon)Custom Layout composable, Canvas drawing, custom progress indicator
17Performance — Making Your App Fast (Coming Soon)Recomposition, stable types, remember, debugging tools
18Testing Compose UI (Coming Soon)createComposeRule, finding elements, actions, assertions
19Permissions and Camera (Coming Soon)Runtime permissions, CameraX Compose, handling denied states
20Adaptive Layouts — Phones, Tablets, and Foldables (Coming Soon)Window 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 Manager (Coming Soon)App overview, features, project structure, setting up Hilt + Room + Nav
22Building the Data Layer (Coming Soon)Room entities, DAO, repository pattern, use cases
23Building the UI Layer (Coming Soon)Task list, add/edit screen, form validation, MVI, search and filter
24Navigation, Animations, and Polish (Coming Soon)Multi-screen nav, transitions, swipe-to-delete, empty states, dark mode
25Publishing Your App — From Code to Google Play (Coming Soon)Signed 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.