# Compose

Jetpack Compose is Android's modern toolkit for building native user interfaces.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The Thumb That Ran Ahead of the Finger: Anatomy of a Compose Slider Bug

DevFeed: [The Thumb That Ran Ahead of the Finger: Anatomy of a Compose Slider Bug](<https://devfeed.tech/articles/the-thumb-that-ran-ahead-of-the-finger-anatomy-of-a-compose-slider-bug-22952.md>)

Original publisher: [Read original article](<https://proandroiddev.com/the-thumb-that-ran-ahead-of-the-finger-anatomy-of-a-compose-slider-bug-ddec306251d0?source=rss----c72404660798---4>)

Author: Vitaliy Gribko

Published: 2026-09-14T04:19:34Z

Content type: article

Language: en

Sources: [ProAndroidDev - Medium](<https://devfeed.tech/sources/proandroiddev-medium.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [qa](<https://devfeed.tech/tags/qa.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article examines a deterministic bug in a custom Compose slider where the thumb moves ahead of the user's finger during a drag. It traces the issue to a design-system slider forked from the AOSP Material implementation and discusses debugging and code simplification.

### Source excerpt

A bug report sat in the backlog for seven months. The fix took a day, deleted a third of the slider's logic, and was almost shipped with a second bug inside -- until a machine read my diff better than I did. This is the whole story: the ported behavior that never made sense, the race nobody reported, and why the best fixes remove code. The report The bug report was seven months old when it reached me. A QA engineer had filed it in December, with a screen recording and three steps: Open the people search filters. Grab the right-hand thumb of the age range slider. Drag it slowly to the left. The recording showed the problem in two seconds. The thumb does not follow the finger. It sprints ahead -- you are still crossing the gap between two ticks, and the thumb is already standing on the next one, waiting for you, like a dog that runs to the park while you are still tying your shoes. Expected: the thumb moves with the finger. Actual: it escapes. On a budget phone, on two Android versions, every time. Not a race condition, not a flake -- a perfectly deterministic lie, filmed in December, assigned to a fix-day in July. Seven months is not negligence. It is the natural half-life of a visual glitch filed as minor against a screen nobody dies on. The age filter works. You tap a tick, the value applies. Only the drag -- the one gesture the slider exists for -- feels wrong in a way that is hard to screenshot and easy to deprioritize. When the ticket finally landed on my desk, a colleague glanced at it and asked whether it had already been fixed once. It had not. But I understood his confusion later, when I opened the slider's source and found a comment that explained everything -- including why this bug felt so old. The comment that confessed The slider is not the framework's slider. Our design system ships its own Compose slider, forked from the AOSP Material one, because design needed three knobs the framework does not expose: a custom thumb radius, a custom track height, a differ

## Android Weekly Issue #744

DevFeed: [Android Weekly Issue #744](<https://devfeed.tech/articles/android-weekly-issue-744-22735.md>)

Original publisher: [Read original article](<https://androidweekly.net/issues/issue-744/rss.xml>)

Published: 2026-09-13T16:28:25Z

Content type: article

Language: en

Sources: [Android Weekly](<https://devfeed.tech/sources/android-weekly.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Development](<https://devfeed.tech/topics/development.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Rive animation](<https://devfeed.tech/topics/rive-animation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [compose](<https://devfeed.tech/tags/compose.md>), [developers](<https://devfeed.tech/tags/developers.md>), [lottie](<https://devfeed.tech/tags/lottie.md>), [net-11-preview-7](<https://devfeed.tech/tags/net-11-preview-7.md>), [offline-speech-recognition](<https://devfeed.tech/tags/offline-speech-recognition.md>), [rive](<https://devfeed.tech/tags/rive.md>), [speech](<https://devfeed.tech/tags/speech.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

Android Weekly Issue #744 is a developer digest covering Android architecture and AI, annotation-based DSL APIs, animated paywalls, offline speech recognition in keyboards, Compose dialog blurring, and structural hot reload across Android, iOS, and desktop.

### Source excerpt

Articles & Tutorials Sponsored Pushwoosh launches a new Push-only plan Stop overpaying for push notifications. Get powerful push infrastructure for $7 per 1,000 MAU, with high-speed delivery, 99.9% push-to-gateway delivery, migration support, and a 24-month price lock. Calculate your savings. Android's AI Era: Hype vs. Architecture Thomas Künneth examines Android's AppFunctions architecture and agent distribution claims behind Google's "intelligent system" framing. Two Racing Lines: Annotations and the DSL in NetFlow 0.7.0 KMP Bits explains adding an annotation-based API layer atop NetFlow's DSL, keeping compile-time-checked mapping and paging support intact. Sponsored How many app issues fell off your radar this week? Mobile teams deal with a firehose of incoming issues: regressions from QA, beta feedback, Play Store reviews, crashes, etc. AI code makes managing this even harder. Triage by Runway pulls every issue into one inbox, de-dupes, assigns, and tracks fixes so nothing is missed. See how it works. Adding Rive and Lottie Animations to Android Paywalls Jaewoong Eum explains building custom Rive and Lottie animated components for RevenueCat's server-driven Android paywalls. I Put Speech Recognition Inside an Android Keyboard. Here's What Broke. Farhad Ranjbar explores the architecture challenges of building an offline speech-recognition engine inside an Android keyboard. How to blur what's behind a Compose dialog, down to API 23 Timofey Krestyanov explains blurring content behind a Compose dialog across window boundaries, down to API 23. Compose HotSwan 2.0.0: The Future of Hot Reload on Android, iOS, and Desktop Jaewoong Eum introduces Compose HotSwan 2.0's own interpreter engine, enabling structural hot reload across Android, iOS, and Desktop. Place a sponsored post Advertise to more than 80k Android developers! Advertise your Android development related service or product! We reach out to more than 80k Android developers around the world, every week, through

## Android Studio Rabbit 1 Canary 5 now available

DevFeed: [Android Studio Rabbit 1 Canary 5 now available](<https://devfeed.tech/articles/android-studio-rabbit-1-canary-5-now-available-26339.md>)

Original publisher: [Read original article](<https://androidstudio.googleblog.com/2026/09/android-studio-rabbit-1-canary-5-now.html>)

Author: Android Studio Releaser (noreply@blogger.com)

Published: 2026-09-10T18:22:41Z

Content type: release

Language: en

Sources: [Android Studio Release Updates](<https://devfeed.tech/sources/android-studio-release-updates.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [bug](<https://devfeed.tech/tags/bug.md>), [compose](<https://devfeed.tech/tags/compose.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>)

### AI overview

Android Studio Rabbit 1 Canary 5 is available in the Canary channel. The release includes general fixes for Android Studio Rabbit 1 and Android Gradle Plugin 9.5.0-alpha05, including fixes affecting Compose Preview, Gemini, layout and resource editing, the Resource Manager, and UI tools.

### Source excerpt

Android Studio Rabbit 1 Canary 5 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 macOS). Otherwise, you can download it here. For information on new features and changes in Android Studio Rabbit 1, see the Android Studio Preview release notes. For details of bugs fixed in each previous release of Android Studio Rabbit 1, see closed issues. General fixes and features Below is a list of general fixes in Android Studio Rabbit 1 Canary 5 and Android Gradle Plugin 9.5.0-alpha05. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you. Fixed Issues Compose Preview Issue #364917767 PreviewParameterProvider is nested inside another class Issue #290658441 Zooming in Compose preview view simultaneously scrolls up Issue #219764006 "@Preview not top-level declaration" lint doesn't work if defined in companion object object Issue #389194647 Show redundant action bar in Compose Preview Gemini Issue #556950521 UI issue w local Agent: 👎 & 👍 appear to send private data unexpectedly when using local models Layout and Resource Editing Issue #79968470 Show an error in the editor when using an incorrect attribute Preview Issue #537472290 Incorrect values of fontScale parameter in dropdown menu Resource Manager Issue #161054670 Bug: Android Studio can't view animated GIF and can't convert to animated WEBP UI Tools Issue #440650750 Vector Asset Studio: Clip Art icons not appearing until icons_metadata.txt is manually deleted

## September 09, 2026

DevFeed: [September 09, 2026](<https://devfeed.tech/articles/september-09-2026-22736.md>)

Original publisher: [Read original article](<https://developer.android.com/jetpack/androidx/versions/all-channel>)

Published: 2026-09-09T17:00:00Z

Content type: release

Language: en

Sources: [AndroidX Release Notes](<https://devfeed.tech/sources/androidx-release-notes.md>)

Topics: [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [latest-release](<https://devfeed.tech/tags/latest-release.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [room](<https://devfeed.tech/tags/room.md>), [security](<https://devfeed.tech/tags/security.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This Android developer page lists AndroidX library components across four release channels and provides recent release dates and version information. It also links to component release histories, archived release notes, and the current versions page.

### Source excerpt

Activity Version 1.14.0-alpha02 Annotation Version 1.11.0-rc01 Benchmark Version 1.5.0 Car App Version 1.9.0-alpha02 Collection Version 1.7.0-alpha01 Compose Animation Version 1.12.1 Compose Animation Version 1.13.0-alpha03 Compose Foundation Version 1.12.1 Compose Foundation Version 1.13.0-alpha03 Compose Material Version 1.12.1 Compose Material Version 1.13.0-alpha03 Compose Material3 Version 1.5.0-alpha28 Compose Material3 Adaptive Version 1.4.0-alpha02 Compose Remote Version 1.0.0-alpha19 Compose Remote Foundation Version 1.0.0-alpha02 Compose Runtime Version 1.12.1 Compose Runtime Version 1.13.0-alpha03 Compose Ui Version 1.12.1 Compose Ui Version 1.13.0-alpha03 Core Uwb Version 1.1.0-alpha02 Credentials Providerevents Version 1.0.0-beta01 Datastore Version 1.3.0-alpha11 Emoji2 Version 1.7.0-rc01 Glance Adaptive Version 1.0.0-alpha02 Glance Wear Version 1.0.0-alpha18 Heifwriter Version 1.2.0-alpha02 Ink Version 1.1.0-alpha08 Lifecycle Version 2.12.0-alpha03 Mediarouter Version 1.9.0-alpha02 Navigation Version 2.10.1 Navigation3 Version 1.2.0-rc01 Room Version 2.8.5 Room3 Version 3.0.3 Room3 Version 3.1.0-alpha01 Savedstate Version 1.6.0-alpha03 Security Version 1.0.0 Security Version 1.1.0 Sqlite Version 2.7.1 Sqlite Version 2.8.0-alpha01 Tracing Version 2.0.2 Wear Compose Version 1.7.0-rc01 Wear Compose Remote Version 1.0.0-alpha11 Webkit Version 1.18.0-alpha01 Xr Arcore Version 1.0.0-rc01 Xr Glimmer Version 1.0.0-alpha19 Xr Projected Version 1.0.0-alpha12 Xr Runtime Version 1.0.0-rc01 Xr Runtime Version 1.1.0-alpha01 Xr Scenecore Version 1.0.0-rc01

## jetc.dev Newsletter Issue #330

DevFeed: [jetc.dev Newsletter Issue #330](<https://devfeed.tech/articles/jetc-dev-newsletter-issue-330-22962.md>)

Original publisher: [Read original article](<https://jetc.dev/issues/330.html>)

Author: CommonsWare

Published: 2026-09-08T14:00:00Z

Content type: article

Language: en

Sources: [jetc.dev | Issues](<https://devfeed.tech/sources/jetc-dev-issues.md>)

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [tvOS](<https://devfeed.tech/topics/tvos.md>), [Android](<https://devfeed.tech/topics/android.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [android](<https://devfeed.tech/tags/android.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dev](<https://devfeed.tech/tags/dev.md>), [ios](<https://devfeed.tech/tags/ios.md>), [newsletter](<https://devfeed.tech/tags/newsletter.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [testing](<https://devfeed.tech/tags/testing.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

Newsletter Issue #330 covers Compose Multiplatform support for Apple tvOS, lessons from Android foldables for potential foldable iPhone development, testing and recomposition issues, image-loading test techniques, animated number transitions, and related Compose tools and libraries.

### Source excerpt

Apple TV! Apple foldables! Microsoft Office! And other topics not necessarily involving gigantic firms!

## Self-Hosted Platform Build Order: Dependencies from Bare Metal to Model Serving

DevFeed: [Self-Hosted Platform Build Order: Dependencies from Bare Metal to Model Serving](<https://devfeed.tech/articles/the-whole-estate-in-one-article-how-every-layer-fits-together-34108.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/meta-infrastructure-overview/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-09-04T07:00:00Z

Content type: article

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [observability](<https://devfeed.tech/topics/observability.md>), [model-serving](<https://devfeed.tech/topics/model-serving.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [compose](<https://devfeed.tech/tags/compose.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [model-serving](<https://devfeed.tech/tags/model-serving.md>), [observability](<https://devfeed.tech/tags/observability.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

This article explains the dependency order for building a self-hosted platform. It covers consistent bare-metal inventory, Ansible configuration convergence, networking, Kubernetes, Ceph storage, identity, observability, and model serving.

### Source excerpt

Self-hosted platform build order: why mesh, cluster, Ceph storage, identity and observability must precede model serving, shown with Compose depends_on.

## Compose Multiplatform Is a Business Decision, Not a Technical One - Justin Mancinelli

DevFeed: [Compose Multiplatform Is a Business Decision, Not a Technical One - Justin Mancinelli](<https://devfeed.tech/articles/compose-multiplatform-is-a-business-decision-not-a-technical-one-justin-mancinelli-38181.md>)

Original publisher: [Read original article](<https://touchlab.co/compose-multiplatform-business-decision>)

Published: 2026-09-01T18:00:00Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>)

Tags: [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [react](<https://devfeed.tech/tags/react.md>), [technical](<https://devfeed.tech/tags/technical.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This opinion article argues that Compose Multiplatform is a strategic business choice for sharing UI across Android, iOS, desktop, and web. It compares CMP with Flutter and React Native, emphasizing its Kotlin and Jetpack Compose foundations and its native status on Android.

### Source excerpt

If you are weighing Flutter, maintaining two native UI codebases "for now", or assuming cross-platform means giving something up, read this before your next roadmap conversation.

## jetc.dev Newsletter Issue #329

DevFeed: [jetc.dev Newsletter Issue #329](<https://devfeed.tech/articles/jetc-dev-newsletter-issue-329-22961.md>)

Original publisher: [Read original article](<https://jetc.dev/issues/329.html>)

Author: CommonsWare

Published: 2026-09-01T14:00:00Z

Content type: article

Language: en

Sources: [jetc.dev | Issues](<https://devfeed.tech/sources/jetc-dev-issues.md>)

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Android](<https://devfeed.tech/topics/android.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dev](<https://devfeed.tech/tags/dev.md>), [html](<https://devfeed.tech/tags/html.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [newsletter](<https://devfeed.tech/tags/newsletter.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

This newsletter issue reviews recent Jetpack Compose ecosystem updates, including the stable Compose Multiplatform release, new Remote Compose and Glance artifact groups, Compose Material3 changes, Navigation 3 beta updates, and related Android and Wear releases. It also covers cross-platform page curls, streaming Kotlinx HTML via Molecule, and screenshot prevention on Android and iOS.

### Source excerpt

Compose Multiplatform `1.12.0`! New Remote Compose and Glance artifact groups! Cross-platform page curls! Streaming Kotlinx HTML via Molecule! Prevent screenshots! And... what does Material3 have against the rich?!?

## Top Projects for Advanced Compose 2026

DevFeed: [Top Projects for Advanced Compose 2026](<https://devfeed.tech/articles/top-projects-for-advanced-compose-2026-39383.md>)

Original publisher: [Read original article](<https://kt.academy/article/top-projects-compose-2026>)

Published: 2026-08-31T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [advanced](<https://devfeed.tech/tags/advanced.md>), [compose](<https://devfeed.tech/tags/compose.md>), [projects](<https://devfeed.tech/tags/projects.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

An overview of projects for the Advanced Compose and Polished Compose courses in 2026.

### Source excerpt

Overview of the best projects for Advanced Compose and Polished Compose course in 2026

## Android Studio Rabbit 1 Canary 3 now available

DevFeed: [Android Studio Rabbit 1 Canary 3 now available](<https://devfeed.tech/articles/android-studio-rabbit-1-canary-3-now-available-26336.md>)

Original publisher: [Read original article](<https://androidstudio.googleblog.com/2026/08/android-studio-rabbit-1-canary-3-now.html>)

Author: Android Studio Releaser (noreply@blogger.com)

Published: 2026-08-27T13:26:09Z

Content type: release

Language: en

Sources: [Android Studio Release Updates](<https://devfeed.tech/sources/android-studio-release-updates.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [bug](<https://devfeed.tech/tags/bug.md>), [compose](<https://devfeed.tech/tags/compose.md>), [preview](<https://devfeed.tech/tags/preview.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Android Studio Rabbit 1 Canary 3 is available in the Canary channel. The release includes general fixes for Android Studio Rabbit 1 and Android Gradle Plugin 9.5.0-alpha03, along with fixes for reported issues across several development tools and features.

### Source excerpt

Android Studio Rabbit 1 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 macOS). Otherwise, you can download it here. For information on new features and changes in Android Studio Rabbit 1, see the Android Studio Preview release notes. For details of bugs fixed in each previous release of Android Studio Rabbit 1, see closed issues. General fixes and features Below is a list of general fixes in Android Studio Rabbit 1 Canary 3 and Android Gradle Plugin 9.5.0-alpha03. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you. Fixed Issues Android Gradle Plugin Issue #550220873 AGP 9.2.0 regression: `LibraryExtension.getSourceSets()` is typed on an interface the source-set implementation no longer implements, causing ClassCastException Issue #548314106 CommonExtension.resourcePrefix has incomplete docs Compose Preview Screenshot Testing Issue #539672113 Compose Preview Screenshot Testing: false "Cyclic style parent definitions" error for a dotted-name style with explicit parent="" CPU Issue #549911097 Trace File was not parsed Device Manager Issue #541776384 Device Manager: "Add a new device..." link throws IllegalArgumentException and does nothing when the tool window toolbar is hidden Gemini Issue #549864592 Invalid StreamExperience Request. Violations: contents[18].parts[0].text: Text part must not be empty. Profilers Issue #545999552 Mouse cursor not showing full symbol name when you hover over them in Profiler's Stack Sample

## Handling Asynchronous Images in Android Screenshot Tests

DevFeed: [Handling Asynchronous Images in Android Screenshot Tests](<https://devfeed.tech/articles/handling-asynchronous-images-in-android-screenshot-tests-24846.md>)

Original publisher: [Read original article](<https://alexzh.com/handling-asynchronous-images-in-android-screenshot-tests/>)

Author: Alex Zhukovich

Published: 2026-08-27T07:41:23Z

Content type: tutorial

Language: en

Sources: [Alex Zhuk - Android development and testing](<https://devfeed.tech/sources/alex-zhuk-android-development-and-testing.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [test](<https://devfeed.tech/topics/test.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [junit](<https://devfeed.tech/tags/junit.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains why asynchronous image loading makes Android screenshot tests unstable or inconsistent. It presents two approaches for deterministic results: injecting fake images with the coil-test library and using Compose inspection mode when the first approach is unavailable.

### Source excerpt

This article is based on a chapter from my book, Mastering Android Screenshot Testing. Modern applications frequently load images asynchronously, which is a common cause of unstable screenshot tests or confusion when you review newly generated screenshots. A test can pass locally and fail on CI, produce a different image

## Using snapshot tests to prevent accessibility regressions in a Jetpack Compose Android app

DevFeed: [Using snapshot tests to prevent accessibility regressions in a Jetpack Compose Android app](<https://devfeed.tech/articles/qa-24887.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1074780/>)

Author: ithersta (Яндекс)

Published: 2026-08-27T07:05:12Z

Content type: tutorial

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [яндекс](<https://devfeed.tech/topics/tag-4004cf5948d3.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [qa](<https://devfeed.tech/tags/qa.md>), [tag-4004cf5948d3](<https://devfeed.tech/tags/tag-4004cf5948d3.md>), [tag-e69b694e3ce2](<https://devfeed.tech/tags/tag-e69b694e3ce2.md>), [tag-f538878e20ff](<https://devfeed.tech/tags/tag-f538878e20ff.md>)

### AI overview

The article explains how the Yandex Mail Android team uses snapshot tests with Jetpack Compose to detect accessibility regressions. It describes Compose semantics, TalkBack, and why manual accessibility checks are insufficient as screens and shared components grow.

### Source excerpt

Почта -- массовый продукт, которым пользуются самые разные люди, и поэтому он должен быть максимально доступен. Нам важно, чтобы приложение Яндекс Почты было удобно каждому, в том числе людям с особенностями зрения. На телефонах с Android за доступность для людей с особенностями зрения отвечает TalkBack -- функция озвучивания экрана, которая зачитывает текст, роль и состояние всех размеченных элементов на экране и позволяет с ними взаимодействовать. Если разметка сломается, приложением будет пользоваться сильно сложнее или вообще невозможно. Читать далее

## Mastering Jetpack Compose's New SelectionState API

DevFeed: [Mastering Jetpack Compose's New SelectionState API](<https://devfeed.tech/articles/mastering-jetpack-compose-s-new-selectionstate-api-25985.md>)

Original publisher: [Read original article](<https://proandroiddev.com/mastering-jetpack-composes-new-selectionstate-api-13dfa05f49db?source=rss-711ab22c5c77------2>)

Author: Nav Singh

Published: 2026-08-27T01:17:44Z

Content type: tutorial

Language: en

Sources: [Stories by Nav Singh 🇨🇦 on Medium](<https://devfeed.tech/sources/stories-by-nav-singh-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [api](<https://devfeed.tech/tags/api.md>), [api-news](<https://devfeed.tech/tags/api-news.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [reactive](<https://devfeed.tech/tags/reactive.md>)

### AI overview

This tutorial introduces Jetpack Compose's SelectionState API, released in August 2026, for hoisted bidirectional selection control and reactive text observation. It demonstrates programmatic selection, clearing, range selection, word-based expansion, and access to selected text.

### Source excerpt

Image generated using Gemini The Jetpack Compose August '26 release introduced a new API SelectionState for hoisted, bidirectional control and reactive text observation. Core ComponentsSelectionState An object that provides access to the selected text and methods for controlling it programmatically 🛑 We cannot use the same SelectionState with multiple SelectionContainersval selectionState = rememberSelectionState()SelectionContainer: A composable function that enables text selection of its content. SelectionContainer(state = selectionState) { Text( "Text content to be selected programmatically." ) }Programmatic Control Methods selectionState.selectAll(): Selects all the content in the container Button( onClick = { selectionState.selectAll() }) { Text("Select All") } selectionState.clear(): Clears the active selection Button(onClick = { selectionState.clear() }) { Text("Clear selection") } selectionState.select(TextRange): Selects a specific range of text Button( onClick = { selectionState.select(TextRange(0, 4)) }) { Text("Range selection") } selectionState.extendSelectionByWord(): Expands the selection of words This selects the first word in the container if there is no selection. The selection continues to the next Composable Text, if the next word is in a different Composable Text.Button( onClick = { selectionState.extendSelectionByWord()}) { Text("Extend selection") }Mutliple Text Components selectionSelected texts Provides access to the selected text. Returns List<AnnotatedString> Backed by mutableStateOf -- Observable by Composablesprivate var _selectedTexts by mutableStateOf<List<AnnotatedString>>Text(text = "Selected text: ${selectionState.selectedTexts}")Sample Code@Composable fun ProgrammaticSelectionExample() { val selectionState = rememberSelectionState() Column{ Row { Button( onClick = { selectionState.selectAll() }, ) { Text("Select All") } Button( onClick = { selectionState.clear() }, ) { Text("Clear selection") } } Row { Button( onClick = { selectionS

## Compose & kotlinx.html

DevFeed: [Compose & kotlinx.html](<https://devfeed.tech/articles/compose-kotlinx-html-20925.md>)

Original publisher: [Read original article](<https://jakewharton.com/compose-and-kotlinx-html/>)

Published: 2026-08-26T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [HTML](<https://devfeed.tech/topics/html.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [ui](<https://devfeed.tech/topics/ui.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [compose](<https://devfeed.tech/tags/compose.md>), [html](<https://devfeed.tech/tags/html.md>), [sse](<https://devfeed.tech/tags/sse.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

The article presents an approach for keeping server-rendered HTML admin pages fresh without abandoning static HTML. It uses Molecule on the JVM to observe state, kotlinx.html to render HTML fragments, Ktor to stream updates over WebSockets, and client-side JavaScript with Idiomorph to patch the DOM. It also discusses using server-sent events for unidirectional updates and the scalability tradeoffs of long-lived connections.

### Source excerpt

Let's render a simple page with Ktor server and kotlinx.html: get("/users.html") { call.respondHtml { myLayout(title = "Users") { userList( users = db.users.value, ) } } } A reusable myLayout provides scaffolding, userList encapsulates the specific page content, and db.users is a StateFlow<List<User>> from the persistence layer. I've been doing this over and over to create admin dashboard pages for a project. It works great right up until you leave it open for a minute or two, and its content becomes stale. Client-side frameworks exist within the ecosystem to "solve" this, such as Compose for HTML or Compose UI for Web. If your house has a leaky pipe you can also "solve" that by moving to a new house. I simply will not bring myself to abandoning HTML let alone delivery of static HTML in the response. Efforts are underway to adapt Compose for HTML for so-called isomorphic rendering. This would involve performing the initial composition on the server to produce the static HTML for the HTTP response. Then, client side as JS, mounting the same rendering code to reproduce the DOM tree and incrementally update it for future state changes. Tomorrow's Compose today Instead of waiting, I brought my own Compose on the JVM from home in the form of Molecule. Instead of managing a UI tree over time, Molecule manages a single piece of state over time. We can use that to render an HTML fragment on the server as a string, and then stream that to the client. webSocket("/users.ws") { launchMolecule(Immediate) { val users by db.users.collectAsState() createHTML().userList( users = users, ) }.collect(::send) } That's it. Ktor gives us the webSocket, Molecule runs the StateFlow<String> which is piped into it, and kotlinx.html renders the HTML fragment of our existing content function. In the initial HTML payload you need to wire this up somehow. Something like: script { unsafe { +""" |const content = document.getElementById("content"); |const socket = new WebSocket("ws://" + location.ho

## Android Studio Rabbit 1 Canary 2 now available

DevFeed: [Android Studio Rabbit 1 Canary 2 now available](<https://devfeed.tech/articles/android-studio-rabbit-1-canary-2-now-available-26335.md>)

Original publisher: [Read original article](<https://androidstudio.googleblog.com/2026/08/android-studio-rabbit-1-canary-2-now.html>)

Author: Android Studio Releaser (noreply@blogger.com)

Published: 2026-08-20T13:34:55Z

Content type: release

Language: en

Sources: [Android Studio Release Updates](<https://devfeed.tech/sources/android-studio-release-updates.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [bug](<https://devfeed.tech/tags/bug.md>), [compose](<https://devfeed.tech/tags/compose.md>), [json](<https://devfeed.tech/tags/json.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [preview](<https://devfeed.tech/tags/preview.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>)

### AI overview

Android Studio Rabbit 1 Canary 2 is available in the Canary channel. The release includes general fixes in Android Studio and Android Gradle Plugin 9.5.0-alpha02, including fixes related to Baseline Profiles, Lint JSON generation, Compose Preview, and connected devices.

### Source excerpt

Android Studio Rabbit 1 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 macOS). Otherwise, you can download it here. For information on new features and changes in Android Studio Rabbit 1, see the Android Studio Preview release notes. For details of bugs fixed in each previous release of Android Studio Rabbit 1, see closed issues. General fixes and features Below is a list of general fixes in Android Studio Rabbit 1 Canary 2 and Android Gradle Plugin 9.5.0-alpha02. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you. Fixed Issues Baseline Profiles & ProfileInstaller Issue #543799367 Baseline profile is pulled off the device but never registered in test-result.pb, so collectBaselineProfile finds nothing and copyBaselineProfileIntoSrc deletes the committed profile Lint Issue #546124524 AGP's SarifReporter generates invalid JSON when LintFix has an ending alternative that produces no edits Preview Issue #545671285 [Compose Preview] Code/Split/Design tabs missing in Kotlin files with @Preview annotation in Android Studio Quail 3 Patch 1 Running Devices Issue #546841017 Bug: IDE has various issues with connected device, including installation and mirroring, despite all signs showing otherwise

## Jetpack XR SDK core libraries reach beta: The next milestone for Android XR

DevFeed: [Jetpack XR SDK core libraries reach beta: The next milestone for Android XR](<https://devfeed.tech/articles/jetpack-xr-sdk-core-libraries-reach-beta-the-next-milestone-for-android-xr-22694.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/08/jetpack-xr-sdk-core-libraries-beta.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-18T17:00:00Z

Content type: release

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Jetpack XR SDK](<https://devfeed.tech/topics/jetpack-xr-sdk.md>), [Android XR](<https://devfeed.tech/topics/android-xr.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [android-xr](<https://devfeed.tech/tags/android-xr.md>), [beta-announcement](<https://devfeed.tech/tags/beta-announcement.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-xr-sdk](<https://devfeed.tech/tags/jetpack-xr-sdk.md>), [preview](<https://devfeed.tech/tags/preview.md>), [releases](<https://devfeed.tech/tags/releases.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

Google announces that Jetpack SceneCore, ARCore for Jetpack XR, and XR Runtime have reached beta as part of the Jetpack XR SDK. The release stabilizes APIs for Android XR development, while Jetpack Compose for XR is expected to reach beta soon.

### Source excerpt

Posted by Amy Zeppenfeld, Developer Relations Engineer, Greg Underwood, Software Engineering Manager, Yasmine Evjen, Senior Product Manager, Android XR Since introducing the Android XR SDK, developers have transformed their ideas into innovative, immersive experiences for XR headsets and wired XR glasses. As the ecosystem expands, you can more easily take those experiences from preview to production and reach users wherever they are. Today, we're excited to announce that Jetpack SceneCore, ARCore for Jetpack XR, and XR Runtime have reached beta with Jetpack Compose for XR to follow soon! This means the APIs are stabilizing, making it a great time to start integrating them into your production workflows and creating for Android XR. Why the Jetpack XR SDK? The Jetpack XR SDK includes all the tools and libraries you need to build immersive and augmented experiences for Android XR. Whether you're porting an existing 2D app or creating a new 3D XR app from scratch, you can do so using the familiar Android development tools you already know and love. To support your development, this release focuses on providing the fundamental building blocks across the SDK: Jetpack SceneCore: Build and manipulate the Android XR scene graph with 3D content. You can arrange 3D models, play spatial audio, and use the robust entity-component system to create, control, and manage entities. ARCore for Jetpack XR: Bring digital content into the real world with perception capabilities. This library powers depth estimation, persistent anchors, hit testing, and plane identification. XR Runtime: Provides the essential runtime foundation of the SDK, handling device lifecycles, session creation, and system configurations that enable the API surface. Jetpack Compose for XR: Create spatial UI layouts that take advantage of Android XR's spatial capabilities. This library lets you use familiar Compose concepts to create spatial UIs and will be reaching Beta soon. What's new in Beta? Direct feedback from

## jetc.dev Newsletter Issue #327

DevFeed: [jetc.dev Newsletter Issue #327](<https://devfeed.tech/articles/jetc-dev-newsletter-issue-327-22959.md>)

Original publisher: [Read original article](<https://jetc.dev/issues/327.html>)

Author: CommonsWare

Published: 2026-08-18T14:00:00Z

Content type: news

Language: en

Sources: [jetc.dev | Issues](<https://devfeed.tech/sources/jetc-dev-issues.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [releases](<https://devfeed.tech/topics/releases.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [liquid glass](<https://devfeed.tech/topics/liquid-glass.md>), [Model Context Protocol (MCP)](<https://devfeed.tech/topics/model-context-protocol-mcp.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [compose-hot-reload](<https://devfeed.tech/tags/compose-hot-reload.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dev](<https://devfeed.tech/tags/dev.md>), [liquid-glass](<https://devfeed.tech/tags/liquid-glass.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [releases](<https://devfeed.tech/tags/releases.md>)

### AI overview

Newsletter Issue #327 covers stable and alpha Jetpack Compose releases, Compose Multiplatform updates, Liquid Glass approaches for multiplatform apps, and related Compose developments including Hot Reload MCP server support and proposed server-side rendering.

### Source excerpt

Compose stable release! Compose Material3 stable too! Liquid Glass in a multiplatform app! Preview generator!

## Match Compose injection scopes to real UI ownership

DevFeed: [Match Compose injection scopes to real UI ownership](<https://devfeed.tech/articles/match-compose-injection-scopes-to-real-ui-ownership-23958.md>)

Original publisher: [Read original article](<https://cloud-inject.io/notes/compose-scope-lifecycle/>)

Published: 2026-08-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Koin - Cloud-Inject.io -Kotzilla](<https://devfeed.tech/sources/koin-cloud-inject-io-kotzilla.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [screen](<https://devfeed.tech/tags/screen.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains how to align Compose injection scopes with actual UI ownership and lifecycle events. It distinguishes object retrieval from creation, discusses process, navigation-destination, request, and feature-session lifetimes, and recommends testing both retention and exit behavior.

### Source excerpt

Compose makes it easy to request an object close to the UI that uses it. Proximity is useful, but it does not define ownership. Recomposition can call a function many times. Navigation can keep or discard a back-stack entry. The operating system can recreate the process. A sound scope names the event that owns the object. Separate retrieval from creation Ask two questions for each injected object: Where is the object retrieved? Which lifecycle creates and releases it? A repository retrieved by a composable can still be process-scoped. A screen model can be owned by a navigation destination. A transient formatter can be created for each request. Write the lifetime next to the definition and test that the object survives, or does not survive, the intended event.

## Exploring Compose HTML for Server Side Rendering

DevFeed: [Exploring Compose HTML for Server Side Rendering](<https://devfeed.tech/articles/exploring-compose-html-for-server-side-rendering-8789.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/kotlin/2026/08/exploring-compose-html-for-server-side-rendering/>)

Author: Frederik Pietzko

Published: 2026-08-14T12:15:09Z

Content type: article

Language: en

Sources: [Kotlin : A concise multiplatform language developed by JetBrains | The JetBrains Blog](<https://devfeed.tech/sources/kotlin-a-concise-multiplatform-language-developed-by-jetbrains-the-jetbrains-blog.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [HTML](<https://devfeed.tech/topics/html.md>), [React](<https://devfeed.tech/topics/react.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [Nuxt.js](<https://devfeed.tech/topics/nuxt.md>), [Svelte](<https://devfeed.tech/topics/svelte.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [development](<https://devfeed.tech/tags/development.md>), [framework](<https://devfeed.tech/tags/framework.md>), [html](<https://devfeed.tech/tags/html.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [news](<https://devfeed.tech/tags/news.md>), [react](<https://devfeed.tech/tags/react.md>), [server](<https://devfeed.tech/tags/server.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [ui](<https://devfeed.tech/tags/ui.md>), [vue](<https://devfeed.tech/tags/vue.md>), [web](<https://devfeed.tech/tags/web.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

An exploratory proposal for extending Compose HTML with a JVM target to support server-side rendering. It argues that Kotlin and Compose components could provide type-safe, reusable server-rendered UI without a separate templating language, while discussing the trade-offs of canvas-based web rendering for SEO, loading times, and accessibility.

### Source excerpt

Something is happening in server-rendered web development. React shipped Server Components. HTMX made "hypermedia" cool again. Phoenix LiveView proved a server can push interactive UI updates without a client framework in sight. Every ecosystem seems to be rediscovering the server as a place to render UI, except one: the JVM. What if Compose, the UI [...]

## 12 August 2026 Artifact Wave

DevFeed: [12 August 2026 Artifact Wave](<https://devfeed.tech/articles/12-august-2026-artifact-wave-28105.md>)

Original publisher: [Read original article](<https://commonsware.com/blog/2026/08/12/jetpack-artifact-wave.html>)

Author: CommonsWare

Published: 2026-08-12T23:48:49Z

Content type: release

Language: en

Sources: [The CommonsBlog](<https://devfeed.tech/sources/the-commonsblog.md>)

Topics: [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [blog](<https://devfeed.tech/tags/blog.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This week's Jetpack artifact wave added more than 900 artifact versions, including stable versions of Compose, but no new artifact groups or artifacts.

### Source excerpt

Here is what we got as new Jetpack artifacts this week!

## Bring one-handed gestures to your Wear OS app

DevFeed: [Bring one-handed gestures to your Wear OS app](<https://devfeed.tech/articles/bring-one-handed-gestures-to-your-wear-os-app-4239.md>)

Original publisher: [Read original article](<https://android-developers.googleblog.com/2026/08/one-handed-gestures-wear-os.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-12T17:00:00Z

Content type: article

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog.md>), [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-2.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [compose](<https://devfeed.tech/tags/compose.md>), [developer](<https://devfeed.tech/tags/developer.md>), [framework](<https://devfeed.tech/tags/framework.md>), [how-to](<https://devfeed.tech/tags/how-to.md>)

### AI overview

This article introduces the one-handed gestures framework in Wear OS 7 and explains how developers can add touch-free interactions to Wear Compose apps. It covers primary and dismiss actions, gesture indicators, API integration, and the new Modifier.oneHandedGesture.

### Source excerpt

Posted by Chiara Chiappini, Developer Relation Engineer, Android Developer Relations One-handed gestures offer a convenient and touch-free way for users to interact with their watches, enabling them to perform key actions using only the hand on which the device is worn. First introduced on Pixel Watch with Wear OS 6.1, one-handed gestures made quick interactions effortless, such as starting and stopping a timer, accepting calls, and controlling media. Now, with Wear OS 7, we're expanding this functionality with a new Gestures framework that allows OEMs to map gestures to primary actions and dismissals, and an API to bring gesture control to the developer community. Starting with the 1.7 beta release of Compose for Wear OS, you can seamlessly integrate gesture control into your Wear Compose apps. To use this release, upgrade your Wear Compose dependency to: androidx.wear.compose:compose-material3:1.7.0-beta01 Designing for one-handed interaction The one-handed gestures framework is designed around two primary interaction patterns that allow users to take action without touching the screen: Primary action, which on Pixel Watch is mapped to a double-pinch gesture: this action should be mapped to the most important task in a given context. For example, users can perform this gesture to take a photo in a camera app, start/stop a timer, or accept an incoming call. Dismiss action, which on Pixel Watch is mapped to a wrist turn gesture: this action is mapped to system back by default and provides an intuitive way to close interruptive screens or get back to the watch face. It may be overridden for specific use cases, such as silencing an incoming phone call. These gestures are currently available on Pixel Watch 3 and newer, and the Wear OS gesture framework is available to all Wear OS device manufactures to adopt. Check out our new design guidance for integrating one-handed gestures into your Wear app. Integrating gestures with Compose on Wear OS To provide seamless gesture

## Bring one-handed gestures to your Wear OS app

DevFeed: [Bring one-handed gestures to your Wear OS app](<https://devfeed.tech/articles/bring-one-handed-gestures-to-your-wear-os-app-22696.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/08/one-handed-gestures-wear-os.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-12T17:00:00Z

Content type: tutorial

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [compose](<https://devfeed.tech/tags/compose.md>), [framework](<https://devfeed.tech/tags/framework.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

This article explains how to add Wear OS 7 one-handed gesture support to Wear Compose apps. It covers the Gestures framework, primary and dismiss actions, gesture indicators, design guidance, and the 1.7 beta release of Compose for Wear OS.

### Source excerpt

Posted by Chiara Chiappini, Developer Relation Engineer, Android Developer Relations One-handed gestures offer a convenient and touch-free way for users to interact with their watches, enabling them to perform key actions using only the hand on which the device is worn. First introduced on Pixel Watch with Wear OS 6.1, one-handed gestures made quick interactions effortless, such as starting and stopping a timer, accepting calls, and controlling media. Now, with Wear OS 7, we're expanding this functionality with a new Gestures framework that allows OEMs to map gestures to primary actions and dismissals, and an API to bring gesture control to the developer community. Starting with the 1.7 beta release of Compose for Wear OS, you can seamlessly integrate gesture control into your Wear Compose apps. To use this release, upgrade your Wear Compose dependency to: androidx.wear.compose:compose-material3:1.7.0-beta01 Designing for one-handed interaction The one-handed gestures framework is designed around two primary interaction patterns that allow users to take action without touching the screen: Primary action, which on Pixel Watch is mapped to a double-pinch gesture: this action should be mapped to the most important task in a given context. For example, users can perform this gesture to take a photo in a camera app, start/stop a timer, or accept an incoming call. Dismiss action, which on Pixel Watch is mapped to a wrist turn gesture: this action is mapped to system back by default and provides an intuitive way to close interruptive screens or get back to the watch face. It may be overridden for specific use cases, such as silencing an incoming phone call. These gestures are currently available on Pixel Watch 3 and newer, and the Wear OS gesture framework is available to all Wear OS device manufactures to adopt. Check out our new design guidance for integrating one-handed gestures into your Wear app. Integrating gestures with Compose on Wear OS To provide seamless gesture

## What's new in the Jetpack Compose August '26 release

DevFeed: [What's new in the Jetpack Compose August '26 release](<https://devfeed.tech/articles/what-s-new-in-the-jetpack-compose-august-26-release-4236.md>)

Original publisher: [Read original article](<https://android-developers.googleblog.com/2026/08/jetpack-compose-august-2026-release.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-12T16:00:00Z

Content type: release

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog.md>), [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-2.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [API](<https://devfeed.tech/topics/api.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [compose](<https://devfeed.tech/tags/compose.md>), [features](<https://devfeed.tech/tags/features.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Jetpack Compose 1.12 is stable, adding Mesh Gradients, Wide Color Gamut and HDR support, named Grid areas, Credential Manager integration, and testing and performance improvements.

### Source excerpt

Posted by Nick Butcher, Product Manager, Jetpack Compose Today, the Jetpack Compose August '26 release is stable! This release brings version 1.12 across core Compose modules (see the full BOM mapping), introducing rich visual APIs like Mesh Gradients and Wide Color Gamut (WCG) support, structural layout features like named areas in Grid, seamless integration with Android's Credential Manager, and significant testing and performance improvements. To update your project to today's release, upgrade your Compose BOM version to 2026.08.00: implementation(platform("androidx.compose:compose-bom:2026.08.00")) Breaking Changes AGP & Compile SDK: Compose 1.12 updates compileSdk to API 37, requiring a minimum AGP 9.1.1. As a reminder, Compose will always target the latest compileSdk. Learn more about this change here. Modifier.onFirstVisible() is deprecated: Migrate to Modifier.onVisibilityChanged(), which provides more precise visibility threshold tracking. Graphics Mesh Gradients Compose 1.12 introduces MeshGradientPainter to help you create multi-point, organic color gradients. val rows = 1 val columns = 1 val gradientPainter = remember { MeshGradientPainter(rows, columns) { // Parameters: row, column, position, color setVertex(0, 0, Offset(0f, 0f), Color.Red) // Top-Left setVertex(0, 1, Offset(1f, 0f), Color.Blue) // Top-Right setVertex(1, 0, Offset(0f, 1f), Color.Green) // Bottom-Left setVertex(1, 1, Offset(1f, 1f), Color.Yellow) // Bottom-Right } } Box( modifier = modifier .aspectRatio(16/9f) .fillMaxWidth() .paint(gradientPainter) ) For more information and examples, see the documentation. Wide Color Gamut & HDR Support Modern displays offer extended color fidelity and higher dynamic range. In Compose 1.12, full pipeline support for Wide Color Gamut (P3) and HDR rendering has been enabled across Compose graphics, paint, and shaders. Colors defined in non-sRGB color spaces (such as Display P3) are preserved through to platform rendering without color clamping. Colors wi

## What's new in the Jetpack Compose August '26 release

DevFeed: [What's new in the Jetpack Compose August '26 release](<https://devfeed.tech/articles/what-s-new-in-the-jetpack-compose-august-26-release-22693.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/08/jetpack-compose-august-2026-release.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-12T16:00:00Z

Content type: release

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [API](<https://devfeed.tech/topics/api.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [layout](<https://devfeed.tech/tags/layout.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [update](<https://devfeed.tech/tags/update.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

The Jetpack Compose August 2026 release is stable and brings version 1.12 to core Compose modules. It adds Mesh Gradients, Wide Color Gamut and HDR rendering support, named areas in Grid, Credential Manager integration, and testing and performance improvements. The release also includes breaking changes, including a requirement for API 37 and AGP 9.1.1.

### Source excerpt

Posted by Nick Butcher, Product Manager, Jetpack Compose Today, the Jetpack Compose August '26 release is stable! This release brings version 1.12 across core Compose modules (see the full BOM mapping), introducing rich visual APIs like Mesh Gradients and Wide Color Gamut (WCG) support, structural layout features like named areas in Grid, seamless integration with Android's Credential Manager, and significant testing and performance improvements. To update your project to today's release, upgrade your Compose BOM version to 2026.08.00: implementation(platform("androidx.compose:compose-bom:2026.08.00")) Breaking Changes AGP & Compile SDK: Compose 1.12 updates compileSdk to API 37, requiring a minimum AGP 9.1.1. As a reminder, Compose will always target the latest compileSdk. Learn more about this change here. Modifier.onFirstVisible() is deprecated: Migrate to Modifier.onVisibilityChanged(), which provides more precise visibility threshold tracking. Graphics Mesh Gradients Compose 1.12 introduces MeshGradientPainter to help you create multi-point, organic color gradients. val rows = 1 val columns = 1 val gradientPainter = remember { MeshGradientPainter(rows, columns) { // Parameters: row, column, position, color setVertex(0, 0, Offset(0f, 0f), Color.Red) // Top-Left setVertex(0, 1, Offset(1f, 0f), Color.Blue) // Top-Right setVertex(1, 0, Offset(0f, 1f), Color.Green) // Bottom-Left setVertex(1, 1, Offset(1f, 1f), Color.Yellow) // Bottom-Right } } Box( modifier = modifier .aspectRatio(16/9f) .fillMaxWidth() .paint(gradientPainter) ) For more information and examples, see the documentation. Wide Color Gamut & HDR Support Modern displays offer extended color fidelity and higher dynamic range. In Compose 1.12, full pipeline support for Wide Color Gamut (P3) and HDR rendering has been enabled across Compose graphics, paint, and shaders. Colors defined in non-sRGB color spaces (such as Display P3) are preserved through to platform rendering without color clamping. Colors wi

[Next page](<https://devfeed.tech/topics/compose.md?cursor=WyIyMDI2LTA4LTEyVDE2OjAwOjAwKzAwOjAwIiwgImFhZDczNmY3LTNjZGUtNDc1ZS05MGVlLWM4YzI2YTcyNjJmYSJd>)