Latest
Updated 03:18 PM
Build your way: Use any AI agent of your choice in Android Studio
Posted by Matthew Warner, Product Manager, Android Developer Experience AI-powered developer tools have become an essential multiplier for engineering productivity, with teams adopting specialized AI coding agents, cu…
Land your apps on Googlebook with adaptive development
Posted by Fahd Imtiaz, Senior Product Manager, and Loryn Hairston, Product Marketing Manager, Android Developer Googlebook introduces a new category of laptops built on a shared Android foundation. High-performance ha…
JetBrains Air: Building a System of Products for Agentic Software Development
AI can produce code. Organizations still have to produce software. Agentic development is changing how software gets made, but it hasn’t changed what it costs to be wrong. Six months ago, we began publicly experimenting …
Are you still typing code?
Bring your Android game to the car screen today
Posted by Jan Kleinert, Developer Relations Engineer, Android for Cars Today, the games category for Android Auto and cars powered by Android Automotive OS with Google built-in is officially graduating from beta to ge…
Introducing the AndroidX Security State Libraries: A Unified View of Device Security
Posted by Maunik Shah, Staff Software Engineer, Alec Garcia, Software Engineer, and Joseph Yong, Technical Program Manager At Android, we are constantly working to provide developers and enterprise partners with the …
How Android Bench 2.0 pushes AI evaluations
Android Bench 2.0: Pushing the frontier with challenging long-horizon tasks
Posted by Matthew McCullough, VP, Product Management, Android Developer When we first launched Android Bench, we built a rigorous foundation for evaluating how large language models (LLMs) assist developers with re…
Automating test generation with Gemini in Android Studio
How to build the case for enterprise investment in XR
My life before & after automated testing
It’s hard for me to overstate how much my coding has improved since embracing automated testing. And yet, I used to think of it as a waste of time! This post is for my former self, demonstrating why I embrace the practic…
Toolbox App 3.8: Improves IDE Update Handling on macOS and Fixes Keyboard Navigation
Version 3.8 of the Toolbox App restores keyboard navigation in project and tool lists. On macOS, manual IDE updates stay available even when the system reports the installation directory as protected. IDE updates remain …
Leverage new APIs with Gemini in Android Studio
How to architect your app to support the expanding Android XR ecosystem
Introducing Fast and Reliable Wireless Debugging with Android Debug Bridge (ADB) Wi-Fi 2.0
Posted by Steven Jenkins, Product Manager, Sherif Eid, Senior Software Engineer, and Fabien Sanglard, Staff Software Engineer, Android Studio Wireless debugging on Android is now faster, more reliable, and easie…
Nitpicking in code reviews wastes time
I once wrote about how I've stopped nit-picking in code reviews, which improved the signal-to-noise ratio and helped everyone get along better. I’m back with a third reason to ditch the practice: nit-picking wastes time.…
Toolbox App 3.7: JVM Memory Optimizations and Update Improvements
Toolbox App 3.7 enables JVM memory optimization by default, improves the reliability of updates and session expiration recovery, and ensures compatibility with Windows Smart App Control. Action required: Update Toolbox A…
There's more to software development than coding
Like many software developers, I’ve been considering the future of my profession in the face of AI. AI can write code. Our job is to write code. It seems natural that we’d be replaced by AI, no? But recently I've been co…
Android AI Tools: Vibe coding, sub-agents, and the Android CLI
Learn how the latest Android Studio AI features can streamline your daily development tasks. While the original agent mode chat was helpful, we rebuilt it with a re-architected experience that supports parallel tool call…
The inside story of Jetpack Compose
Discover the origin story of Jetpack Compose and how it changed the way Android developers build applications. We discuss the original challenges of unbundling the UI toolkit from the operating system to deliver faster u…
Why Focus Matters in a Crowded DevOps Landscape
We’re proud to share that JetBrains was recognized in the 2026 Gartner® Magic Quadrant™ for DevOps Platforms for Ability to Execute and Completeness of Vision. JetBrains solutions for DevOps include Qodana for code qual…
JetBrains AI for Teams and Organizations: From Fragmented AI Usage to Coordinated Software Development
We’re about to start rolling out a new set of AI capabilities that provide shared context, reusable agentic workflows, organization-level governance, and cost control for software production. Developers use different AI …
Toolbox App 3.6: Smarter Storage Cleanup, Windows installation diagnostics, and More
Toolbox App 3.6 gives you better control over local storage and makes Windows installation failures easier to diagnose. Clean up removable Toolbox App data from Settings The Toolbox App now shows how much removable data …
Obfuscated Rhythm Games
I’ve been a rhythm game fiend since my introduction to Dance Dance Revolution in the early 2000s. I spent years obsessed with DDR, took a detour into Beatmania, then played Guitar Hero / Rock Band nonstop for years. I ha…
How to use Jest mocks
For better or worse, my life has become infested by Jest mocks. I come from the land of dependency injection (I even gave a talk once!), but whenever I talk about dependency injection to JavaScript developers I get this …
What the fuck are passkeys and why are they everywhere now?
This is a writeup of a talk I gave at Minnebar 20. Originally, I threw in some Matrix references to make the talk more fun & engaging. Those jokes work better in person, so I’ve mostly omitted the Matrix from this writeu…
What's so great about R8?
Join hosts Tor and Romain as they sit down with Søren Gjesse, Chris Craik, and Shai Barack. This week, the team dives into R8, the whole-program optimizer that handles the "last mile" of your code before it runs on a de…
XR: Virtually here
Join hosts Tor, Chet, and Romain as they sit down with Diego Perez (Android Studio) and Patrick Fuentes (Developer Relations) to explore the new frontiers of Android XR. This episode of Android Developers Backstage brea…
How I’m Using Agents for Development – January 2026
I’m currently sitting here with Intellij IDEA IDE open with 3 workspaces (different clones of the Trailblaze project). In each one of them I’m using Firebender with the Claude Sonnet 4.5 model. As I’m writing this I just…
Now In Android #123
Bring your own model - Android Developers Backstage
In this episode Tor and Chet chat with Raluca Saucic and Eugene Yakavets about the new "Bring Your Own Model" feature in Android Studio which allows using other models than Gemini for agent mode, including models from An…
Now in Android #121
From natural language to UI tests: A deep dive into Journeys for Android Studio
Hosts Tor and Chet are joined by Adarsh Fernando, a Product Manager, and Ray Buse, a Software Engineer, to discuss Journeys for Android Studio. Powered by Gemini's vision and reasoning, Journeys aims to simplify end-to-e…
Now in Android #120
Now in Android #119
Now in Android #118 — Google I/O 2025 Part II
A product manager’s guide to adapting Android apps across devices
UseCases: Injectable Functions
This post demystifies use cases: they’re just functions with dependency injection. Single-purpose classes that simplify complex logic by letting DI handle dependencies, making code cleaner and testable.
Modularizing with Intent: Finding the Right Module Naming Convention
Kotlin module naming convention: [group-]domain-layer[-contexts]. Flat, flexible, KMP-friendly—read on!
Running Specific Android UI Tests using TestParameterInjector via a Regex
There is documentation on the Android Developer website sharing tips to run Android UI tests via the command-line which I’ve found super useful. It provides examples on how to run specific tests (instead of running them …
LLM Based Android UI Testing – “Journeys with Gemini”
What Do We Know About “Journeys With Gemini”? “Journeys with Gemini” was first (to my knowledge) discussed publicly at Droidcon London during a segment of #TheAndroidShow by Tor Norbye of the Android Studio team. We saw …
Demystifying Maestro’s UI Testing Implementation
I first heard about Maestro when it was released in 2022, but I haven’t played with it until now. I’m doing some work with Espresso and UiAutomator for Android testing and was curious how Maestro worked under the hood, s…
Parameterized Android Tests with Burst 2.0
Parameterized tests allow you to write a test once, but allow it to be called with multiple parameters. This means it is creating more methods than you’ve written, but without you having to write and maintain each one in…
Coroutines and Dispatchers
Kotlin K2 FIR Quickstart Guide
I wrote this Kotlin K2 FIR guide because I was not able to find any guides or examples to get started with FIR for static analysis. K2 is now finally stable in Kotlin 2.0.0 and future versions, so FIR will be the recomme…
Introducing Trio | Part III
Introducing Trio | Part II
Introducing Trio | Part I
Encapsulate your @Composable functions
A convenient convention for complex composable components.
Making Airbnb’s Android app more accessible
Airbnb’s Page Performance Score on Android
How we enable Airbnb team members to code like a mobile engineer
Android Parcelable: There's a better way
Introducing a new library that uses Kotlinx Serialization to parcellize objects on Android.
Jetpack Compose Multiplatform!?
The Jetpack Compose UI toolkit for Android now supports the Desktop with the possibility of more platforms.
Creating Different Build Variants in Android
Learn Jetpack Compose for Android by Examples
Migrate to Gradle Kotlin DSL
Android Text Styling with Spans
Google Android Developer Interview
Publishing KMP Libraries in Kotlin 1.4.0
An explanation on how to publish Kotlin 1.4.0 Multi-platform Libraries to Bintray