jetc.dev Newsletter Issue #292
Published: 2025-12-02
This week, we look at performance and memory leaks, hot-reload our composables, and take a closer look at HERE. Plus, while some extol the virtues of RemoteCompose, “I’ve seen this film before, and I didn’t like the ending”.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
None of the Stack Overflow questions this week seemed compelling. 😞
Can Composables See the Nav3 Scene Strategy?
Nav3 offers scene strategies, with an eye towards adaptive layouts, where composables render
in different spaces (or not at all) based on screen size. However, in addition to macro-level
adaptivity, a composable might want to do some micro changes based on layout (e.g., as a detail
pane instead of full-window). Learn how to accomplish that in this week’s highlighted
Kotlinlang #compose Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Deeper Performance Considerations
Google’s Breana Tate, Ben Weiss, and Jossi Wolf write about performance optimization in Android apps. This includes material on how the Compose UI framework team has used tools like macrobenchmark to identify jank and guide where to tune things.
Video: Low effort, High impact Android performance wins
Google’s Ben Weiss and Ajesh Pai delivered a presentation at droidcon London 2025, also on app performance. A portion of the presentation covers Compose-related concerns, alongside material on more general Android app development.
Medium: How Replacing One Component Cut My App’s Main Thread Work by 30%
Medium user Harrisonkuria also writes about performance, walking through an analysis of
a specific performance challenge. In this case, the solution was to replace a Compose Material3
Card() with a simple Box(), trading off Material3 flexibility for improved
performance.
Medium: Memory Leaks in Jetpack Compose: A Technical Deep Dive
Akshay Nandwana (Bluesky) explores what can leak in your composables (e.g., viewmodels holding lambdas supplied by composables), how to detect them, and some patterns for trying to avoid them in the first place.
Medium: Why Your Beautiful Custom 😎 Will Break TextField in Jetpack Compose (and How We Finally Fixed It)
Medium user Fail writes about the challenges in replacing Android-supplied emojis (from
the Noto Color font) with alternative representations. This is fairly easy when rendering
text but a much bigger challenge with BasicTextField() and composables built atop of it.
Medium: RemoteCompose: Another Paradigm for Server-Driven UI in Jetpack Compose
Jaewoong Eum (Mastodon, Bluesky) writes about what the pre-alpha RemoteCompose framework is about and how it could be applied to many scenarios, from server-defined UIs to A/B testing to replacing feature flags.
Other Interesting Links
- Medium: 3D Spherical Projection Animation — Jetpack Compose
- Medium: A Premium Frosted Glass Effect for Jetpack Compose (No Blur Needed)
- Medium: Android Animations in Compose: Animating Content and Screen Swaps (Part 5)
- Medium: Android TV — D-Pad Navigation Handling (Jetpack Compose) Part-5
- Medium: Beginner Mistakes in Jetpack Compose (and How to Avoid Them) — Part 1
- Medium: Building a Kotlin Compose Web Playground: Why It’s Harder Than You Think (and How to Make It Fast)
- Medium: How lifecycle complexity affects Jetpack Compose
- Medium: Mastering Precision Overlays in Jetpack Compose: From onGloballyPositioned to onLayoutRectChanged
- Medium: Ship Android, iOS & Web Apps in Days with Compose Multiplatform: The Ultimate GTM Stack
- Medium: The Real Challenges of Migrating an Existing Screen to Jetpack Compose
- Medium: The Story Behind SmoothBottomNavigation-JetpackCompose And Why I Ended Up Building It Myself
- Medium: Understanding remember in Jetpack Compose: When to Cache, When to Recompute
- Video: Chasing 60 FPS: Frame Time Profiling in Jetpack Compose
- Video: Form Frenzy to Form Framework
- Video: From Debugging to Real-World Tuning: A Practical Guide to Compose Performance
Resource Roundup
100% pure code!
Compose Hot Reload 1.0.0
Compose Hot Reload reached a 1.0.0 stable release, to speed up development of Compose
Multiplatform UIs.
HERE Maps in Compose for Android
HERE SDK is another mapping solution, and the HERE team has published instructions for
using AndroidView() to wrap their MapView in a composable.
FlowTab-CMP
GitHub user Alims-Repo createdn a library implementing a bottom tab navigation bar for Compose Multiplatform, supporting Android and iOS. It offers an integrated search field, optional glassmorphism effects, badges on tabs, and more.
Other Interesting Links
- GitHub: alex3236 / lucide-compose (Lucide icons for Compose Multiplatform)
- GitHub: x-sheep / compose-lightbox (lightbox UI for Compose for Android)
Notable Releases
Compose Unstyled is up to 1.49.3,
allowing greater customization of platform themes and fixing some bugs.
…And One More Thing
I think that RemoteCompose has very interesting potential. But, we have been burned before, so I encourage caution for those considering adopting it.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-11-25: Compose patch release! Compose RC! Nav3 is stable! Compose Multiplatform beta! Media3! And... can we compose all our appointments?!?
- 2025-11-18: Text input! Expressive Wear OS! Mixed Espresso and Compose tests! Forms! Time ranges!
- 2025-11-11: Compose beta! Compose Multiplatform patch release and beta! Coil and SVGs! Compose Stability Analyzer! And... is this the end of Redwood?!?