github JetBrains/compose-multiplatform v1.11.0-alpha04
1.11.0-alpha04

pre-release7 hours ago

Changes since 1.11.0-alpha03

Breaking Changes

Multiple Platforms

  • To decouple common Compose graphics APIs from direct Skia/Skiko types, non-Android Shader is now a dedicated Compose wrapper type. Since it's not an ABI-compatible change, you might need to update some libraries that use this API to newer, compatible versions. Migration: #2810
    • If you pass raw Skia/Skiko shaders into Compose APIs, wrap with SkShader.asComposeShader().
    • If you need low-level Skia/Skiko access from Compose Shader, use Shader.skiaShader extension.

Migration Notes

Multiple Platforms

  • Key.Home has been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. Use Key.MoveHome instead #2801
  • androidx.compose.ui.graphics.NativePaint and androidx.compose.ui.graphics.NativeCanvas typealiases are deprecated, use direct references to native types instead #2802
  • Paint.asFrameworkPaint() was replaced with Paint.skiaPaint extension to avoid exposing a platform type into commonMain sourceset via typealias #2802
  • RenderEffect.asSkiaImageFilter() was replaced with RenderEffect.skiaImageFilter extension to avoid exposing a platform type into commonMain types #2809
  • Deprecate Canvas.nativeCanvas extension in favor of Canvas.skiaCanvas to avoid ambiguity #2809

Web

  • Kotlin 2.3.10 or newer is required to use Compose Multiplatform with Kotlin/Wasm target #2790

Features

Multiple Platforms

  • Update skia to m144 #2779

iOS

  • Adds an opt-in Native iOS Text Input mode for Compose BasicTextField (both TextFieldValue and TextFieldState) enabled via PlatformImeOptions.usingNativeTextInput(enabled) in iOS source set #2602
  • With the native iOS text input flag set to true, BasicTextField uses native UIKit editing and interaction, including: #2602
    • Native caret placement and movement (tap-to-place caret, spacebar caret movement, “ghost caret”)
    • Native magnifier
    • Native selection gestures (double-tap word selection, triple-tap paragraph selection) and iOS-like selection UI (region + handles)
    • Native context menu behavior is supported for both the legacy and the new context menu (isNewContextMenu = true) configurations.
    • Native context menu behavior when interacting with the caret, selection region, or selection handles
    • Native text field context menu actions (e.g. Translate, Look Up, Share) (not available without this mode)
    • Autocorrect / typo replacement support
    • Autofill support for text fields, including filling from saved passwords one field at a time
  • Support automatic sizing for Auto Layout–based views together with supporting explicit remeasurement via rememberUIKitInteropRemeasureRequester() + Modifier.remeasureRequester(...) with UIKitInteropRemeasureRequester.requestRemeasure() for propagating UIKit-side size changes to Compose #2797

Desktop

  • New compile-time warnings for invalid ui/menu composable mixing that previously failed only at runtime #2777

Web

  • Add isClearFocusOnMouseDownEnabled in ComposeViewportConfiguration to configure the focus behaviour on mouse press #2781

Gradle Plugin

  • Add a compatibility check for skiko libraries to ensure consistency #5541

Fixes

iOS

  • Fix traffic lights overlapping content on iPad by adopting the new iOS 26 LayoutRegion API #2555
  • The haptic feedback when selecting text now works closer to the way it does with iOS text fields #2786

Desktop

  • Correctly react to numpad arrows, NumPadPageUp, NumPadPageDown, NumPadHome and NumPadEnd keys in text fields #2800
  • (prerelease fix) Fixed a11y crash when focused element is removed #2803
  • Match key modifiers exactly (without ignoring the state of other modifiers) when determining the corresponding text field action/command. This also fixes inputting 'a' and 'z' diacritics (e.g. 'ą' and 'ż') in text fields on Windows #2804
  • Fix the condition for hiding the tooltip in a TooltipArea on a pointer-exit event while the pointer is still inside the area #2798
  • (prerelease fix) Fix black rectangle remaining after removing/hiding SwingPanel #2821
  • Some key shortcuts (e.g. shift-backspace, shift-delete on macOS) that previously didn't work in text fields now perform the correct action #2827

Web

  • (pre-release) Make canvas focused so it receives key events (e.g. ESC) #2796
  • Unified touch and pointer event handling for better consistency and performance on Web #2799
  • Fix Magic mouse behaviour in Safari and Firefox #2811

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-alpha04

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-alpha04 Runtime 1.11.0-alpha06
UI org.jetbrains.compose.ui:ui*:1.11.0-alpha04 UI 1.11.0-alpha06
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-alpha04 Foundation 1.11.0-alpha06
Material org.jetbrains.compose.material:material*:1.11.0-alpha04 Material 1.11.0-alpha06
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha04 Material3 1.5.0-alpha15
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha06 Material3 Adaptive 1.3.0-alpha09
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha01 Lifecycle 2.11.0-alpha01
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-alpha04 Navigation3 1.1.0-alpha05
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-alpha01 Navigation Event 1.1.0-alpha01
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

Don't miss a new compose-multiplatform release

NewReleases is sending notifications on new releases.