Dinah's Favourite Talk: What's New in Compose Multiplatform: Better Shared UI for iOS and Beyond
by Sebastian Aigner & Márton Braun, JetBrains
With Compose Multiplatform (CMP), developers can build user interfaces for Android, iOS, desktop and the web – all using the same code, as the framework translates it for the respective platform. The whole thing runs on Kotlin Multiplatform (KMP), which is used to programme the business logic for each platform.
CMP can now be used in production on mobile devices (Android & iOS) and on desktop. CMP for Web is currently in beta.
The latest CMP features were presented at this talk. In fact, new features and APIs from Jetpack Compose (the Android UI framework) are now making their way into CMP within about three to five weeks. For all four platforms. This pace is impressive and is an huge benefit to developers to developers like us who want to keep their projects up to date.
First, the two speakers mentioned Navigation 3 . We had already successfully used Google’s new navigation library for Jetpack Compose in a KMP project, so the content was nothing new to us. However, it’s great that the library is now fully usable across all platforms.
In KMP projects, there is a new project structure designed primarily to ensure that each module has a clearly defined responsibility and a single purpose. The structure should be as consistent as possible, and it should be easy for developers to further modularise the project. Furthermore, Compose Hot Reload is now directly integrated into the Gradle plugin and no longer needs to be installed separately by developers. Yay!
Overall, it’s clear that KMP and CMP are the main focus of JetBrains’ strategy. There are constant improvements to the tooling and APIs, and there are new features that are genuinely useful to us developers – our voices are being heard. The strategy seems to be working: there are now over 3,500 Kotlin libraries!
The part of the presentation I found most exciting, however, was about iOS (I know, shocking!). Apple’s new visual design system from iOS 26 onwards, Liquid Glass, differs significantly from Android Material 3 Expressive, Android’s design system (for more on Liquid Glass, see also our blog). As much as I, as an Android user, am a fan of Material 3 Expressive: if an iOS user uses a CMP app based exclusively on Compose, it looks rather alien because the familiar glass look is missing. It also behaves differently from native iOS apps in terms of usability, because some interactions do not work as usual.
JetBrains has now changed this: the most important native iOS components (tab bar, navigation bar and toolbars) can now be displayed with the Liquid Glass look.
With a new property, embedded native UIKit components can also be rendered on top of the Compose UI layer, thereby supporting transparent backgrounds and native shader effects. This means that even embedded native components fit seamlessly into the Liquid Glass UI.
The result: a CMP app that feels familiar to iOS users. Liquid Glass, or iOS 26, was released by Apple in mid-September 2025. I was impressed that JetBrains delivered support for Liquid Glass so quickly.
They also showed us some new features regarding text input on iOS. This now utilises native iOS components, which means that precise cursor movements are now visible in text input fields (e.g. in a text field or search bar) and gestures, selection functions and system context menus (‘AutoFill’, ‘Translate’ and ‘Share’, etc.) can be used natively. In addition, it is now possible to define a custom input view that replaces the standard keyboard – generally speaking, iOS apps now run more smoothly. In short, these are all implementations that significantly improve the look and feel of a CMP app for iOS users.
This talk was definitely a highlight for me. The fact that JetBrains (in collaboration with Google) is investing so heavily in the UX for iOS apps shows that KMP and CMP are no longer just experimental playgrounds, but the strategic approach that Android developers can use today to build applications for all platforms. With a single shared codebase and virtually no compromise on the native feel. I like!