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.

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.

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.