ProAndroidDev - Medium
How to Connect ESP32 to Wi-Fi on Android (The Right Way) | EasyEsp
Stop frustrating your IoT users. Build a seamless ESP32 Wi-Fi provisioning flow using Jetpack Compose, Ktor, and MVI Architecture. The Painless Way to Connect ESP32 Devices to Wi-Fi on Android 📱⚡ How to build seamless IoT provisioning flows using Jetpack Compose, Ktor, and MVI Architecture.
ProAndroidDev - Medium
Android 17 on a 4.9 Kernel: LineageOS 24.0 on the Pixel 3a
This article provides a step by step guide to running LineageOS 24.0, which is Android 17, on a Google Pixel 3a and its original 4.9 Linux kernel. It continues the LineageOS 23.2 port on the same phone. Every patch, script and build is published.So, Which
Android Studio Release Updates
Android Studio Rabbit 3 Canary 3 now available
Android Studio Rabbit 3 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 Studio Release Updates
Android Studio Rabbit 2 Patch 1 now available
Android Studio Rabbit 2 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
Kotlin : A concise multiplatform language developed by JetBrains | The JetBrains Blog
The Kotlin Multiplatform Contest Is Open: Win a Trip to KotlinConf
The Kotlin Multiplatform Contest is back! Students and recent graduates, turn your idea into a cross-platform project with Kotlin Multiplatform (KMP). The authors of the top three projects will each win a trip to KotlinConf 2027 in KrakĂłw, Poland, with conference tickets, travel, and accommodation
Android Developers' Blog
Build for an expanding lineup of Android XR devices with production-ready tools from Android Developer Summit
None
Android Developers' Blog
What’s new in intelligent apps at the Android Developer Summit
None
ProAndroidDev - Medium
Why a 1B On-Device LLM Needs a Harness
. If it is rejected, verified data stays available and the app returns a fallback. The text is not published fragment by fragment before validation completes.Testing the system around the model A harness can replace inference with controlled output in tests. Feed it an invented
Android Developers' Blog
Build for every screen with the latest Jetpack Compose updates from Android Developer Summit
None
Android
Google Messages, Phone by Google, and Google Contacts get new, updated icons.
Google is updating the icons for Messages, Phone, and Contacts with a sleeker, cohesive design. See the new look for your home screen.
ProAndroidDev - Medium
Migrating a Real Android App to Kotlin Multiplatform 2/4 — What Moved for Free, and What Hurt
Migrating a Real Android App to Kotlin Multiplatform 2/4 — What Moved for Free, and What HurtPart 2: What Moved for Free, and What Hurt In Part 1 I described the foundations: a modular Android codebase with Ktor, Koin and SQLDelight already in place, and
ProAndroidDev - Medium
Inside Android Layoutlib: How View and Compose Previews Reach the Canvas
Trace the rendering pipeline from XML inflation and compiled composables to measurement, drawing, and the final preview image and understand where Layoutlib’s responsibilities end. There are several reasons. The runtime environment differs. Android Studio doesn’t run the full OS of the device. Network and file
Android Developers' Blog
Developing for Today: 50+ New Developer Sessions on Building Apps Today
None
ProAndroidDev - Medium
Android Developer Roadmap 2027: What to Learn, What Interviews Ask, and Where AI Fits
If you already work as an Android developer, do not start at stage 1 by default. Use the “done when” checksas a test, and start at the first stage you cannot pass.The nine stages Every stage has the same parts: why it matters, what you
Kotlin : A concise multiplatform language developed by JetBrains | The JetBrains Blog
Kodee’s Kotlin Roundup: Shipaton 2026 Winners, Kotlin 2.5.0-Beta2, and KotlinConf 2027
Hi everyone! It’s been a busy few weeks since my last roundup: the Shipaton 2026 winners are in, and three Kotlin Multiplatform apps took the Ship Kotlin Everywhere Award. In other news, Kotlin 2.5.0 is taking shape with its second Beta, KotlinConf 2027 is officially
ProAndroidDev - Medium
AI Can Write My Kotlin. Who’s Going to Debug It at 2 AM?
Process death, OEM battery managers, R8 in release builds, unexpected recomposition, and main-thread work on low-memory devices rarely show up in a diff. Most don’t show up on a flagship emulator either. Here’s what “almost right” looks like. Both versions compile and pass a simple
ProAndroidDev - Medium
Beyond Default Claude: Running DeepSeek, MiniMax and GLM in Claude Code and Android Studio
Beyond Default Claude: Running DeepSeek, MiniMax and GLM in Claude Code and Android Studio was originally published in ProAndroidDev on Medium, where people are continuing the conversation by highlighting and responding to this story.
ProAndroidDev - Medium
Under the Hood: How Room 3.0 and SQLDelight 2.x Detect Database Changes
Room and SQLDelight both let us observe database queries as Kotlin Flows. When the underlying data changes, the Flow emits an update, allowing the UI to react without manually refreshing the data.Does SQLDelight always execute fewer queries? Not necessarily. Room’s table-based invalidation can cause a
ProAndroidDev - Medium
Migrating a Real Android App to Kotlin Multiplatform 1/4 — Before the Migration
Here’s how the code is split today:https://medium.com/media/6ace88d94220b0e2291c42df6f9204ee/href Worth mentioning, that around 9,500 lines of androidMain code are @Preview functions. The largest platform specific source sets are in the :core:messaging module, which is responsible for notifications. Other than that, there is a platform specific code for
Android Studio Release Updates
Android Studio Rabbit 3 Canary 2 now available
Android Studio Rabbit 3 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 Studio Release Updates
Android Studio Rabbit 2 now available
Android Studio Rabbit 2 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 Developers' Blog
Agentic and Flexible: A next era of Android development
None
Android Developers' Blog
What's new in Android developer tools and performance at Android Dev Summit
None
Android Developers' Blog
Your favorite agents are now integrated in Android Studio
None
Android Studio Release Updates
Android Studio Rabbit 2 RC 2 now available
Android Studio Rabbit 2 RC 2 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
Android Studio Release Updates
Android Studio Rabbit 3 Canary 1 now available
Android Studio Rabbit 3 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 Rabbit 2 RC 1 now available
Android Studio Rabbit 2 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
Android
Get hands-free personalized help on the road with Gemini
Center of image is a photo of a 1st-person point of view of driving a car. On the circumference of the circle are the Gemini logo and various prompts. The bottom of the image has the text "Personal Intelligence hits the road".
Android Developers' Blog
A more reliable way to add and edit contacts on Android
None