android_jetpack_compose
Table of Contents
Android Jetpack Compose
Common information about Jetpack Compose
- Android Jetpack Compose Tutorial → Jetpack Compose Tutorial (my summary)
- Get started with Jetpack Compose → Get started with Jetpack Compose (my summary)
- a “bigger” documentation (something like a book)
- Android Basics with Compose online course by Google
-
- This is a community-driven collection of Jetpack Compose documentation/examples/tutorials and demos.
- Some links:
- Jetpack Compose Tutorial for Android: Getting Started by Alex Sullivan
- Jetpack Compose For Beginners — Crash Course 2024 a 15 minutes (but very informative) video by Daniel Atitienei
- Articles / Videos by Leland Richardson
- Understanding Jetpack Compose — part 1 of 2 by Leland Richardson
- Under the hood of Jetpack Compose — part 2 of 2 by Leland Richardson
Jetpack Compose UI Elements
- Adaptive Layouts
- Text
- TextField
- FlowRow / FlowColumn
- LazyColumn
- Jetpack Compose and collectAsLazyPagingItems by Dobri Kostadinov
- Efficiently Managing Large Data Sets in Jetpack Compose with LazyColumn
- Photo Picker
- Exploring the Android Photo Picker by Joe Birch
- Mastering the New Embedded Photo Picker in AndroidX by Oğuzhan Aslan
- Splash Screen
-
- Learn how to create a simple splash screen using the SplashScreen API.
-
- Icons
-
- Looking for app icons? Alex Styl has converted the Internet's most popular icon libraries to Jetpack Compose Image Vectors so you will never run out of icons to use in your Compose apps.
-
- Views in Composes / Composes in Views
- How To Use Android Views In Compose & Composables In Android Views a video by Jov Mit
androidx.compose.ui.platform.ComposeView→ to make use of a compose in XML worldAndroidViewcan represent a “normal” View in a Composable world
- Maps
- Google Maps in Jetpack Compose: Getting Started by Joe Birch
- Recompositions
- Reducing Unnecessary Recompositions in Jetpack Compose by Victor Brandalise
-
- Sahand Zehtabchi demonstrates making recomposition behavior measurable and testable with a trackRecompositions modifier and automated tests for Jetpack Compose
-
- Charfaoui Younes shows an amazing library that will allow you to check recompositions and various aspects of your Jetpack Compose UIs.
- Animations
- Jetpack Compose Animations - A growing catalog of self contained Jetpack Compose animation examples by skydoves
- Container transform animation with Jetpack Compose - nice animations (e.g. an animation that transforms a FAB into a full-screen page)
- Misc
- Compose – List / Detail: Basics by Mark Allison
-
- immersive (e.g. “edge-to-edge”) status and nav bar
-
- Philipp Lackner shows how to use Google's New Screenshot Testing Framework for Compose!
- Coil: My Favorite Image Loading Library for Jetpack Compose by Stefano Natali
- Pull to Refesh
- Pull To Refresh using material3 - Jetpack Compose by Daniel Atitienei (video) (the old way?)
- Migrating to the Compose PullToRefreshBox by Joe Birch
Navigation
- Jetpack Compose Navigation - Full Guide (aka “Jetpack Compose 🚀 Beginner’s Series”) by Narayan Panthi
-
- In Episode I of the Jetpack Compose Series, Narayan Panthi covered creating a login page and some UI elements.
- Navigation — Episode II (aka “Navigation in Jetpack Compose”)
- Now, dive into Navigation.
-
- An Updated Primer on Android Navigation (not really Jetpack Compose, but “conceptually” informative)
- Navigation hierarchy
- Parent / child
- Siblings
- Collections
- Links
- Navigation components
- Navigation bar
- Navigation rail
- Navigation Drawer
- Tabs
- Up, Back, and Close
-
- Daniel Atitienei teaches how to use type-safe navigation.
-
- Philipp Lackner show you why you might consider not using popBackStack() to Navigate Back.
- In short:
- don't use
popBackStack()because it can cause navigation to an “empty screen” if the user accidentally clicks twice. - use
navigateUp()instead
Navigation 3
-
- Learn Jetpack Navigation 3, Google's new library for building navigation in Android apps.
-
- Alex Vanyo and Don Turner from the Android team to explore Navigation 3 — what’s new, what’s changing, and how to keep your app’s navigation graph from becoming a spaghetti diagram worthy of a Michelin star.
- Philipp Lackner implements a 2-screen list/detail navigation setup with the new Navigation 3 library.
- Philipp Lackner teaches how you can pop a screen from the back stack while delivering a result to the previous screen.]]
-
- Philipp Lackner implements a bottom navigation bar in Jetpack Compose which supports multiple back stacks.
-
- Learn how you can achieve a nested navigation for features and scope a ViewModel to multiple screens of your app.
- Navigation3 Setup, Multi Pane Support, Subgraphs & DeepLinks Compose a video by Jov Mit
Previews
-
- Jansel Valentin explores how Jetpack Compose Previews work, along with a complete sample project and a few practical use cases where this knowledge proves useful.
-
- Jaewoong Eum explores best practices for using Compose Previews and how to maximize their utilization.
Theming
- Mastering Color Theming in Jetpack Compose by Stefano Natali
- Theming Your App for the Holidays by Katie Barnett
- Dynamically update your Android app theme any time you want to add some holiday cheer!
Jetpack Glance (Widgets)
- Gratitude saw 25% higher retention for widget users (Android Developers Blog)
Camera, OCR, etc
- Unlocking the Power of CameraX in Jetpack Compose (by Jolanda Verhoef)
Performance Best Practices
- How You Get Your Compose UI From Hundreds of Recompositions to Almost Zero a video by Philipp Lackner
- From RecyclerView to LazyColumn: A Performance Optimization Playbook for Jetpack Compose by Sergey Drymchenko
- an article compares using “old” RecyclerView and “new” LazyColumn, but it is also interesting for some tips
- like:
- using immutables models
- etc
- Reducing Unnecessary Recompositions in Jetpack Compose by Victor Brandalise (12.01.2026)
- useful tips
Misc
-
- Stefano Natali explores the new and improved way to implement the PullToRefresh in your Compose UI.
- Understanding Jetpack Compose by Mohammed Akram Hussain
- Info about internals of Jetpack Compose
-
- Jakub Ledwoń offers actionable tips for improving Compose performance through stability diagnostics, annotations, immutable collections, compiler config, and strong skipping mode.
- Mastering Conditional Layouts in Jetpack Compose: The Flexible Way by Akshat Divekar
- State
- The Hidden Dangers of Jetpack Compose State (And How to Fix Them With Real Examples) by Subhankar Bag
- 1. The Innocent Beginning: “Just Use remember”
- 2. Real-World Scenario 1: Forms That Don’t Lose Data
- 3. Real-World Scenario 2: Lists Without Flicker or Reset
- 4. Real-World Scenario 3: Navigation With Shared State
- 5. Bonus: Preventing Unnecessary Recompositions
-
remember- persists values across recompositions
- stores values as long as the process remain alive
rememberSaveable- persists values across recompositions
- serializes and stores the state in a Bundle, allowing it to survive configuration changes and process death
-
- Codelab by Google
-
- Handle in the ViewModel and displaye only in the UI
- Handle asynchronously via ProduceState
- Handle asynchronously via LaunchedEffect
Examples
-
- https://github.com/android/compose-samples/tree/main - corresponding Github repo
-
- examples of book “Android UI Development with Jetpack Compose” by Thomas Künneth
-
- Pokedex Compose demonstrates modern Android development with Jetpack Compose, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture.
Libraries
- https://composelibraries.com/ - libraries list
- Jetmagic by Johann Rosenberg
- seems to be very good documented
- Charty by Himanshu Singh
- Chart Library built using Jetpack Compose and is highly customizable.
- See also:
- Performance / Optimization etc
- Conscious Compose optimization 2: Tackling composition by Andrey Bogomolov
Tools, Plugins etc
- Compose Stability Analyzer - plugin for Android Studio
Videos
-
- In this video you'll learn how you can implement a swipe to delete gesture for LazyColumns in Jetpack Compose.
- Modern Android Development - videos by Madona S. Wambua
My projects to start with Jetpack Compose
- migrate T4T to Jetpack Compose
- at the moment decided to do it at first
- because much other things must be also done for T4T:
- target API 33/34
- upgrade AdSense Libs
- upgrade billing libs
- …
- create new ChalkUp Client app
- migrate Avril
- something other?
android_jetpack_compose.txt · Last modified: by kalaschnikow
