41554 blogs · [ { "id": "01a0dcaa-d961-70c6-83ba-5826e4a46734", "title": "Compose Performance: 7 Optimizations That Actually Matter", "url": "https://proandroiddev.com/compose-performance-7-optimizations-that-actually-matter-6b32b7946b8b?source=rss----c72404660798---4", "published_at": "2026-09-24T08:22:04+00:00" }, { "id": "01a0dcaa-d961-70c6-83ba-5826e527a46c", "title": "UI Events in UiState: Start Simple, Add a Queue Only When You Need One", "url": "https://proandroiddev.com/ui-events-in-uistate-start-simple-add-a-queue-only-when-you-need-one-5b59dac0261e?source=rss----c72404660798---4", "published_at": "2026-09-24T08:19:08+00:00" }, { "id": "01a0dcaa-d961-70c6-83ba-5826e544f7da", "title": "Building On-Device AI Agents on Android with Google ADK — Part 4: Local RAG on Android — Storing…", "url": "https://proandroiddev.com/building-on-device-ai-agents-on-android-with-google-adk-part-4-local-rag-on-android-storing-6f6d8947899d?source=rss----c72404660798---4", "published_at": "2026-09-24T08:18:29+00:00" }, { "id": "01a0cf37-9461-701c-8144-c7ad20d0fe10", "title": "Why Your LazyColumn Is Still Janky", "url": "https://proandroiddev.com/why-your-lazycolumn-is-still-janky-47270b88670b?source=rss----c72404660798---4", "published_at": "2026-09-21T18:07:08+00:00" }, { "id": "01a0cf37-9461-701c-8144-c7ad20f06126", "title": "Building On-Device AI Agents on Android with Google ADK — Part 3: Demystifying ToolContext —…", "url": "https://proandroiddev.com/building-on-device-ai-agents-on-android-with-google-adk-part-3-demystifying-toolcontext-f578992168cb?source=rss----c72404660798---4", "published_at": "2026-09-21T18:06:15+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca5563c07f9", "title": "Building a Camera-Aware Voice AI App on Android", "url": "https://proandroiddev.com/building-a-camera-aware-voice-ai-app-on-android-58cba07629bb?source=rss----c72404660798---4", "published_at": "2026-09-19T16:19:24+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca5563e1fc3", "title": "Firebase Phone Number Authentication in Kotlin/Wasm (Part 3)", "url": "https://proandroiddev.com/kotlin-wasm-auth-part-3-phone-sign-in-9b47f1993940?source=rss----c72404660798---4", "published_at": "2026-09-19T16:03:23+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca5569e1432", "title": "Features You Waited For So Long in Kotlin", "url": "https://proandroiddev.com/features-you-waited-for-so-long-in-kotlin-6c822e9e344a?source=rss----c72404660798---4", "published_at": "2026-09-14T06:32:51+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca556ccd0d6", "title": "On-Device AI Series (Part 5): LiteRT-LM", "url": "https://proandroiddev.com/on-device-ai-series-part-5-litert-lm-d6c23b102094?source=rss----c72404660798---4", "published_at": "2026-09-14T05:59:12+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca556f5d80f", "title": "Koko, KMP Starter Kit — Part 3: Publishing: Your App in the Stores", "url": "https://proandroiddev.com/kmp-starter-kit-part-3-publishing-your-app-in-the-stores-fd64d3629c02?source=rss----c72404660798---4", "published_at": "2026-09-14T04:48:22+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca5579079d4", "title": "Build Setup: Targets, Source Sets and buildSrc for tvOS in a Compose Multiplatform Fork", "url": "https://proandroiddev.com/build-setup-targets-source-sets-and-buildsrc-for-tvos-in-a-compose-multiplatform-fork-4d9caafa30a8?source=rss----c72404660798---4", "published_at": "2026-09-14T04:24:43+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca557e39e25", "title": "The Thumb That Ran Ahead of the Finger: Anatomy of a Compose Slider Bug", "url": "https://proandroiddev.com/the-thumb-that-ran-ahead-of-the-finger-anatomy-of-a-compose-slider-bug-ddec306251d0?source=rss----c72404660798---4", "published_at": "2026-09-14T04:19:34+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca55831e1c3", "title": "I Counted Every Hidden Channel Kotlin Flow Creates — Most Devs Are Wrong About Which Operators Are…", "url": "https://proandroiddev.com/i-counted-every-hidden-channel-kotlin-flow-creates-most-devs-are-wrong-about-which-operators-are-8f38cf676e07?source=rss----c72404660798---4", "published_at": "2026-09-13T05:43:21+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca55921d78e", "title": "The “Downcast Trap” in Kotlin’s Explicit Backing Fields", "url": "https://proandroiddev.com/the-downcast-trap-in-kotlins-explicit-backing-fields-626ef0d66e50?source=rss----c72404660798---4", "published_at": "2026-09-13T05:31:32+00:00" }, { "id": "01a0bdef-5dac-727e-affa-6ca5599ecb6a", "title": "The Android Startup Pattern: A Lifecycle-Aware, Multi-Module Approach", "url": "https://proandroiddev.com/the-android-startup-pattern-a-lifecycle-aware-multi-module-approach-d0f73e367a62?source=rss----c72404660798---4", "published_at": "2026-09-13T05:31:09+00:00" }, { "id": "01a084c8-0e4a-7370-b780-5ce1b05457cb", "title": "Forget the “Setup Tax”: A Production-Ready Multi-Module Android Template", "url": "https://proandroiddev.com/forget-the-setup-tax-a-production-ready-multi-module-android-template-f4c879c97205?source=rss----c72404660798---4", "published_at": "2026-09-09T01:34:18+00:00" }, { "id": "01a084c8-0e4a-7370-b780-5ce1b1341d39", "title": "From Permissions to Sessions: Rethinking Location Access in Android 17", "url": "https://proandroiddev.com/from-permissions-to-sessions-rethinking-location-access-in-android-17-5a13124b777d?source=rss----c72404660798---4", "published_at": "2026-09-09T01:15:51+00:00" }, { "id": "01a084c8-0e4a-7370-b780-5ce1b21188fa", "title": "My Journey Making Compose Multiplatform Work on tvOS, and What I Learned", "url": "https://proandroiddev.com/my-journey-making-compose-multiplatform-work-on-tvos-and-what-i-learned-28744910489e?source=rss----c72404660798---4", "published_at": "2026-09-09T01:13:17+00:00" }, { "id": "01a08218-6791-71b7-ae15-74bbd515dad9", "title": "Build Your Own AI Code Reviewer for Free with Gemini and GitHub Actions", "url": "https://proandroiddev.com/build-your-own-ai-code-reviewer-for-free-with-gemini-and-github-actions-9a4bdc180737?source=rss----c72404660798---4", "published_at": "2026-09-08T03:37:59+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf2a8abe8", "title": "The Recompositions That Weren’t There!", "url": "https://proandroiddev.com/the-recompositions-that-werent-there-d2cf429c47f2?source=rss----c72404660798---4", "published_at": "2026-09-03T16:59:13+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf334c131", "title": "I Use Gemini Every Day as an Android Developer -Here Are My Favorite Tips and Tricks", "url": "https://proandroiddev.com/i-use-gemini-every-day-as-an-android-developer-here-are-my-favorite-tips-and-tricks-36873af64514?source=rss----c72404660798---4", "published_at": "2026-08-31T15:06:46+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf3a59864", "title": "One Flag, Two Checkpoints: How a Canceled Upload Reported Success", "url": "https://proandroiddev.com/one-flag-two-checkpoints-how-a-canceled-upload-reported-success-9f8d3e42f0cc?source=rss----c72404660798---4", "published_at": "2026-08-31T14:07:23+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf3d4e9ed", "title": "Building Android Apps at the Speed of Thought with Android CLI", "url": "https://proandroiddev.com/building-android-apps-at-the-speed-of-thought-with-android-cli-7109c8a2184e?source=rss----c72404660798---4", "published_at": "2026-08-31T13:56:43+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf3fe1aa0", "title": "I Gave My AI Agent Eyes Inside a Real Compose App", "url": "https://proandroiddev.com/i-gave-my-ai-agent-eyes-inside-a-real-compose-app-e7d4546417f8?source=rss----c72404660798---4", "published_at": "2026-08-30T16:50:57+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf4aa6a83", "title": "Koko, KMP Starter Kit — Part 2: Integrations", "url": "https://proandroiddev.com/koko-kmp-starter-kit-part-2-integrations-0220c2db0327?source=rss----c72404660798---4", "published_at": "2026-08-30T16:48:59+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf58d9739", "title": "Kotlin / Wasm — Auth part 2: Apple sign in", "url": "https://proandroiddev.com/kotlin-wasm-auth-part-2-apple-sign-in-857326006c64?source=rss----c72404660798---4", "published_at": "2026-08-30T16:47:15+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf5ad206a", "title": "Kotlin / Wasm — Auth part 1: Google Sign in", "url": "https://proandroiddev.com/kotlin-wasm-auth-part-1-google-sign-in-8287d61e82c9?source=rss----c72404660798---4", "published_at": "2026-08-30T16:46:24+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf65c2bde", "title": "Mastering Jetpack Compose’s New SelectionState API", "url": "https://proandroiddev.com/mastering-jetpack-composes-new-selectionstate-api-13dfa05f49db?source=rss----c72404660798---4", "published_at": "2026-08-30T16:44:26+00:00" }, { "id": "01a07df4-9fdf-7047-8844-faddf6be7ae5", "title": "One POM Line, 42 Phantom Findings: How a Vendor SDK Broke Our detekt Build", "url": "https://proandroiddev.com/one-pom-line-42-phantom-findings-how-a-vendor-sdk-broke-our-detekt-build-f9592331e69d?source=rss----c72404660798---4", "published_at": "2026-08-30T16:42:51+00:00" }, { "id": "01a0e28f-2283-7124-97b4-d53eba5663c4", "title": "Build an Android Chat app with Jetpack Compose", "url": "https://proandroiddev.com/android-chat-app-jetpack-compose-dec472140ff1", "published_at": "2021-03-19T15:00:00+00:00" } ] posts Claim your blog
Back to ProAndroidDev
Blog · corpus.blog/blogs/proandroiddev.com/posts

ProAndroidDev

proandroiddev.com

2026

2021