Jetpack Compose Academy
Build modern Android UIs with Jetpack Compose, Google's declarative toolkit in Kotlin. From your first Composable to publishing on Google Play.
Explore Course Tools
Supercharge your learning with AI-powered tools and features
How You'll Learn
30 Courses
Every course in the Jetpack Compose Academy learning path.
Welcome to Jetpack Compose
Set up Android Studio for Compose and run your very first declarative UI.
- What Compose Replaces: Goodbye XML
- Set Up Android Studio for Compose
- Anatomy of an @Composable Function
- +1 more
Your First Composable
Write and preview Composables that draw real content on screen.
- Writing a @Composable Function
- Live Previews with @Preview
- Calling Composables from Composables
- +1 more
Text & Typography
Display and style text with fonts, colors, and emphasis.
- The Text Composable
- Font Size, Weight & Style
- Color, Alignment & Overflow
- +1 more
Images & Icons
Render local drawables, vector icons, and shaped images.
- The Image Composable
- Material Icons with Icon
- ContentScale & Cropping
- +1 more
Buttons & Click Handling
Add interactive buttons that respond to taps.
- Button and onClick
- Text, Outlined & Icon Buttons
- Enabled, Disabled & Loading States
- +1 more
Layout with Column, Row & Box
Arrange Composables vertically, horizontally, and stacked.
- Column: Stack Things Vertically
- Row: Place Things Side by Side
- Box: Layer & Overlap
- +1 more
Modifiers: Shape Every Composable
Use the modifier chain to size, pad, and decorate any element.
- Padding, Size & fillMaxWidth
- Background, Border & Clip
- Why Modifier Order Matters
- +1 more
State Basics: Make the UI React
Hold and change state so your UI updates automatically.
- remember & mutableStateOf
- Recomposition: What Triggers a Redraw
- Build a Tap Counter
- +1 more
Forms & Text Input
Capture user input with text fields and validate it.
- TextField & OutlinedTextField
- Labels, Placeholders & Leading Icons
- Keyboard Types & IME Actions
- +1 more
Build a Profile Card App
Combine layout, images, text, and state into a finished screen.
- Sketch the Profile Card Layout
- Avatar, Name & Bio Section
- Stats Row & Follow Button
- +1 more
Lists with LazyColumn
Render long, scrollable lists efficiently with lazy composition.
- LazyColumn vs Scrollable Column
- items & itemsIndexed
- Keys for Stable, Fast Lists
- +1 more
Grids & Horizontal Lists
Lay out content in grids and swipeable horizontal rows.
- LazyVerticalGrid Galleries
- LazyRow for Carousels
- Adaptive vs Fixed Grid Cells
- +1 more
Material 3 Theming
Apply a cohesive Material You theme across your whole app.
- MaterialTheme & Color Schemes
- Typography & Shape Tokens
- Dark Mode & Dynamic Color
- +1 more
Scaffold & App Structure
Frame screens with top bars, bottom bars, and FABs using Scaffold.
- Scaffold: The Screen Skeleton
- TopAppBar & Action Icons
- Bottom Bars & Floating Action Buttons
- +1 more
State Hoisting & Reusable Components
Design stateless Composables by lifting state to the right owner.
- Stateful vs Stateless Composables
- Hoist State with value & onValueChange
- Single Source of Truth
- +1 more
ViewModel & UI State
Move business logic into a ViewModel and expose immutable UI state.
- Why ViewModel Survives Rotation
- viewModel() in a Composable
- Modeling a UiState Data Class
- +1 more
Navigation Compose
Move between screens with the Navigation Compose graph.
- NavController & NavHost
- Composable Destinations & Routes
- Passing Arguments Between Screens
- +1 more
Bottom Navigation & Tabs
Build multi-section apps with bottom nav bars and tab rows.
- NavigationBar with Multiple Tabs
- Highlighting the Selected Route
- Preserving Tab State on Switch
- +1 more
Side Effects in Compose
Run non-UI work safely with Compose's effect handlers.
- LaunchedEffect for Coroutines
- rememberCoroutineScope for Events
- DisposableEffect & Cleanup
- +1 more
Networking with Retrofit
Fetch JSON from a REST API and show it in your Compose UI.
- Define a Retrofit API Interface
- Parsing JSON with Moshi
- suspend Calls in the ViewModel
- +1 more
Custom Layouts with Layout
Build bespoke layouts by measuring and placing children yourself.
- The Measure & Place Model
- Writing a Layout Composable
- Constraints & Intrinsic Measurements
- +1 more
Drawing with Canvas
Render custom graphics, charts, and shapes on a Compose Canvas.
- DrawScope: Lines, Rects & Circles
- Paths, Gradients & Blend Modes
- drawWithCache & Performance
- +1 more
Animations & Motion
Bring screens to life with state-driven and gesture-driven motion.
- animate*AsState for Simple Tweens
- AnimatedVisibility & Crossfade
- updateTransition for Coordinated Motion
- +1 more
Gestures & Touch Input
Handle taps, drags, swipes, and multi-touch with the pointer API.
- pointerInput & detectTapGestures
- Drag, Swipe & Fling
- Transform: Pan, Zoom & Rotate
- +1 more
Performance & Recomposition
Profile and tune Compose to eliminate unnecessary recompositions.
- Stable vs Unstable Parameters
- Skipping, @Stable & @Immutable
- Deferring State Reads
- +1 more
Flow & Coroutines in Compose
Stream reactive data into the UI with Kotlin Flow and StateFlow.
- StateFlow vs SharedFlow
- Mapping & Combining Flows
- stateIn & WhileSubscribed
- +1 more
Local Persistence with Room
Store and observe data locally with Room and Flow.
- Entities, DAOs & the Database
- Reactive Queries Returning Flow
- The Repository Pattern
- +1 more
Dependency Injection with Hilt
Wire dependencies into ViewModels and screens with Hilt.
- Why DI: Testable, Decoupled Code
- Modules, @Provides & @Binds
- hiltViewModel & @HiltViewModel
- +1 more
Testing Compose UIs
Write reliable unit and UI tests for your Compose screens.
- createComposeRule & Finders
- Assertions & Performing Actions
- Semantics & Test Tags
- +1 more
Ship to the Play Store
Polish, package, and release a production-ready Compose app.
- Accessibility & Edge-to-Edge UI
- Baseline Profiles for Fast Startup
- Signed Release App Bundle
- +1 more
Frequently Asked Questions
Is the Jetpack Compose Academy course free?
Yes. You can start the Jetpack Compose Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.
Do I need prior experience to learn KOTLIN?
No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior KOTLIN experience.
How will I learn KOTLIN on CoddyKit?
You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.
Do I get a certificate for completing Jetpack Compose Academy?
Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Jetpack Compose Academy course.
Can I learn KOTLIN on my phone?
Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn KOTLIN on any device and your progress syncs across them.
Start Jetpack Compose Academy Now
Join thousands of learners mastering programming with AI-powered lessons.