← All release notes
Jetpack ComposeCompose 2025Nov 12, 2025 · 5 min read

Jetpack Compose: The 2025 Releases

Compose 2025 brings Material 3 Expressive, auto-sizing text, and a stable Compose Multiplatform iOS target.

2024 closed feature gaps. 2025 is polish and multiplatform maturity: a new expressive design language for Material 3, text that sizes itself to fit, and Compose Multiplatform's iOS target graduating out of Beta.

#Material 3 Expressive

Material 3 Expressive is a big update to the Material Design system. Expanded color roles, new and updated component shapes, and motion built around a defined motion system instead of ad-hoc animation specs per component. It's a design-system update as much as an API one. You adopt new component variants and shape/color tokens, not new composable types to learn.

One catch outweighs the rest. It changes the default look of stock Material 3 components, so rolling it out is a design decision you make with your product team, not a silent library bump.

#Auto-sizing text

Text composables can now shrink font size automatically to fit available space. The hand-rolled version is familiar: measure the text, binary-search a font size that fits, hope nothing changes.

Text(
    text = headline,
    autoSize = TextAutoSize.StepBased(),
    maxLines = 2
)

Reach for it when a headline or title composable truncates awkwardly. If you already have a manual measure-and-shrink loop, this is a direct replacement for it. Check the exact API shape against current docs before shipping, since text-sizing APIs like this tend to gain parameters across point releases.

#Compose Multiplatform for iOS reaches stable

JetBrains moved the iOS target of Compose Multiplatform from Beta to a stable 1.0 release. Sharing Compose UI between Android and iOS is now a production-ready API surface rather than a preview.

For Android-focused teams, that's the moment "should we share UI code with iOS" becomes a real build-vs-buy evaluation instead of a bet on unfinished tooling.

Stable doesn't mean identical to fully native iOS in every respect. The usual multiplatform tradeoffs around platform-specific polish still apply.

#Continued recomposition and prefetch performance work

The runtime keeps narrowing the gap between what changed and what actually recomposes. Two threads of work here: lazy-list prefetching, and pausable composition, which breaks composition work into resumable chunks so a big first frame doesn't block the UI thread as visibly.

None of this changes how you write composables. It shows up as fewer dropped frames on the same code, mostly on lower-end devices scrolling long lists.

#A Compose-first navigation library in early preview

Google previewed a rebuilt navigation library. It sits closer to Compose's declarative model than the existing Navigation Compose artifact, which was originally adapted from the View-based Navigation component. The targets are longstanding friction points: type-safe back stack manipulation, and multi-pane navigation for large screens.

It's an early preview in this window. Worth watching, given the large-screen push across the platform. Not yet a replacement for androidx.navigation.compose in production apps, so check its current stability level before committing.

#What to adopt first

  • Auto-sizing text is a safe, incremental adoption anywhere you're currently hand-rolling font-size-fitting logic. Low risk, clear payoff.
  • Material 3 Expressive is a product decision, not just an engineering one. It changes the default appearance of stock components, so scope it as a design refresh with your design team rather than a routine dependency bump.
  • Compose Multiplatform for iOS going stable is worth a serious look if multiplatform has been on your roadmap and you were waiting for the Beta caveats to clear. Validate it against your app's specific native-integration needs before committing a migration.
  • The new navigation library is not yet a production dependency. Track it, don't build on it, until it reaches at least Beta.