jetc.dev Newsletter Issue #296
Published: 2026-01-06
Welcome to 2026! This week, we look at frame rates, testing recomposition counts, and Compose for Desktop modules. And, we see two libraries for creating system-level floating windows on Android, powered by composable contents.
With luck, the “One Off the Stack, One Off the Slack” section will return in future issues.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
Shortly before the end of 2025, Jetpack Media3 reached a stable 1.9.0 release,
including androidx.media3:media3-ui-compose:1.9.0 and
androidx.media3:media3-ui-compose-material3:1.9.0.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: The Anatomy of a Frame: Understanding the 16.6ms Pipeline in Jetpack Compose
Tetiana Synytsyna walks us through what all happens during a single frame of a 60fps Compose
experience. This includes how Compose ties into VSync and Choreographer on Android,
along with how various sources of jank affect the rendering pipeline.
Medium: Catching excessive recompositions in Jetpack Compose with tests
Sahand Zehtabchi demonstrates a trackRecompositions() custom modifier and a corresponding
assertRecompositionCount() that can be used
from your unit tests to confirm that your composables are not recomposing more frequently than
is expected.
Minimal setup for Compose Desktop
Marcin Moskala explains how to set up a Compose for Desktop app module, based on Compose Multiplatform, for an existing project.
The Different Node Types in Jetpack Compose
Wolfram Rittmeyer (Mastodon) dives deep into Compose internals and explains the various node trees that are generated and maintained by our composable functions in a Compose UI project.
Other Interesting Links
- Aptabase Analytics for KMP/CMP Apps
- Medium: Compose Canvas : Understanding Shapes and Animations for beginners
- Medium: Navigation Drawer APIs in Material 3 Jetpack Compose
- Medium: Retain API in Jetpack Compose: A Smarter Way to Manage State
- Medium: Stranger Things Upside-Down Compose Modifier using AGSL
- Medium: Using Jetpack Compose in WindowManager Overlays: A Case Study
- Modernize your Kotlin Multiplatform architecture with Circuit, Compose, and SwiftUI – Part 1
Resource Roundup
100% pure code!
Sigil
GitHub user codeyousef previously built Materia, a KMP library for building 3D scenes rendered by WebGPU/Vulkan. Sigil is a Compose wrapper around Materia, leveraging Compose’s state-and-snapshot system but for rendering 3D using Materia.
GitHub: YazanAesmael / JetOverlay
GitHub user YazanAesmael brings us a library that lets us build an Android system overlay using composables. It supports drag-based positioning, support for multiple overlays
GitHub: pascaladitia / FloatingWidgetCompose
Pascal Aditia Muclis also brings us a library that lets us build an Android system overlay using composables.
Other Interesting Links
- GitHub: angryPodo / Wisp (annotation-based deeplink support for Compose for Android)
- GitHub: fuyuz / svg-icon-compose (SVG-powered image code generation for Compose Multiplatform)
- GitHub: l2hyunwoo / compose-camera (wrapper around CameraX and AVFoundation for camera support in Compose for Android and Compose for iOS)
- GitHub: mrkivan / android-compose-ui-lib (MVVM layer and misc utilities for Compose for Android)
- GitHub: yasanglass / kepko (design system for Compose Multiplatform)
- GitHub: youseflabs-k / screenutils-compose (“design-perfect scaling” for Compose for Android)
Notable Releases
Compose Unstyled is up to 1.49.4.
This release adds auto-size support to Text() and fixes a smattering of bugs.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-12-23: Compose and Compose Multiplatform alphas! RemoteCompose alpha! Apple TV! Multiplatform WebViews and PDFs! And I'll see you next in 2026!
- 2025-12-16: Compose Multiplatform RC! XR! Nav3! Shared element transitions! Malware in Compose GitHub repos! 😞 And... React Native in Compose?!?
- 2025-12-09: Compose for Android 1.10.1! Compose Multiplatform 1.10.0-rc01! Nav3! Pausable compositions! Multiplatform haptics! And... some days, you just can't get rid of a BOM (though perhaps you should).