r/JetpackCompose

▲ 1 r/JetpackCompose+1 crossposts

Recently I was trying to understand why Android actually needed Jetpack Compose, beyond just “XML replacement”.

Compose did NOT replace Android’s rendering system.

Skia, rendering pipeline, GPU acceleration, layout/draw phases still exist underneath.

What Compose really changed was:
how UI descriptions and updates are managed.

Traditional Android:

  • mutate View objects manually

Compose:

  • rerun UI functions from state

That realization suddenly made recomposition/runtime/compiler make much more sense to me.

I wrote down the architecture evolution here if anyone finds this topic interesting:
https://medium.com/@tarun00/why-android-needed-jetpack-compose-fb46e84b0002

reddit.com
u/Critical-Living-7404 — 22 hours ago

How do I enable predictive back animation only for back-to-home and disable it between Compose destinations?

Hi everyone!

I'm working on an Android app built with Jetpack Compose and Navigation Compose. With the latest dependencies, the predictive back animation is enabled by default on the NavHost.

What I want

  • Enable the predictive back gesture for the back-to-home action (when the user is on the start destination and swipes back to leave the app).
  • Disable the predictive back animation when navigating between composable destinations inside the app. (i have a single activity architecture)

What I tried:

I set popEnterTransition and popExitTransition on the NavHost to EnterTransition.None and ExitTransition.None. This works as a baseline, but the problem is that any individual composable() destination that defines its own popEnterTransition or popExitTransition will override the NavHost defaults.

I couldn't find a global switch in Jetpack Compose to disable the in-app predictive back animation while keeping the system-level back-to-home one. It feels like an all-or-nothing setup right now.

My question:

Is there a clean way to opt out of the predictive back animation for in-app navigation only? Some kind of NavHost-level flag, or a different approach I'm missing?

Thanks in advance for any pointers.

reddit.com
u/____Mattia____ — 23 hours ago
▲ 17 r/JetpackCompose+1 crossposts

Backdrop-blur library for Compose Multiplatform with an auto-tier that no-ops on low-RAM devices instead of OOMing. Looking for API feedback.

Hi all, I just open-sourced liquid-glass, a small Compose Multiplatform library for iOS 26-style frosted backdrop blur. Sharing here because the API design choice I made is the part I'd most like feedback on.

The problem: Compose's Modifier.blur blurs a composable's own content, not the backdrop. Chris Banes's haze library handles the backdrop-blur case cleanly. What I wanted on top of that was graceful degradation on memory-constrained devices, because the iOS 26 effect chews through GPU memory on a 2GB Android 11 device.

The approach: three explicit quality tiers, auto-picked per platform.

- Full on Android 12+ (non-low-RAM) and iOS 17+: 24dp blur, 1.4x saturation, full-res backdrop layer.

- Medium on iOS 15-16: 16dp blur, 0.5x downsampled backdrop.

- Fallback on Android < 12, isLowRamDevice, or iOS < 15: zero offscreen buffers, no blur, flat tint with edge sheen.

The Fallback tier allocates zero GraphicsLayers. The same code that draws frosted glass on a Pixel 9 quietly draws a tint on a 2GB device with no OOM, and no per-call-site branching.

API surface: rememberLiquidGlassState() + Modifier.liquidGlassSource() + Modifier.liquidGlass() / GlassCard / GlassButton / GlassNavBar.

What I'd like feedback on:

  1. Is the platform auto-detection sensible, or should the tier always be explicit at the call site?

  2. Are Full / Medium / Fallback the right names, or should they be capability-named (e.g., FullBlur / DownsampledBlur / FlatTint)?

  3. Anything obviously missing from the API for KMP backdrop-blur use cases?

Apache 2.0, on Maven Central as 0.1.0. Repo: https://github.com/NadeemIqbal/liquid-glass

u/DistributionOk9460 — 2 days ago
▲ 21 r/JetpackCompose+1 crossposts

Compose BOM changelog — see exactly what changed between versions

Hey everyone,

Tired of manually checking what changed between Compose BOM versions, I built a small tool: compose-bom.com

Pick two BOM versions and it shows you which libraries were added, updated, or removed — with links to the actual release notes.

Also added llms.txt support so the data is easy to consume with AI tools and LLM-powered workflows.

Static site, no backend. Source is on GitHub: github.com/keymusicman/compose-bom-changelog

If you find it useful — or have ideas for what's missing — comments and feedback are more than welcome. Stars are appreciated too 😉

-----

If this turns out to be useful for the community, it'd be great to see something like this become part of the official Android docs. If you agree — let's make some noise.

https://preview.redd.it/sobsbrzcxo1h1.jpg?width=1248&format=pjpg&auto=webp&s=5493cfd547aaae2ab9577ba9b3019c555909f470

reddit.com
u/HawkSmall6923 — 3 days ago