Android
Here's how to use sign-to-text translation on Pixel 11.
Developed in partnership with the Deaf community, sign-to-text translates ASL into text in real time.
ProAndroidDev - Medium
From Double-Click Prevention to In-Flight Deduplication
Last year, I came across a problem in an Android application I was working on. It initially looked like a simple multiple-click issue. A user would click a button, the button would trigger a function in a ViewModel, and that function would start some asynchronous
ProAndroidDev - Medium
Composition Over Inheritance in Android ViewModels
Introduction In almost every codebase, there’s a point where two components need to share some functionality or behavior, and someone has to decide how. In object-oriented systems, there are two main techniques for code reuse: class inheritance and object composition. Inheritance is the one most
ProAndroidDev - Medium
[REDACTED] — How to keep your mobile app’s secrets, a secret!
[REDACTED] — How to keep your mobile app’s secrets, a secret!Introduction Footnotes:It was found that Google, Firebase and Facebook were primarily the integrations written by developers that leaked secrets. This fact is even worse when further studies also estimate roughly 5% of Android apps that
Android Studio Release Updates
Android Studio Rabbit 1 Canary 2 now available
Android Studio Rabbit 1 Canary 2 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
Android Developers Blog
Preparing your app for broader memory limits
Posted by Blair Harmon, Director of Product Management, Android Platform A great user experience is central to Android's mission, and delivering on that promise requires keeping devices fast, responsive, and reliable. This is why memory optimization is more critical than ever. Across the ecosystem, new
Android
Tap into the power of Gemini in Chrome on Android.
Gemini in Chrome is now available to all Android users in the U.S.
Android Developers Blog
Tinder cuts app cold starts by 47% with new R8 Configuration Analyzer
Posted by Ajesh R Pai, Developer Relations Engineer, Ulises Uriel Verduzco Diaz, Software Engineer, Tinder, and Tracy Agyemang, Product Marketing Manager Tinder is on a mission to power and inspire real connections by making meeting easy and fun for every new generation of singles. However,
Android Developers Blog
Jetpack XR SDK core libraries reach beta: The next milestone for Android XR
Posted by Amy Zeppenfeld, Developer Relations Engineer, Greg Underwood, Software Engineering Manager, Yasmine Evjen, Senior Product Manager, Android XR Since introducing the Android XR SDK, developers have transformed their ideas into innovative, immersive experiences for XR headsets and wired XR glasses. As the ecosystem expands,
Android Studio Release Updates
Android Studio Rabbit 1 Canary 1 now available
Android Studio Rabbit 1 Canary 1 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
Android Studio Release Updates
Android Studio Quail 4 RC 1 now available
Android Studio Quail 4 RC 1 is now available in the Beta channel. If you already have an Android Studio build on the Beta channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
ProAndroidDev - Medium
Kotlin Coroutines Anti-Patterns in Production: 5 Subtle Traps That Leak Memory and Break…
Kotlin Coroutines Anti-Patterns in Production: 5 Subtle Traps That Leak Memory and Break Concurrency await() is even reached.// ❌ Dangerous: One failure cancels the parent scope immediately suspend fun fetchDashboardData(): DashboardData = coroutineScope { // If fetchUser() fails, it immediately cancels the parent coroutineScope //
ProAndroidDev - Medium
Rethinking Networking in Android (Turning Android Repositories into Composable Effects)
The Repository That Forgot Its Purpose Imagine you are building a feature that needs to fetch a user, create a post on their behalf, upload an attachment, and finally notify them that everything succeeded. In most Android applications, this workflow quickly becomes a chain of
ProAndroidDev - Medium
Your Coroutine Tests Are Flaky Because You Have Two Clocks Running
SummaryFlaky “works on my machine” coroutine tests are often caused by a real dispatcher racing with a test one. Inject your dispatchers so tests can replace them.Use UnconfinedTestDispatcher when you don’t need explicit control over execution order. Use StandardTestDispatcher when you do.Injecting dispatchers and calling
ProAndroidDev - Medium
Navigation 3: Rethinking Adaptive Navigation with SceneStrategy
When we think about adaptive layouts, it is easy to focus only on the size of the screen. Is the user on a phone? A tablet? A foldable? A desktop? Is the window compact, medium, or expanded? These are useful questions, but adaptive UI is
ProAndroidDev - Medium
UiState is Too Big and Hard to Read — Now What?
Here are a few ideas I’ve put together.1. Model Mutually Exclusive States with a sealed interfaceNaive:data class UiState( val isLoading: Boolean, val error: String?, val items: List
ProAndroidDev - Medium
AI-Driven UI Testing with Android Studio Journeys
Stop Writing Brittle Espresso and UI Automator Tests For years, end-to-end (E2E) UI testing on Android has been notoriously brittle. A single updated resource ID, a re-ordered layout hierarchy, or a minor animation delay could break an entire suite of Espresso or UI Automator tests.
Android Developers Blog
Enhance your app for the new Pixel lineup: Unveiled at Made by Google
Posted by Fahd Imtiaz, Senior Product Manager, Loryn Hairston, Product Marketing Manager, and Tracy Agyemang, Product Marketing Manager, Android Developer Made by Google expands what's possible across the Android ecosystem. With the introduction of the Pixel 11 Pro Fold, Pixel Watch 5, and the entire
Android Developers Blog
Bring one-handed gestures to your Wear OS app
Posted by Chiara Chiappini, Developer Relation Engineer, Android Developer Relations One-handed gestures offer a convenient and touch-free way for users to interact with their watches, enabling them to perform key actions using only the hand on which the device is worn. First introduced on Pixel
ProAndroidDev - Medium
Taming Noto Nastaliq: Fixing Urdu Font Rendering Issues in Android
I was recently assigned a ticket to migrate our app’s Urdu font from Jameel Noori to Noto Nastaliq. On paper, this sounded like a simple font swap. In practice, it turned into a deep dive into how Android measures and renders complex-script text. Noto Nastaliq
Android
Sharing between Pixel devices is now just a tap away.
Sharing between Android devices is even easier, starting with Pixel. Use Quick Share and tap to send contact info and more.
Android Developers Blog
What's new in the Jetpack Compose August '26 release
Posted by Nick Butcher, Product Manager, Jetpack Compose Today, the Jetpack Compose August ‘26 release is stable! This release brings version 1.12 across core Compose modules (see the full BOM mapping), introducing rich visual APIs like Mesh Gradients and Wide Color Gamut (WCG) support, structural
Android Studio Release Updates
Android Studio Quail 3 Patch 1 now available
Android Studio Quail 3 Patch 1 is now available in the Stable channel. If you already have an Android Studio build on the Stable channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
Android Developers Blog
Media3 1.11 - What's new?
Posted by Toni Heidenreich, Software Engineer, Android Media3 1.11 is out. Powering the vast majority of top Android media apps, this release brings new features, bug fixes, and improvements across playback, editing, and UI components. We're expanding our Jetpack Compose UI modules with customizable Player
Android Studio Release Updates
Android Studio Quail 4 Canary 4 now available
Android Studio Quail 4 Canary 4 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
Android Developers Blog
Inside Android Skills - Built for deprecation
Posted by Jose Alcérreca, Developer Relations Engineer, Android Developer Relations We released the official Android Skills in April, and the response surpassed all our expectations. In this blog post, I'll address some of the feedback we received, explaining the philosophy and methodology behind the project.
Android Studio Release Updates
Android Studio Quail 3 now available
Android Studio Quail 3 is now available in the Stable channel. If you already have an Android Studio build on the Stable channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on macOS). Otherwise,
Android Studio Release Updates
Android Studio Quail 4 Canary 3 now available
Android Studio Quail 4 Canary 3 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on
Android Developers Blog
Delivering safer, age-appropriate experiences on Google Play
Posted by Paul Feng, VP of Product Management, Google Play Providing a safe online experience and protecting users from harm is a top priority at Google Play. We take this responsibility seriously and have been investing continuously to offer baseline protections on our platform while