<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>bytevikas Blog</title>
    <link>https://bytevikas.com/blog/index.html</link>
    <atom:link href="https://bytevikas.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>Android engineering articles by Vikas Dhiman: performance, architecture, Jetpack Compose, Kotlin, Media3, and AI-assisted development.</description>
    <language>en</language>
    <lastBuildDate>Sat, 07 Nov 2026 08:00:00 +0530</lastBuildDate>
    <item>
      <title>Android XR Goes Production: XREAL AURA, Stable Jetpack XR, Geospatial APIs and the Engine Hub</title>
      <link>https://bytevikas.com/blog/android-xr-xreal-aura-stable-jetpack-xr-engine-hub.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-xr-xreal-aura-stable-jetpack-xr-engine-hub.html</guid>
      <pubDate>Sat, 07 Nov 2026 08:00:00 +0530</pubDate>
      <category>XR</category>
      <description>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.</description>
    </item>
    <item>
      <title>The Android Intelligence System: AppFunctions, Remote MCP or Computer Control, and Which One Your App Needs</title>
      <link>https://bytevikas.com/blog/android-intelligence-system-appfunctions-mcp-computer-control.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-intelligence-system-appfunctions-mcp-computer-control.html</guid>
      <pubDate>Fri, 06 Nov 2026 08:00:00 +0530</pubDate>
      <category>Intelligence</category>
      <description>Three 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.</description>
    </item>
    <item>
      <title>AppFunctions 1.0.0-rc01: Every Breaking Change Since alpha10, and How to Migrate</title>
      <link>https://bytevikas.com/blog/appfunctions-1-0-rc01-migration-from-alpha10.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/appfunctions-1-0-rc01-migration-from-alpha10.html</guid>
      <pubDate>Thu, 05 Nov 2026 08:00:00 +0530</pubDate>
      <category>Agents</category>
      <description>AppFunctions hit release candidate on Nov 4, 2026. What changed since alpha10: AppFunctionDeclaration rename, AppFunctionContext removal, explicit isDescribedByKDoc, AppFunctionState, patternMatchers and the rc01 Gradle setup.</description>
    </item>
    <item>
      <title>Google Play Subscriptions Next Era: Multi-Quantity, Usage-Based Billing, Mixed Carts and Dynamic Grace Period</title>
      <link>https://bytevikas.com/blog/google-play-subscriptions-multi-quantity-usage-billing-dynamic-grace.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/google-play-subscriptions-multi-quantity-usage-billing-dynamic-grace.html</guid>
      <pubDate>Wed, 04 Nov 2026 08:00:00 +0530</pubDate>
      <category>Subscriptions</category>
      <description>Play'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.</description>
    </item>
    <item>
      <title>Android Dev Summit 2026 Keynote: BYO Agent, Android CLI Plugins, AppFunctions Beta and Googlebook</title>
      <link>https://bytevikas.com/blog/android-dev-summit-2026-keynote-agentic-flexible-android.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-dev-summit-2026-keynote-agentic-flexible-android.html</guid>
      <pubDate>Tue, 03 Nov 2026 08:00:00 +0530</pubDate>
      <category>Keynote</category>
      <description>Which 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.</description>
    </item>
    <item>
      <title>Instagram Direct’s AI-Native Compose Migration: 50% Less UI Code and 33% Fewer Tokens</title>
      <link>https://bytevikas.com/blog/instagram-direct-ai-native-compose-migration-lazylayoutcachewindow.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/instagram-direct-ai-native-compose-migration-lazylayoutcachewindow.html</guid>
      <pubDate>Mon, 02 Nov 2026 08:00:00 +0530</pubDate>
      <category>Case Study</category>
      <description>Meta 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.</description>
    </item>
    <item>
      <title>AppState Alpha: Compose State in Your ViewModels with Transform and StateStore</title>
      <link>https://bytevikas.com/blog/appstate-transform-statestore-compose-state-beyond-ui.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/appstate-transform-statestore-compose-state-beyond-ui.html</guid>
      <pubDate>Sun, 01 Nov 2026 08:00:00 +0530</pubDate>
      <category>State</category>
      <description>AppState 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.</description>
    </item>
    <item>
      <title>Android Dev Summit 2026: LeakCanary in the CLI, R8 Analysis, Recomposition Tracing and Lightbuild</title>
      <link>https://bytevikas.com/blog/android-dev-summit-2026-performance-toolchain-cli-lightbuild.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-dev-summit-2026-performance-toolchain-cli-lightbuild.html</guid>
      <pubDate>Sat, 31 Oct 2026 08:00:00 +0530</pubDate>
      <category>Summit</category>
      <description>The 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.</description>
    </item>
    <item>
      <title>Jetpack XR SDK 1.0.0 Is Stable: ARCore and SceneCore GA, What Moves in 1.1 Alpha</title>
      <link>https://bytevikas.com/blog/jetpack-xr-sdk-1-0-0-stable-arcore-scenecore.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/jetpack-xr-sdk-1-0-0-stable-arcore-scenecore.html</guid>
      <pubDate>Fri, 30 Oct 2026 08:00:00 +0530</pubDate>
      <category>XR</category>
      <description>ARCore 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.</description>
    </item>
    <item>
      <title>Android Studio Rabbit 2: Bring Your Own Agent via ACP, Plus AI Change Review</title>
      <link>https://bytevikas.com/blog/android-studio-rabbit-2-bring-your-own-agent-acp.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-studio-rabbit-2-bring-your-own-agent-acp.html</guid>
      <pubDate>Thu, 29 Oct 2026 08:00:00 +0530</pubDate>
      <category>ACP</category>
      <description>Rabbit 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.</description>
    </item>
    <item>
      <title>A2UI for Jetpack Compose: Let AI Agents Render Native UI From Your Component Catalog</title>
      <link>https://bytevikas.com/blog/a2ui-compose-agent-driven-native-ui.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/a2ui-compose-agent-driven-native-ui.html</guid>
      <pubDate>Wed, 28 Oct 2026 08:00:00 +0530</pubDate>
      <category>A2UI</category>
      <description>AndroidX 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.</description>
    </item>
    <item>
      <title>Compose 1.13 Beta: PolygonShape Rewrite, Required Slider onValueChange and a Faster Modifier.border</title>
      <link>https://bytevikas.com/blog/compose-1-13-0-beta-polygonshape-slider-border.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-1-13-0-beta-polygonshape-slider-border.html</guid>
      <pubDate>Tue, 27 Oct 2026 08:00:00 +0530</pubDate>
      <category>Compose</category>
      <description>Beta01 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.</description>
    </item>
    <item>
      <title>Gemini 4 Argon for Android: Self-Healing Builds, AGSL Shaders and the android-cli-plugin</title>
      <link>https://bytevikas.com/blog/gemini-4-argon-android-antigravity-cli-agentic.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/gemini-4-argon-android-antigravity-cli-agentic.html</guid>
      <pubDate>Mon, 26 Oct 2026 08:00:00 +0530</pubDate>
      <category>Agentic</category>
      <description>Gemini 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.</description>
    </item>
    <item>
      <title>WRITE_CONTACTS Is Going Away: Migrating to Contact Intents and MANAGE_CONTACTS</title>
      <link>https://bytevikas.com/blog/write-contacts-permission-intents-manage-contacts.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/write-contacts-permission-intents-manage-contacts.html</guid>
      <pubDate>Sun, 25 Oct 2026 08:00:00 +0530</pubDate>
      <category>Contacts</category>
      <description>Apps 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.</description>
    </item>
    <item>
      <title>Grab Cut ANRs 32% and Startup 35% with R8 Full Mode and Baseline Profiles: The Playbook</title>
      <link>https://bytevikas.com/blog/grab-r8-full-mode-baseline-profiles-anr-startup.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/grab-r8-full-mode-baseline-profiles-anr-startup.html</guid>
      <pubDate>Sat, 24 Oct 2026 08:00:00 +0530</pubDate>
      <category>R8</category>
      <description>Grab'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.</description>
    </item>
    <item>
      <title>Compose 1.13.0-alpha01: FlexBox Hits Stable, SelectionState API, and the Next Cycle Begins</title>
      <link>https://bytevikas.com/blog/compose-1-13-0-alpha01-flexbox-stable-selection-api.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-1-13-0-alpha01-flexbox-stable-selection-api.html</guid>
      <pubDate>Thu, 13 Aug 2026 08:00:00 +0530</pubDate>
      <category>Compose</category>
      <description>Compose 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.</description>
    </item>
    <item>
      <title>Jetpack Compose 1.12.0 Is Stable — Wide Color Gamut, FlexBox, and the Production Upgrade Guide</title>
      <link>https://bytevikas.com/blog/compose-1-12-0-stable.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-1-12-0-stable.html</guid>
      <pubDate>Wed, 12 Aug 2026 08:00:00 +0530</pubDate>
      <category>Compose</category>
      <description>Compose 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.</description>
    </item>
    <item>
      <title>X Rebuilt Its Android App from Scratch in Kotlin + Compose — What a Year of Clean-Slate Engineering Looks Like</title>
      <link>https://bytevikas.com/blog/x-android-app-kotlin-compose-rebuild-kmp.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/x-android-app-kotlin-compose-rebuild-kmp.html</guid>
      <pubDate>Tue, 11 Aug 2026 08:00:00 +0530</pubDate>
      <category>KMP</category>
      <description>X 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.</description>
    </item>
    <item>
      <title>Benchmark 1.5.0 Beta: UiAutomator 2.4, Safer AOT Defaults, and In-Process Trace Merging</title>
      <link>https://bytevikas.com/blog/benchmark-1-5-0-beta-uiautomator-aot-perfetto-tracing.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/benchmark-1-5-0-beta-uiautomator-aot-perfetto-tracing.html</guid>
      <pubDate>Mon, 10 Aug 2026 08:00:00 +0530</pubDate>
      <category>Testing</category>
      <description>Seven 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.</description>
    </item>
    <item>
      <title>Fragment 1.9.0-rc01: fragment-ktx Merged, Compose maxLifecycle, and the Maintenance Mode Reality Check</title>
      <link>https://bytevikas.com/blog/fragment-1-9-0-rc01-ktx-merged-compose-interop.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/fragment-1-9-0-rc01-ktx-merged-compose-interop.html</guid>
      <pubDate>Sun, 09 Aug 2026 08:00:00 +0530</pubDate>
      <category>Fragment</category>
      <description>Fragment 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.</description>
    </item>
    <item>
      <title>Media3 1.11.0 Stable: OggMuxer, Chapter Metadata, and the Production Upgrade Checklist</title>
      <link>https://bytevikas.com/blog/media3-1-11-0-stable-muxers-chapter-metadata.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/media3-1-11-0-stable-muxers-chapter-metadata.html</guid>
      <pubDate>Sat, 08 Aug 2026 08:00:00 +0530</pubDate>
      <category>Media</category>
      <description>Media3 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.</description>
    </item>
    <item>
      <title>Android Skills: Why Google Built an AI Knowledge Layer Designed to Disappear</title>
      <link>https://bytevikas.com/blog/android-skills-built-for-deprecation.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-skills-built-for-deprecation.html</guid>
      <pubDate>Fri, 07 Aug 2026 08:00:00 +0530</pubDate>
      <category>Skills</category>
      <description>Google'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.</description>
    </item>
    <item>
      <title>Compose 1.12 RC01: Sound Effects, Passkey Semantics, and the APIs Before Stable</title>
      <link>https://bytevikas.com/blog/compose-1-12-rc01-sound-credentials-input.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-1-12-rc01-sound-credentials-input.html</guid>
      <pubDate>Thu, 06 Aug 2026 08:00:00 +0530</pubDate>
      <category>Compose</category>
      <description>RC01 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.</description>
    </item>
    <item>
      <title>Compose's New Adaptive Layout APIs: FlexBox, Grid, and mediaQuery() Explained</title>
      <link>https://bytevikas.com/blog/compose-adaptive-layout-flexbox-grid-mediaquery.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-adaptive-layout-flexbox-grid-mediaquery.html</guid>
      <pubDate>Wed, 05 Aug 2026 08:00:00 +0530</pubDate>
      <category>Layout</category>
      <description>Three 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.</description>
    </item>
    <item>
      <title>Jetpack Navigation 2.10 Beta: KMP on 9 Platforms, Richer Predictive Back, and the Maintenance Mode Signal</title>
      <link>https://bytevikas.com/blog/navigation-2-10-kmp-predictive-back-maintenance-mode.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/navigation-2-10-kmp-predictive-back-maintenance-mode.html</guid>
      <pubDate>Tue, 04 Aug 2026 08:00:00 +0530</pubDate>
      <category>Nav</category>
      <description>Navigation 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.</description>
    </item>
    <item>
      <title>ML Kit GenAI Gets @Generable Structured Output and Gemini Nano Speech Recognition</title>
      <link>https://bytevikas.com/blog/mlkit-genai-generable-structured-output-speech-recognition.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/mlkit-genai-generable-structured-output-speech-recognition.html</guid>
      <pubDate>Mon, 03 Aug 2026 08:00:00 +0530</pubDate>
      <category>ML Kit</category>
      <description>Google'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.</description>
    </item>
    <item>
      <title>Play Age Signals API Goes Global: Build Age-Appropriate Android Experiences Without Custom Age Gates</title>
      <link>https://bytevikas.com/blog/google-play-age-signals-api-global.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/google-play-age-signals-api-global.html</guid>
      <pubDate>Sun, 02 Aug 2026 08:00:00 +0530</pubDate>
      <category>Policy</category>
      <description>Google'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.</description>
    </item>
    <item>
      <title>Android 17's Security Hardening: The Behavior Changes That Will Break Your Production App</title>
      <link>https://bytevikas.com/blog/android-17-security-behavior-changes.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/android-17-security-behavior-changes.html</guid>
      <pubDate>Sat, 01 Aug 2026 08:00:00 +0530</pubDate>
      <category>Security</category>
      <description>Seven 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.</description>
    </item>
    <item>
      <title>Compose Material3 1.5.0-alpha25: The Expressive API Cleans House</title>
      <link>https://bytevikas.com/blog/compose-material3-1-5-alpha25-api-renames-expressive-graduation.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/compose-material3-1-5-alpha25-api-renames-expressive-graduation.html</guid>
      <pubDate>Fri, 31 Jul 2026 08:00:00 +0530</pubDate>
      <category>Design</category>
      <description>Alpha25 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.</description>
    </item>
    <item>
      <title>Navigation3 1.2.0-alpha07: BackStackMatcher Solves the Deep Link Back-Stack Problem</title>
      <link>https://bytevikas.com/blog/navigation3-1-2-alpha07-backstack-matcher-deep-link-serializer.html</link>
      <guid isPermaLink="true">https://bytevikas.com/blog/navigation3-1-2-alpha07-backstack-matcher-deep-link-serializer.html</guid>
      <pubDate>Thu, 30 Jul 2026 08:00:00 +0530</pubDate>
      <category>Nav</category>
      <description>Alpha07 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.</description>
    </item>
  </channel>
</rss>
