Android Jetpack
Develop UI with Compose
Why use Android Jetpack?
Follow best practices
Eliminate boilerplate code
Reduce fragmentation
Jetpack libraries Explore all libraries
* Popular and often-used libraries are listed first
activity * | Access composable APIs built on top of Activity. |
appcompat * | Allows access to new APIs on older API versions of the platform (many using Material Design). |
appsearch * | Build custom in-app search capabilities for your users. |
camera * | Build mobile camera apps. |
compose * | Define your UI programmatically with composable functions that describe its shape and data dependencies. |
databinding * | Bind UI components in your layouts to data sources in your app using a declarative format. |
fragment * | Segment your app into multiple, independent screens that are hosted within an Activity. |
hilt * | Extend the functionality of Dagger Hilt to enable dependency injection of certain classes from the androidx libraries. |
lifecycle * | Build lifecycle-aware components that can adjust behavior based on the current lifecycle state of an activity or fragment. |
Material Design Components * | Modular and customizable Material Design UI components for Android. |
navigation * | Build and structure your in-app UI, handle deep links, and navigate between screens. |
paging * | Load data in pages, and present it in a RecyclerView. |
room * | Create, store, and manage persistent data backed by a SQLite database. |
test * | Testing in Android. |
work * | Schedule and execute deferrable, constraint-based background tasks. |
ads | Get an advertising ID with or without Play Services. |
annotation | Expose metadata that helps tools and other developers understand your app's code. |
arch.core | Helper for other arch dependencies, including JUnit test rules that can be used with LiveData. |
asynclayoutinflater | Inflate layouts asynchronously to avoid jank in the UI. |
autofill | Improve autofill accuracy via extending hints. |
benchmark | Accurately measure your code's performance within Android Studio. |
biometric | Authenticate with biometrics or device credentials, and perform cryptographic operations. |
bluetooth | Use the Android platform's Bluetooth features with backward-compatible APIs. |
browser | Display webpages in the user's default browser. |
camera.media3 | TODO |
camera.viewfinder | Standalone Composable and View based Viewfinder for Camera" |
car-app | Build templated apps for Android Auto and Android Automotive OS. |
cardview | Implement the Material Design card pattern with round corners and drop shadows. |
collection | Reduce the memory impact of existing and new collections that are small. |
compose.animation | Build animations in their Jetpack Compose applications to enrich the user experience. |
compose.compiler | Transform @Composable functions and enable optimizations with a Kotlin compiler plugin. |
compose.foundation | Write Jetpack Compose applications with ready to use building blocks and extend foundation to build your own design system pieces. |
compose.material | Build Jetpack Compose UIs with ready to use Material Design Components. This is the higher level entry point of Compose, designed to provide components that match those described at www.material.io. |
compose.material3 | Build Jetpack Compose UIs with Material Design 3 Components, the next evolution of Material Design. Material 3 includes updated theming and components and Material You personalization features like dynamic color, and is designed to be cohesive with the new Android 12 visual style and system UI. |
compose.material3.adaptive | Use the Material 3 adaptive library to create adaptive UIs that will adapt themselves automatically according to the current window configurations like window size classes or device postures. The library provides both default scaffold implementations and necessary building block composables to create your own custom experiences. |
compose.runtime | Fundamental building blocks of Compose's programming model and state management, and core runtime for the Compose Compiler Plugin to target. |
compose.ui | Fundamental components of compose UI needed to interact with the device, including layout, drawing, and input. |
concurrent | Move tasks off the main thread with coroutines and take advantage of ListenableFuture. |
constraintlayout | Position and size widgets in a flexible way with relative positioning. |
contentpager | Load and page across ContentProvider data in a background thread. |
coordinatorlayout | Position top-level application widgets, such as AppBarLayout and FloatingActionButton. |
core | Target the latest platform features and APIs while also supporting older devices. |
core.uwb | Implement UWB (ultra-wideband) on supported devices. |
credentials | This library provides unified access to a user's credentials. This can include passwords, passkeys and federated credentials. This library should be used to provide seamless and secure sign-in experiences. |
credentials.registry | To solve for these, we are adding a new registry mechanism that allows an app to provide digital credentials in a privacy-preserving way. At a high level, the provider app will be pre-registering all their candidate digital credentials with the Credential Manager; When Credential Manager receives an app request for a specific digital credential, it will run the credential matching and user selector UI in a sandbox. |
cursoradapter | Expose Cursor data to a ListView widget. |
customview | Implement custom views. |
datastore | Store data asynchronously, consistently, and transactionally, overcoming some of the drawbacks of SharedPreferences |
documentfile | View a file document. |
draganddrop | Accept drag-and-drop data from another app or within an app, and show a consistent drop target affordance. |
drawerlayout | Implement a Material Design drawer widget. |
dynamicanimation | Create smooth animations with a physics-based animation API. |
emoji | Display emoji in current and older devices. |
emoji2 | Display emoji in current and older devices. |
enterprise | Create enterprise-ready applications. |
exifinterface | Read and write image file EXIF tags. |
games | Use the Android Game SDK natively in your app to perform complex games tasks, like Frame Pacing. |
glance | Build layouts for remote surfaces using a Jetpack Compose-style API. |
graphics | Leverage graphics facilities across multiple Android platform releases |
gridlayout | Implement a grid layout. |
health | Create performant health applications in a platform agnostic way. |
health.connect | Allows developers to read or write user's health and fitness records. |
heifwriter | Encode an image or image collection in HEIF format using the available codecs on the Android device. |
ink | Inspire best-in-class pen apps. Lower the developer barrier to entry for high performance, beautiful inking experiences. |
input | Reduce the latency of input interactions by predicting future MotionEvents |
interpolator | Use animation interpolators on older platforms. |
javascriptengine | Enable your Android app to evaluate JavaScript. |
jetifier | A standalone tool that migrates a library's dependencies on the deprecated support library to equivalent AndroidX dependencies. |
leanback | Use Compose for TV instead of this artifact. |
legacy | This artifact and its classes are deprecated. Starting with Android 8, background check restrictions make this class no longer useful. |
lint | Lint checks to verify usage of Gradle APIs |
loader | Load data for your UI that survives configuration changes. |
localbroadcastmanager | This artifact and its classes are deprecated. Use LiveData or reactive streams instead. |
media | Share media contents and controls with other apps. Superseded by media3. |
media2 | Share media contents and controls with other apps. |
media3 * | Support libraries for media use cases. |
mediarouter | Enable media display and playback on remote receiver devices using a common user interface. |
multidex | Deploy applications with multiple dex files on pre-Android 5 devices. |
metrics | Track and report various runtime metrics for your application |
palette | Extract representative color palettes from images. |
A library to add pdf viewing capabilities inside apps. | |
percentlayout | This artifact and its classes are deprecated. Use ConstraintLayout and associated layouts instead. |
performance | Provides source annotations for performance optimizations. |
preference | Build interactive settings screens without needing to interact with device storage or manage the UI. |
Print photos, docs, and other graphics and images from your app. | |
privacysandbox.activity | TODO |
privacysandbox.ads | This library enables integration with Privacy Preserving APIs, which are part of Privacy Sandbox on Android. |
privacysandbox.plugins | Android Privacy Sandbox Sdk Library Gradle Plugin |
privacysandbox.sdkruntime | This library provides components for SdkRuntime aware consumers |
privacysandbox.tools | A library to utilize the Privacy Sandbox functionality in Android |
privacysandbox.ui | TODO |
profileinstaller | Enables libraries to prepopulate ahead of time compilation traces to be read by ART. |
recommendation | Promote content to the Android TV Launcher home screen. |
recyclerview | Display large sets of data in your UI while minimizing memory usage. |
remotecallback | Create a wrapper that makes it easier for developers to provide a PendingIntent. |
resourceinspection | Surface the attributes of custom views in Android Studio’s Live Layout Inspector. |
savedstate | Write pluggable components that save the UI state when a process dies, and restore it when the process restarts. |
security | Safely manage keys and encrypt files and sharedpreferences. |
sharetarget | Provide backwards compatibility for using shortcuts as direct share targets. |
slice | Display templated UI elements outside your app. |
slidingpanelayout | Implement a sliding pane UI pattern. |
startup | Implement a straightforward, performant way to initialize components at app startup. |
sqlite | Work with local SQLite databases. If possible, use Room instead. |
swiperefreshlayout | Implement the swipe-to-refresh UI pattern. |
test.uiautomator | Framework for cross app functional UI testing |
textclassifier | Identifies conversations, links, selections, and other similar constructs in text. |
tracing | Write trace events to the system trace buffer. |
transition | Animate motion in the UI with starting and ending layouts. |
tv | Provides developers with Compose and Material design functionalities in order to write applications for TV |
tvprovider | Provide Android TV channels. |
xr.arcore | Bring digital content into the real world with perception capabilities. |
xr.compose | Declaratively build spatial UI layouts that take advantage of Android XR’s spatial capabilities. |
xr.compose.material3 | Build with Material components and layouts that adapt for XR |
xr.runtime | Start your custom AR or 3D session with our native runtime. |
xr.scenecore | Build and manipulate the Android XR scene graph with 3D content. |
vectordrawable | Render vector graphics. |
versionedparcelable | Provides a stable and compact binary serialization format that can be passed across processes or persisted safely. |
viewpager | Display Views or Fragments in a swipeable format. If possible, use viewpager2 instead. |
viewpager2 | Display Views or Fragments in a swipeable format. |
wear | Create applications for Wear OS by Google smartwatches. |
wear.compose | Write Jetpack Compose applications for Wearable devices by providing functionality to support wearable specific devices, sizes, shapes and navigation gestures. |
wear.protolayout | This library allows defining a set of UI layouts and non-UI expressions to be rendered/evaluated on remote surfaces. |
wear.tiles | Create applications for Wear OS by Google smartwatches. |
wear.watchface | Create applications for Wear OS by Google smartwatches. |
webkit | Work with modern WebView APIs on Android 5 and above. |
window | Helps support different device form factors such as foldable devices. |
window.extensions.core | The Core APIs for Window Manager Library Extensions |
Learn to use Jetpack
Fundamentals training
Hands-on tutorial
Sunflower sample app
News and videos
Compose runtime and performance - Android Developers Backstage
Updated March 4, 2025
In this episode, Tor and Romain chat with Leland and Chuck from the Compose team about performance -- recent optimizations, upcoming optimizations, and challenges. Listen to the podcast → https://goo.gle/3QKVy8k Catch videos on YouTube →
SoundCloud uses Jetpack Glance to build Liked Tracks widget in just 2 weeks
Updated March 4, 2025
To make it even easier for users to listen on Android, developers at SoundCloud — an artist-first music platform — turned to Jetpack Glance to create a Liked Tracks widget for their highly-rated app, which boasts 4.6 stars and over 100 million
Meet the Android Studio Team: A Conversation with Android Developer UX Manager, Dan Dole
Updated February 27, 2025
Welcome to "Meet the Android Studio Team"! In this blog series, we introduce you to the passionate people who create the Android development tools you use every day. Get to know the engineers, designers, product managers, and more who work hard to
Meet the Android Studio Team: A Conversation with Engineering Director, Tor Norbye
Updated February 20, 2025
Welcome to "Meet the Android Studio Team," our new ongoing blog series. Each week, we'll introduce you to the talented people behind Android Studio. Get to know the engineers, designers, product managers, and more who create the best possible
Compose for TV
Updated February 19, 2025
Compose for TV is the modern approach for building Android TV user interfaces. Compose for TV unlocks all the benefits of Android's Jetpack Compose for your TV apps, making building beautiful and functional UIs for your app much easier. Jetcaster
Meet the Android Studio Team: A Conversation with Staff Developer Programs Engineer, Trevor Johns
Updated February 12, 2025
Android Studio isn't just code and algorithms – it's built by real people with fascinating stories. Our "Meet the Android Studio Team" series gives you a glimpse into the lives and passions of the talented individuals who craft the tools you use
Meet the Android Studio Team: A Conversation with Director of Product Management, Jamal Eason
Updated February 6, 2025
Dive into the world of Android Studio and meet the masterminds behind your favorite development tools! In our recurring blog series, "Meet the Android Studio Team," we'll introduce you to the brilliant engineers, designers, product managers, and more
Testing
Updated January 30, 2025
Keep your UI delightful by testing it! Previews allow quickly verifying components during development, which can be automated with the preview screenshot testing Gradle plugin to create visual regression tests. Behavior tests can use
Meet the Android Studio Team: A Conversation with Product Manager, Paris Hsu
Updated January 30, 2025
Welcome to "Meet the Android Studio Team"; a short blog series where we pull back the curtain and introduce you to the passionate people who build your favorite Android development tools. Get to know the talented minds – engineers, designers, product
Apps adopt Transformer to support more reliable and performant media editing use cases
Updated January 10, 2025
The Jetpack Media3 library enables Android apps to build high quality media apps. As part of the Media3 library, the Transformer module aims to provide easy to use, reliable, and performant APIs for transcoding and editing media. For example, apps
Clipping and masking
Updated November 27, 2024
Clipping or masking parts of your content is a way to create delightful UI effects, and is a common need when working with custom UI components. Clipping is the process of removing parts of your content based on a set path or shape. Whereas masking
Graphics layers
Updated November 15, 2024
In this episode, learn all about Graphics Layers in Compose and how you can use the APIs to composite graphics layers together to create interesting visual effects. This episode covers how to use BlendModes to blend between two layers, and how to set
AnchoredDraggable #shorts
Updated November 7, 2024
In this episode, we cover Compose AnchoredDraggable - an interactive UI element that allows users to drag and swipe it, while maintaining an anchor to its original position. Learn more → https://goo.gle/compose-anchored-draggable Watch more Compose
AnchoredDraggable
Updated October 30, 2024
In this episode, we cover Compose AnchoredDraggable, which is a Jetpack Compose API that lets you build components that can be dragged between anchor points and settles an anchor point at the end of the gesture. AnchoredDraggable is often used to
CameraX update makes dual concurrent camera even easier
Updated October 16, 2024
CameraX, Android's Jetpack camera library, is getting an exciting update to its Dual Concurrent Camera feature, making it even easier to integrate this feature into your app. This feature allows you to stream from 2 different cameras at the same
Here's what happening in our latest Spotlight Week: Adaptive Android Apps
Updated October 14, 2024
With Android powering a diverse range of devices, users expect a seamless and optimized experience across their foldables, tablets, ChromeOS, and even cars. To meet these expectations, developers need to build their apps with multiple screen sizes
Introducing Ink API, a new Jetpack library for stylus apps
Updated October 8, 2024
With stylus input, Android apps on phones, foldables, tablets, and Chromebooks become even more powerful tools for productivity and creativity. While there's already a lot to think about when designing for large screens – see our full guidance and
Room renovations
Updated September 24, 2024
In this video, Elif from the Android Toolkit & Jetpack Team will be talking about Room! This past year was a BIG one for Room, and we are excited to share all the renovations we completed as we entered the Kotlin Multiplatform world.
Flow layouts
Updated September 11, 2024
FlowRow and FlowColumn are similar to Row and Column layouts, however the items will flow into the next row or column when there is no more space in the area. In this video, Flow layouts are covered along with how to use them and tricks for using
Navigation Compose meet Type Safety #shorts
Updated September 10, 2024
In this video, Clara Fok introduces the new Type Safety feature for Navigation Compose. Watch more Android Conference Talks → https://goo.gle/ConferenceTalks #Featured #AndroidDev #JetpackCompose Speakers: Clara Fok Products Mentioned: Jetpack
Navigation Compose meet Type Safety
Updated September 10, 2024
In this video, Clara Fok will talk about the new Type Safety feature for Navigation Compose and the new type-safe APIs. Chapters: 0:00 - Introduction 1:43 - Type Safety 4:28 - Building NavGraphs 5:27 - Navigate with arguments 6:32 - Retrieve
Jetpack Compose APIs for building adaptive layouts using Material guidance now stable
Updated September 9, 2024
The 1.0 stable version of the Compose adaptive APIs with Material guidance is out, ready to be used in production. The library helps you build adaptive layouts that provide an optimized user experience on any window size. The team at SAP Mobile Start
SAP integrated NavigationSuiteScaffold in just 5 minutes to create adaptive navigation UI
Updated September 9, 2024
SAP Mobile Start is an app that centralizes access to SAP's mobile business suite, a hub for users to keep track of their companies’ processes and data so they can efficiently manage their daily to-dos while on the move. Recently, SAP Mobile Start
Shaders
Updated August 29, 2024
In addition to Brushes, in Compose there is another delightful mechanism for painting your pixels and rendering graphics on screen, called Shaders. In this episode, we dive into the details of using shaders in Jetpack Compose, combined with render
Learn all about creating Shared elements in Jetpack Compose
Updated July 23, 2024
🤔 Want to learn all about shared elements in Jetpack Compose? Take a look at our latest video on the topic - tap the link to find out more 🧞 Watch more Android Conference Talks → https://goo.gle/ConferenceTalks #Featured #AndroidDev #JetpackCompose
Advanced layout animations in Compose (Shared elements)
Updated July 23, 2024
Compose is the recommended modern UI toolkit for Android that makes it easy to create beautiful and delightful user interfaces. A new powerful feature of Compose is the Lookahead layout system. Using this new layouting mechanism, we can create
Top 3 Updates with Compose across Form Factors at Google I/O '24
Updated June 11, 2024
Google I/O 2024 was filled with lots of updates and announcements around helping you be more productive as a developer. Here are the top 3 announcements around Jetpack Compose and Form Factors from Google I/O 2024: The June 2024 release of Jetpack
A Developer’s Roadmap to Predictive Back (Views)
Updated May 24, 2024
Before you read on, this topic is scoped to Views. Predictive Back with Compose is easier to implement and not included in this blog post. To learn how to implement Compose with Predictive Back, see the Add predictive back animations codelab and the
Everything you need to know about Google TV and Android TV OS
Updated May 15, 2024
Over the past year, we’ve seen significant growth of Android TV OS, reaching 220 million monthly active devices with a 47% year-over-year increase. This incredible engagement would not be possible without our dedicated developer community. A massive
Google I/O 2024: What’s new in Android Development Tools
Updated May 14, 2024
At Google I/O 2024, we announced an exciting new set of features and tools aimed at making Android development faster and easier. We also shared updates to Android Studio that will help you leverage AI and make it easier for you to build high quality