Jetpack Compose Codelabs

This repository contains a set of Android Studio projects to help you learn about Compose in Android. Each sample contains the code for a specific Compose codelab.

For more information about Jetpack Compose, please read the documentation

đź’» Requirements

Android Studio Arctic Fox.

🧬 Codelabs

Basics codelabs

Go hands-on and learn the fundamentals of declarative UI, working with state, layouts and theming.

Layouts codelabs

Learn how layout works in Jetpack Compose, how to use the built-in layouts, modifiers, and even building your own custom layout.

State codelab

Understand patterns for working with state in a declarative world by building a Todo application.

Theming codelab

Go hands on with Compose’s implementation of Material Design to understand how to theme an application’s colors, typography and shapes and support light and dark themes.

Migration codelab

Understand how Jetpack Compose and View-based UIs can co-exist and interact, making it easy to adopt Compose at your own pace.

Animation codelab

Learn how to use Jetpack Compose Animation APIs.

Navigation codelab

Learn how to use the Jetpack Navigation library in Compose, navigate within your application, navigate with arguments, support deep-links, and test your navigation.

Testing codelab

Learn about testing Jetpack Compose UIs. Write your first tests, and learn about testing in isolation, debugging tests, the semantics tree, and test synchronization.

Accessibility codelab

Learn about the various ways to improve an app’s accessibility. Increase touch target sizes, add content descriptions, create custom actions, and more.


Copyright 2021 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.


View Github