Tutorial: Jetpack Compose basics
Learn the basics of Compose and how to build a simple UI component with declarative functions.
What's new in Jetpack Compose
Get an overview of Jetpack Compose, learn what a declarative UI toolkit is, and how to use Compose to build beautiful UIs.
Thinking in Compose
Learn how the declarative approach of Compose is different from the view-based approach you may have used in the past.
Jetpack Compose basics
Go hands-on and learn the fundamentals of declarative UI, working with state, layouts, and theming.
Compose by example
Learn how Compose makes Android UI easier by walking through concrete examples of open source sample apps built by the Compose team.
Layouts in Jetpack Compose
Learn how layouts work in Jetpack Compose, including: built-in layouts, modifiers, and how to build your own custom layout.
Using state in Jetpack Compose
Understand patterns for working with state in a declarative world by building a to-do app.
Jetpack Compose theming
Go hands-on with Material Design in Compose to understand how to theme an app’s colors, typography, and shapes, and support light and dark themes..
Jetpack Compose Animation
Learn about Animation APIs in Jetpack Compose and how to use them.
Testing in Jetpack Compose
Learn about testing Jetpack Compose UIs. Write your first tests, and learn about testing in isolation, debugging tests, the semantics tree, and test synchronization.
Compose for existing Apps
Understand how Compose and view-based UIs can coexist and interact, making it easy to adopt Compose at your own pace.
Migrating to Jetpack Compose
Walk through a practical migration of a View-based app to Jetpack Compose to understand how to incrementally adopt Compose, and explore the implications for your architecture and testing.
Advanced state and side effects in Jetpack Compose
Learn advanced concepts related to state and side effects APIs in Jetpack Compose. Learn how to create a state holder for complex stateful composables, create coroutines and call suspend functions from Compose code, and trigger side effects for different use cases.