XREAL AURA wired glasses launch with stable Jetpack SceneCore, ARCore and XR Runtime, stable Geospatial APIs, the Android XR Engine Hub for Unity, Godot and Unreal, and ML Kit Text to Speech for audio-first eyewear.
5 min readEngineering articles on Android development, AI integration, and growing as a developer.
XREAL AURA wired glasses launch with stable Jetpack SceneCore, ARCore and XR Runtime, stable Geospatial APIs, the Android XR Engine Hub for Unity, Godot and Unreal, and ML Kit Text to Speech for audio-first eyewear.
5 min readThree ways system agents like Gemini can act in your app: AppFunctions (Android MCP), a remote MCP server and OEM Computer Control. What each demands, when to pick which, plus on-device agents with ML Kit and Gemini Nano 4.
6 min readAppFunctions hit release candidate on Nov 4, 2026. What changed since alpha10: AppFunctionDeclaration rename, AppFunctionContext removal, explicit isDescribedByKDoc, AppFunctionState, patternMatchers and the rc01 Gradle setup.
7 min readPlay's subscription roadmap sorted by availability: multi-quantity seats, usage-based billing, mixed carts, bundles, dynamic grace period, retention and winback offers, plus a verified showInAppMessages sample.
6 min readWhich Dev Summit announcements are stable, beta or alpha: Android CLI plugins for Claude Code, Codex and Antigravity, AppFunctions beta, A2UI, ML Kit Agentic API, Navigation 3 1.2 and Googlebook adaptive guidance.
7 min readMeta and Google on migrating Instagram Direct to Compose for AI agents: constructor-only items, a RecyclerView/LazyColumn interop layer, Pausable composition plus LazyLayoutCacheWindow, and 33% lower token cost.
7 min readAppState 1.0.0-alpha01 takes Compose State out of the UI: transform and listener run composable blocks without UI, StateStore shares keyed state across components, and DataStore sync survives process death.
8 min readThe Dev Summit tools post, performance half: android profiler leakcanary, android analyze and the R8 Configuration Analyzer, Tracing 2.0, recomposition tracing, Crashlytics heap dumps and the experimental Lightbuild YAML build.
7 min readARCore and SceneCore hit 1.0.0 stable on Oct 21. XR Compose is still beta02 with a SceneCore leak workaround, and 1.1.0-alpha01 adds SpatialAnnotation, dynamic meshes and simpler glTF animation.
6 min readRabbit 2 makes Bring Your Own Agent stable: 40+ ACP agents including Claude Agent and Codex, a Skills Manager and a /review walkthrough for agent changes. Setup, what agents can access and the CLI plugins.
6 min readAndroidX now ships an official Compose renderer for the A2UI protocol. The agent describes the UI in JSON, your catalog decides what can render. A2uiSurface, custom components, two-way bindings and what changed in alpha02.
9 min readBeta01 and beta02 of Compose 1.13 break PolygonShape, Slider, Modifier.blur and MediaQuery posture APIs, require Kotlin 2.2, and ship a new Modifier.border with opt-out flags. What to fix before stable.
8 min readGemini 4 Argon arrives for Android developers through Antigravity, Android Studio Canary and Firebase AI Logic. Self-healing build loops, AGSL shaders in Compose, android-cli-plugin setup, and who actually has access.
7 min readApps targeting the next Android release can no longer write contacts directly. The three standard intents, the Contact Picker and People Directory replace it, and MANAGE_CONTACTS covers the few apps that truly need broad access. Kotlin before/after and a migration checklist.
7 min readGrab's 10-million-line superapp went from legacy ProGuard config to R8 Full Mode in phases: ~32.5% fewer ANRs, ~30% smaller downloads and ~35% faster cold start. The sequencing, the reflection fixes and the CI guardrails worth copying.
8 min readCompose 1.12.0 went stable August 12, and alpha01 of 1.13 dropped the same day. FlexBox graduates from experimental (no more @OptIn), a new SelectionState API gives you programmatic text selection control, and click sounds are now automatic on Android.
10 min readCompose 1.12.0 hit stable August 12 alongside Fragment 1.9.0, Tracing 2.0.0, and Navigation3 1.1.6. What's genuinely new vs RC01 (WCG, variable fonts, Dialog blur), what breaks on upgrade, and the exact migration checklist before you bump the BOM.
11 min readX shipped a fully rebuilt Android app on July 20, 2026 — 100% Kotlin, Jetpack Compose end to end, and Kotlin Multiplatform powering X Chat's E2E encryption across Android, iOS, and Web. Here's what a year-long clean-slate rewrite looks like and what every Android engineer can take from it.
11 min readSeven alphas, one beta, and the Benchmark library has its most consequential upgrade since stable. UiAutomator 2.4 lands in MacrobenchmarkScope, requireAot flips to true by default to stop silent JIT-warm measurements, TraceProcessor moves to benchmark-common, and beta01 lets PerfettoCapture merge Tracing 2.0 in-process events into one Perfetto file.
9 min readFragment 1.9.0 is at RC01. Three practical changes: fragment-ktx is absorbed into the main artifact (Jake Wharton contribution), AndroidFragment gets a maxLifecycle param to fix lifecycle leaks in Compose pagers, and Fragment officially enters maintenance mode. Here's what each means and what to do about it.
9 min readMedia3 1.11.0 graduated to stable on August 5. Beyond what alpha01 and beta01 shipped, stable adds OggMuxer and WavMuxer for audio output, MP4 chapter extraction, enablePerStreamMediaProgression() for startup latency, HLS Content Steering, and five API removals to fix before you upgrade.
10 min readGoogle's official Android Skills are built for deprecation by design — every skill should eventually make itself obsolete as models improve. The philosophy, the evaluation framework (think integration tests for AI knowledge), when skills actually add value, and why only ~20 official ones exist.
9 min readRC01 shipped July 29 — stable is weeks away. Beyond the visual APIs covered in beta, 1.12 adds SoundEffectOnInteraction for accessibility-aware click sounds, credentialRequest Semantics for passkey-ready Compose login forms, a breaking TextObfuscationMode rename in BasicSecureTextField, and InterceptPlatformTextInput promoted to stable.
10 min readThree new experimental layout primitives bring CSS-inspired adaptive layouts to Jetpack Compose: FlexBox for flowing content sections, a structural Grid for 2D panels without lazy loading, and mediaQuery() for branching on device posture, pointer precision, and viewing distance — not just window width.
11 min readNavigation 2.10.0-beta01 ships multiplatform support for Desktop, macOS, iOS, WASM, tvOS, and watchOS; NavBackStackEntryInfo for custom predictive back animations; NavUri replacing android.net.Uri; and a deep link security fix. Plus the honest maintenance mode reality check and a decision tree for Navigation 2.x vs Navigation3.
9 min readGoogle's 'Build intelligent Android apps' series introduced @Generable annotations for type-safe structured output via KSP, and a new genai-speech-recognition 1.0.0-alpha1 library. Here's the integration guide: setup, data class annotations, streaming transcription, and how to go from 13-second receipts parsing to under 2 seconds.
10 min readGoogle's Play Age Signals API expands to Australia and Canada in mid-August, then globally by year-end. Integration guide with AgeSignalsManager, the four default age tiers, testing with FakeAgeSignalsManager, and the strict policy restrictions that govern what you can actually do with the data.
9 min readSeven security and privacy behavior changes in Android 17 that aren't in the other posts: ACCESS_LOCAL_NETWORK permission for LAN access, banned static-final reflection, enforced ECH and Certificate Transparency, stricter native DCL, Contacts Provider 2 PII removal, and more.
10 min readAlpha25 lands six API renames and two deprecations as M3 Expressive hardens toward stable — trailingIcon becomes trailingContent, TonalToggleButton becomes FilledTonalToggleButton, SplitButtonLayout is deprecated, and ComponentOverride is removed entirely. Plus alpha24's new material3-ripple artifact for inset focus rings.
9 min readAlpha07 adds BackStackMatcher — a declarative way to build a synthetic back stack when handling deep links — plus DeepLinkSerializer for complex argument types, five targeted bug fixes, and Navigation3 1.1.5 stable on the same day.
9 min readGoogle officially moved the Views toolkit to maintenance mode — bug fixes only, no new features. 68% of the top 1,000 Play apps already use Compose. Here's what the announcement means for teams still on View-based UI and how to think about the migration now.
8 min readAGP 9.2.0 ships an R8 optimization that rewrites AtomicReferenceFieldUpdater into direct Unsafe calls, cutting coroutine overhead by half and improving Compose's Modifier.clickable by 2x — automatically. Here's the three-step mechanism and what it means for your benchmarks.
9 min readSamsung unveiled a new lineup of foldable and wearable devices at Galaxy Unpacked London. The Android team responded the next day with a clear message: your adaptive layout strategy needs to level up. Here's the developer picture — Window 1.6.0 engagement APIs, NavigableListDetailPaneScaffold, and the Android 17 hard deadline.
9 min readKotlin 2.4.20-Beta2 lands sealed class Swift export for exhaustive enum switching in KMP, incremental klib compilation on by default for faster Kotlin/Native debug builds, four new stdlib collection functions, and an experimental compiler native image.
8 min readGoogle is removing the Nearby Connections API's silent ability to enable Wi-Fi and Bluetooth on your app's behalf. Late 2026 enforcement, all three strategies affected. Here's the pre-flight check pattern and how to audit your connection flows before the deadline.
8 min readNavigation3 1.2.0-alpha05/06 adds UriDeepLinkMatcher for URI-to-NavKey resolution and ResultEventBus for typed result passing between destinations — the two features that 1.1.4 stable shipped without. Full API surface with real code.
9 min readAs of July 22, your Play Store app listing is available to rival US stores by default. Downloads still flow through Play, billing is unchanged, but you now have a decision to make in Play Console. Here's the opt-in/out trade-off, the Epic settlement context, and what actually changes in your app (spoiler: nothing in the APK).
10 min readSamsung announced Galaxy Glasses at Unpacked today — phone-tethered, display-free, Gemini Live API as the app model. One codebase targets headset, display glasses, and audio glasses at runtime. Here's the developer model that matters before hardware ships this fall.
10 min readGlance 1.3.0 brings HealthData APIs for heart rate and steps in Wear widgets, WearWidgetPreview for Android Studio design-time rendering, GlanceWearWidgetManager for querying active instances, and a mandatory @AssociateWithGlanceWearWidget annotation that will break existing code on upgrade.
9 min readAlpha19 lands EditablePdfDocument for inline form filling with autofill, a pdf-core module split that decouples document models from the UI layer, OcrProvider APIs for scanned documents, and public AnnotationView. The case for dropping your third-party PDF SDK just got stronger.
8 min readTracing 2.0.0-beta01 replaces the android.os.Trace wrapper with a full in-process Perfetto engine. TraceDriver brings metadata-tagged slices, coroutine context propagation across suspend/resume boundaries, and JVM support — the tracing story production apps actually needed.
10 min readxr.arcore, xr.scenecore, and xr.runtime all hit 1.0.0-beta01 on July 15. Session.create is now a suspend function, AnchorEntity became AnchorSpace, and the movable modifier got a policy API. Here's what breaks and how to migrate.
9 min readWorkManager 2.12.0-alpha01 ships a new work-analytics artifact with WorkMetricsInfo — duration, stop reasons, retry counts, and full execution history — so background job failures finally have a structured record you can query and pipe into your analytics stack.
9 min readQuail 2 (2026.1.2) is stable. Run multiple Gemini agent chats in parallel, get LeakCanary heap analysis at 5x speed on your development machine, and triage production crashes with full source context — not just the stack trace.
10 min readBeta01 lands Format.selectionPriority for HLS/DASH adaptive streaming, multi-Location DASH fallback for CDN resilience, and fixes a ForegroundServiceStartNotAllowedException crash that bites every background music app.
9 min readDataStore 1.3.0-alpha finally adds Tink-backed AES-256-GCM encryption, a new DataStore.Builder that enforces application-scoped context, and Kotlin Multiplatform Web support with OPFS, localStorage, and sessionStorage.
10 min readJetBrains launched the official Kotlin Benchmark this month — 105 real engineering tasks from production codebases, scored by whether the AI actually passes regression tests. Claude Code + Opus 4.7 leads at 85.71%. Here's what the results mean for Android developers.
9 min readAlpha02 lands pinch-to-zoom and tap-to-focus natively in CameraXViewfinder, adds a Night Mode Indicator API, exposes GPU-native ImageAnalysis via HardwareBuffer, and brings granular audio controls and AE/AWB locking to the recorder.
10 min readFloatingToolbar, ButtonGroup, WavyProgressIndicator, and 10+ other Expressive APIs graduated to stable in alpha23. Plus a unified rememberBottomSheetState() that deprecates two separate sheet state APIs. Here's what to adopt today.
10 min readasItemSnapshotListFlow() converts your PagingData flow into a standard Flow you can combine() with other state, and the new append/prepend/refresh/retry methods give you manual load control that isn't tied to scroll position.
10 min readAndroid Bench migrated to Harbor on July 8 — adding latency, cost, and CI range dimensions. Claude Fable 5 tops at 84.5%, open-weight models now included. Here's how to read the leaderboard for your actual Android workflow.
9 min readAppFunctions is Android 16's on-device MCP equivalent — annotate Kotlin suspend functions, write clear KDoc, and AI agents like Gemini discover and execute your app's capabilities without the user opening your UI.
10 min readrememberHiltViewModelFactory() drops the ViewModelStoreOwner parameter, the Compose artifact is now separate from navigation, and paired with Lifecycle 2.11's rememberViewModelStoreOwner it finally makes per-Pager-page Hilt ViewModels clean to write.
8 min readGemma 4 E2B/E4B are available now via the ML Kit GenAI Prompt API and AICore Developer Preview. Here's the production architecture, hybrid inference with Firebase AI Logic, prefix caching, and when on-device AI actually makes sense.
9 min read1.12.0-beta02 landed MeshGradient for organic multi-point gradients, SwipeToReveal with RevealState.drag() and custom flingBehavior, Scroll Indicators across all scrollable containers, and Material3 TopAppBar/ButtonGroup graduation to stable.
9 min readAPA renders traces 26x faster, Gemini-powered LeakCanary analysis moves off the device, R8 Configuration Analyzer scores your keep rules, and ADB Wi-Fi 2.0 finally makes wireless debugging reliable. Here's what actually changes.
10 min readAPI 37 isn't just behavior changes. The Handoff API, Contact Picker, ART lock-free MessageQueue, and PQC signing are new capabilities worth actually building with.
10 min readNavigation3 1.1.4 hit stable on July 1 — type-safe NavKey destinations, developer-controlled NavBackStack, KMP support, and a SceneStrategy system that finally makes adaptive layouts clean. Here's what actually changed and when to migrate.
9 min readAndroid 17 ships native Eclipsa Video — SMPTE ST 2094-50 adaptive HDR for mobile. ExoPlayer handles it automatically with zero codec configuration; Camera2 gets a new HLG10_SMPTE_2094_50 capture profile.
8 min readViewModelStoreProvider and rememberViewModelStoreOwner finally give Compose Pager pages proper, config-change-safe ViewModel scoping without manual map management. Plus KMP support and lambda lifecycle observers.
8 min readPlayerPool brings official sliding-window preloading for vertical feeds, dynamic scheduling is now default, and the Compose player UI suite finally has all its pieces.
10 min read14 property defaults flipped, Variant API removed, R8 repackaging on by default. Everything you need to migrate cleanly.
11 min readService fees restructured, billing choice expanded effective June 30, 2026. What it means for subscriptions, digital goods, and indie revenue.
9 min readARCore 1.0.0-alpha15 — QR Code API, Geospatial mode overhaul, hand tracking renames. What transfers from mobile Android work.
10 min readHeap dumps, heap profiles, and stack sampling on real user devices. Android 16 adds automatic cold start and ANR capture.
10 min readNew package, KSP-only, no SupportSQLite, mandatory coroutines. What actually breaks and what's worth migrating for.
10 min readSix API 37 behavior changes around background audio, memory limits, SMS OTP, and large-screen adaptivity that will actually break things.
10 min readStable context parameters, explicit backing fields, stable UUID API — plus AGP and Compose compiler changes worth checking before bumping the version.
9 min readEnforcement starts Sep 30, 2026 in Brazil, Indonesia, Singapore, and Thailand. What changes for Play Console developers.
9 min readCompose 1.11.3 closes a long-standing performance gap with Views and ships an experimental CSS-Grid-style layout API.
9 min readAndroid CLI stable, AI agents with Android skills, Android Bench open-source support — the announcements that actually matter.
8 min read8 real leak patterns with bad → fixed code examples, LeakCanary setup, Memory Profiler walkthrough, and a pre-ship checklist.
14 min readProfiling cold start, eliminating blocking content providers, lazy Hilt initialization, and shipping Baseline Profiles to production.
8 min readWhere Clean Architecture genuinely shines, where it adds unnecessary ceremony, and how I've evolved it across 10+ apps.
12 min readThe preloading strategy, ViewPager2 pooling tricks, seamless auto-transitions, and avoiding memory leaks in a video list.
10 min readMythos-class capability, 1M token context, 128k output — launched June 9, suspended by the US government three days later. What it means for developers building with AI APIs.
10 min readStructured JSON schemas, Maps Grounding to stop hallucinated coordinates, and Gemini 2.5 Flash TTS — three production patterns from Google's XR tour guide app.
10 min read