jetc.dev Newsletter Issue #324
Published: 2026-07-28
This week, we avoid Canvas(), pin some composables, and implement end-to-end testing. Plus, we scan for accessibility issues, dock some panels, and edit some photos.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
Media3 is up to 1.11.0-rc01, which includes the Compose for Android artifacts:
androidx.media3:media3-ui-compose:1.11.0-rc01androidx.media3:media3-ui-compose-material3:1.11.0-rc01
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
For Effects, How Do We Choose a Key?
Particularly for DisposableEffect(), your key should match the lifetime of the thing that you are disposing, and your key might well be the thing that you are disposing. Learn more in this week’s highlighted Kotlinlang #compose-android Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: Stop Reaching for Canvas: Mastering the Compose Drawing Phase with drawBehind, drawWithContent, and…
Aakanksha Shivani points out that while Canvas() is great for drawing graphic elements, creating your own Canvas() may not be the right solution for decorating an existing composable. For those cases, drawBehind(), drawWithContent(), and drawWithCache() give you a DrawScope that lets you achieve the same UI ends, but with a less-expensive implementation.
Medium: Preserving Composables Beyond the Viewport
Amanullah Sarker reminds us about PinnableContainer, which lets you indicate composables that should not be disposed if just because they leave the viewport. This is useful for heavier composables, such as ExoPlayer or native ad wrappers.
Medium: E2E Testing for Compose Multiplatform
Preetam Bhosle writes about Parikshan: an end-to-end testing framework for Compose Multiplatform, supporting all major platform targets. It leverages platform-specific solutions like Android’s UiAutomator or Playwright where practical, and embeds its own controller server for the remaining platforms. This is all hidden behind a common interface, so your Kotlin-based tests can exercise all platforms.
Other Interesting Links
- Medium: Best Practices for Creating UI States in Jetpack Compose in 2026
- Medium: Building a Modern Android News App with Jetpack Compose: Best Practices Without Overengineering
- Medium: How to Create Custom Composition Locals — And When You Probably Shouldn’t
- Medium: Is Jetpack Compose Ready for Android TV Development in 2026?
- Medium: Jetpack Compose Fundamentals — Part 6: Building Efficient Lists with LazyColumn and LazyRow
- Medium: Jetpack Compose Performance — What actually causes janky performance
- Medium: Jetpack Compose’s New Grid() API Fixes the 2D Layout Problem Row and Column Never Solved
- Medium: We Regretted Making Everything Reusable in Compose
- Medium: Web routing on top of Voyager in Compose Multiplatform: syncing navigation with the browser’s…
Resource Roundup
100% pure code!
GitHub: mohdaquib / ComposeA11yScanner
Mohd Aquib created an accessibility scanner overlay for your Compose for Android project. Ite has a rules-based engine to let you know about common accessibility issues like too-small touch targets, missing or duplicate content descriptions, etc.
GitHub: omkar-tenkale / DockLayout
Omkar Tenkale built something that I happen to have a concrete need for right now: a dockable panel implementation for Compose Multiplatform, supporting all major targets. Panels can be collapsed to sidebars, and the grid of panels can be resized horizontally and vertically.
GitHub: Jeremy-Gitau / multiplot
GitHub user Jeremy-Gitau brings us a charting library for Compose Multiplatform, supporting Android, desktop, and iOS. It supports bar and line charts, with customizable theme elements (e.g., colors).
GitHub: Muzamilabdallah / photoEditor
GitHub user Muzamilabdallah built a WhatsApp-style photo editor for Compose for Android. It has a core library that is design-system-agnostic, plus a “default” implementation that adds typical UX affordances like tool panels.
Notable Releases
Compose Unstyled is up to 2.9.0, allowing ModalBottomSheet to be enabled.
A Very Particular Set of Skills
Adding Compose capabilities to your coding agents!
Rotem Meidan created compose-doctor. This is a bit of a mashup of React Doctor and my detektifier, turning various quality tools like Detekt into a single 0-100 gate that agents can aim to achieve.
GitHub user Coding-Meet created Library Insight. This resembles ksrc to an extent, helping agents learn the shape of third-party libraries and be able to leverage them better in your app.
Also, here are a few more sets of skills of possible relevance for your Compose and Compose Multiplatform development:
Recent Issues:
- 2026-07-14: SubcomposeLayout! TV Compose! Nav3! Filter bars! Setting screens! And... can we make Compose for Desktop better?!?
- 2026-07-07: Compose stable and beta updates! Nav3 migrations! Grid! Effects! And GLFW for Compose for Desktop?!?
- 2026-06-30: Compose... in 3D! Compose Desktop beyond AWT! An independent RemoteCompose player! And, might we get an official Web rendering composable?!?