👓 A continuously updated list of learning Jetpack Compose for Android apps.
Awesome Jetpack Compose Learning Resources aims to be your starting point to find the finest learning content for Jetpack Compose suites of libraries.
Content in languages other than English is tagged according to ISO 639-2 codes.
Jetpack Compose Pathways - Learn about Compose, a modern toolkit for building native Android UI. Test your knowledge of Compose and earn your Jetpack Compose badge.
Testing in Jetpack Compose - In this codelab you'll learn about testing UIs created with Jetpack Compose. You will write your first tests while learning about testing in isolation, debugging tests, semantics trees and synchronization.
Jetpack Compose Navigation - Use the Jetpack Navigation component to navigate between screens in Jetpack Compose.
Compose Animation - In this codelab, you will learn how to use some Animation APIs in Jetpack Compose.
Jetpack Compose basics - In this codelab, you will learn * What Compose is * How to build UIs with Compose * How to manage state in composable functions * Data flow principles in Compose.
Migrating to Jetpack Compose - In this codelab, you'll be migrating parts of the Sunflower's plant details screen to Compose. We created a copy of the project for you to try out migrating a realistic app to Compose.🏉
Layouts in Jetpack Compose - In this codelab, you'll learn how to use Compose's highest level of UI abstraction, Material Design, as well as low-level composables like Layout that allows you to measure and place elements on the screen
Jetpack Compose Theming - In this codelab you will learn how to use Jetpack Compose's theming APIs to style your application. We'll see how to customize colors, shapes and typography so that they're used consistently throughout your application, supporting multiple themes such as light & dark theme.
Using State in Jetpack Compose - In this codelab you'll learn about the state and how it can be used and manipulated by Jetpack Compose.
https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/ui - Git repository on Jetpack Compose.
https://github.com/androidx/androidx/tree/androidx-master-dev/ui - Development environment for Jetpack Compose. Synchronized with Jetpack's primary development branch on AOSP.
https://github.com/aosp-mirror/platform_frameworks_support/tree/androidx-master-dev/ui - AOSP mirror of Git repository on Jetpack Compose.
https://issuetracker.google.com/issues?q=status:open%20componentid:612128 - Search Recent issues for Jetpack Compose Android.
https://issuetracker.google.com/issues/new?component=612128 - Create new issue for Jetpack Compose Android.
https://github.com/android/compose-samples - Official Jetpack Compose Samples
jetc.dev - Jetpack Compose Resources + Newsletter.
Understanding Jetpack Compose Article Series- Understanding Jetpack Compose — Part 1 of 2 by Leland Richardson
JOE BIRCH - Collection of quality articles on Jetpack Compose by Joe Birch.
Jetpack Compose Playground - This is a collection of Jetpack Compose examples/tutorials and demos.
Search latest jetpack compose articles on Medium - Collection of quality articles from Android Devs and the Android team that worked on Jetpack Compose. Sort Jetpack Compose articles by Recency on Medium.
Search jetpack compose articles on Dev - Collection of quality articles from Android Devs. Sort Jetpack Compose articles by Recency on Dev.to
Compose Academy - Snippets and guides for Jetpack Compose on the Android platform
JetpackCompose.app - Learn more about using Jetpack Compose in Android. How does Jetpack Compose compare to the existing Android UI Toolkit?
Jetpack Compose Archives by AlexZh - Quality Jetpack Compose articles by AlexZh
Jetpack Compose Tutorial for Android: Getting Started - In this Jetpack Compose tutorial, you’ll learn to use the new declarative UI framework being developed by the Android team by creating a cookbook app.
intelligibabble - Leland Richardson
adammc331 - Adam McNeilly
Elliott_Troop - Elliott Troop
ThePocmo - ThePocmo
Learn more about the core concepts of #JetpackCompose right from your Twitter feed! My goal is to create easy-to-consume but useful content that does not take up too much of your time. - by Vinay Gaba
On #JetpackCompose Alpha day, I want to share a story about Architecture in Compose. When we open sourced Compose at I/O 2019, one of the most common questions from many Android developers was “What does this mean for the architecture of our apps?” - by Sean McQuillan
Will the lifecycle of Compose continue be like fragments(hell)or it will be simplified? We had several issues with fragments on our team but I have never heard any lifecycle issue from our iOS team with ViewControllers for years
From someone who hasn't started using Compose, but plans on doing so until the end of the year: What are the worst use cases for the transition? As someone who relies on custom widgets, does Compose allow for the same level of customization (measure/layout, draw, touch, animation, accessibility, states)?
How binary compatibility would be handled? If new kotlin version comes out and kotlin compiler changes extension plugin API or if Compose starts to generate different bytecode, would Compose-based libraries my app uses work OK if each of them depends on different compiler version?
How will compose mix with Dagger/Hilt? Since we can get a view model inside a compose, how does injection goes into the constructor? Would saved instance state become obsolete? Would saved state handle become obsolete too?
With compose I see a bright future without fragments (I know they are being fixed, but still), without activity recreation on config change (so no Android viewmodels either) and much more. I think this will allow having code that is simpler and more platform agnostic and that ditches most lifecycle gotchas. This also plays well with kotlin and compose multi platform... My question is, will you support this approach straight away, or will you support the fragment+viewmodel way only, and the other approach will be on the hands of the community?
Thank you to all the contributors!