jetc.dev Newsletter Issue #339
Published: 2026-11-17
This week, we examine multiplatform accessibility, paging challenges, and desktop limitations. Plus, we look at a multiplatform video player composable and another CLI for rendering previews to PNGs.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
As part of the Media3 beta release, we got updates to Media3’s composables:
androidx.media3:media3-ui-compose:1.12.0-beta01androidx.media3:media3-ui-compose-material3:1.12.0-beta01
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Pit Board Reading: Accessibility in Compose Multiplatform
KMP Bits explores the use of semantics to provide details for use by voice assist tools (TalkBack, VoiceOver, etc.), reminds us about touch target and text size, and points out the platforms where Compose Multiplatform accessibility starts to break down (desktop: I’m looking at you).
Medium: Beyond Paging 3: Building Reliable, Reusable Lazy Lists in Jetpack Compose
Lukoh Nam takes a deep dive into Compose’s lazy containers (e.g., LazyColumn()) and their interaction with paged content from Paging 3. While Paging 3 handles loading data on demand, gluing Paging 3 and lazy containers together can cause consistency issues, such as in maintaining scroll position.
Compose Desktop in Production: my experience and gotchas
Alex Styl (Bluesky) outlines the benefits and limitations of developing apps using Compose for Desktop. Those limitations mostly center around deeper platform integration and tooling for packaging and distribution.
How Morph Text dissolves one word into the next
Juan Silva explains the process of porting Gooey Text Morphing to Compose Multiplatform, to cause text to animate the transition between one set of glyphs and the next.
Recalculated, not recomposed: what does one tap cost in a Compose paywall?
Jaewoong Eum (Mastodon, Bluesky) walks us through how the RevenueCat team identified and rectified performance issues with their paywall implementation.
Other Interesting Links
- A Rough First Sketch of the Compose Runtime
- Compose Multiplatform: Why You Shouldn’t Build Your Whole iOS App in Compose
- Jetpack Compose 1.13 and Android Graphics: MeshGradientPainter, MorphPolygonShape, Progressive Blur, and RuntimeColorFilter
- Medium: Avoid These 5 Common Jetpack Compose Recomposition Pitfalls
- Medium: Building an Android XR Product Viewer with Kotlin and Jetpack Compose
- Medium: Compose recomposition: what actually causes it, and how to prove you fixed it
- Medium: I Deleted 94 Lines of Custom Layout Code With One Compose API
- Medium: Navigation 3: Why ViewModel onCleared Is Never Called
- Medium: Swipe. Archive. Undo. Building Reversible List Interactions with Jetpack Compose Material 3
- Medium: Type-Safe Deep Links in Jetpack Navigation 3: Runnable Kotlin Examples With Real Output
- Migrating a Real Android App to Kotlin Multiplatform 3/4 — Sharing the UI without losing safety net
- Type-Safe Deep Links in Jetpack Navigation 3: UriDeepLinkMatcher, DeepLinkSerializer, and Synthetic Back Stacks
Resource Roundup
100% pure code!
GitHub: aryapreetam / cmp-videoplayer
Preetam Bhosle is working on a common video player composable for Compose Multiplatform. It is powered by ExoPlayer on Android, AVPlayer on iOS, mediamp and VLC on desktop, and HTML5 <video> on Web.
GitHub: bilaljameel / ScaleWheel
GitHub user bilaljameel built a Compose for Android wheel picker for choosing a value along a scale. Apps have deep control over the rendering of the scale and can choose horizontal or vertical orientation.
GitHub: TeddKo / DraggableCardStack
KO MINHYUK offers us a stack-of-cards UI for Compose for Android. Users can flip between the cards, with drag-to-reorder functionality, while apps have complete control over how the cards in the stack are rendered.
GitHub: cat-emacs / compose-preview
The Cat Emacs team created a CLI for rendering Compose previews to PNGs; also available as a preview UI within their Emacs implementation. Compare to Google’s similar tool, the Cat Emacs CLI offers a bit better KMP support and strict result freshness rules.
Other Interesting Links
- Fast Compose Preview (VS Code in-IDE composable previews)
- GitHub: ismnoiet / border-beam-android (animated AGSL-powered border beam for Compose for Android)
- GitHub: manug243 / compose-skeleton (placeholders with synchronized shimmers for Compose Multiplatform)
Recent Issues:
- 2026-11-03: Android Dev Summit 2026! Layoutlib! Remote Compose! Foldables! And... how can we cope with (process) death?!?
- 2026-10-27: Blur effects! Large-document text editing! And... composables on a Pi?!?
- 2026-10-20: Compose alpha and beta releases! Compose Multiplatform patch release! Composables to PDFs! Pixelating composables! Kotlin/Native for Compose for Desktop!