Highlights
- Resource library improvements (demo project)
- Experimental support is available for tests in common code
- Compose for Web (Wasm) artifacts are available in Maven Central
- iOS. Native-like caret behaviour by long/single taps in textfields(1, 2)
- Support
LineHeightStyle.Trim
- Desktop. Proper clipping of
SwingPanel
interop (under an experimental flag, see the link) - Popups/Dialogs can now be displayed outside the main window or panel over native components on iOS and desktop (under experimental flags, see the links)
- Add a way to use fonts installed on the system (desktop/web in this version, iOS in the next version, Android isn't supported)
Breaking changes
- Text with
lineHeight
set is trimmed by default - Text with
fontSize
set withoutlineHeight
insideMaterialTheme
has different line height - Resource library (
compose.components.resources
) changes- resources from
*Main\resources
should be moved to*Main\composeResources\drawable
,commonMain\composeResources\font
or*Main\composeResources\files
depending on the resource type painterResource("resource.xml")
should be replaced bypainterResource(Res.drawable.resource)
- resources from
Known issues
compose.components.resources
library doesn't work yet if you applykotlin("jvm")
Gradle plugin. For now, it only works withkotlin("multiplatform")
Common
Features
iOS/desktop/web
Features
Fixes
- Optimise
TextLayoutResult#getLineForOffset
- Fix "SwingPanel/UIKitView doesn't apply Modifier.offset if it's after Modifier.size"
- DatePicker. Fix empty row
- DatePicker. Fix selection of the current day
- Fix
LayoutCoordinates.localToWindow
coordinates conversion for non-full Compose components
Breaking changes and deprecated API
- Deprecate
public ComposeScene
in favour of@InternalComposeUiApi MultiLayerComposeScene
- Hide deprecated DropdownMenu overloads
iOS
Features
Fixes
Desktop
Features
- Support select till the end of the file / till the start of the file keyboard actions on Windows
- Add LinuxArm64 target to Compose runtime
- Add dedicated feature flags class for desktop
Fixes
- Fix blurry app icon in the system application switcher
- Insert a new line on
NumPadEnter
- Don't restart the drag gesture when the
onDrag(matcher=
changes - Fix "BasicTextField NPE-crash on JBR 17.0.9 on Linux when clicked"
- Fix "Resizing window on desktop sometimes triggers onClick handlers of Composables"
- Fix "
ComposePanel
doesn't calculate its preferredSize correctly when it's called before doLayout" - Fix input methods on JBR, disable input methods when we lose focus
- Fix "BasicTextField could not input any Chinese character when using JBR"
- Take into account
enabled
inscrollable
for mouse input - Fix NPE for getComponentAfter/Before in ComposePanel
- Transparency support for D3D (previously it supported via fallback on OpenGL)
Web
Features
Fixes
HTML library
Features
Gradle Plugin
Features
Fixes
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries: