Releases: JetBrains/compose-multiplatform
Releases · JetBrains/compose-multiplatform
1.12.0-alpha01
Changes since 1.11.0
Migration Notes
Desktop
- The
backgroundparameter ofSwingPanelhas been deprecated. Instead set the background manually in thefactorymethod. There's a new (experimental)Color.toAwtColor()function to convert Compose color objects to AWT ones #3024
Features
Multiple Platforms
- Update Skia to m148 #3028
- Add
blockPointerInputOutsideflag toPopupPropertiesto support not-blocking pointer inputs outside of focusablePopups #2992
iOS
- Support
LiveRegionsemantics in Accessibility #2944 - The selection handles now match the style of iOS #2991
Desktop
- The parent AWT window of a composition is now available via
LocalAwtWindow.current#3007 - Implemented a new, experimental,
WindowStateAPI #2938
Web
- Support for Modifier.keepScreenOn for web using Screen Wake Lock API #2784
- Support haptic feedback on web targets #3045
Navigation
- Improved iOS specific default navigation transactions in Nav2 #3023
- Web and Desktop default navigation transactions are set to
Nonein Nav2 #3023
Fixes
iOS
- Fix a conflict with external bundled Skia libraries #3008
- Fix incorrect scaling and positioning of interop
UIKitView/UIKitViewControllerelement whenLocalDensityis modified. This change does not affect scaling offactorycontent:UIView/UIViewController#3037 - Fix issue where
BasicTextFieldreported inconsistent changes between Android and iOS #2990 - Fix issue where a
BasicTextFieldwithInputTransformationmay use the incorrect internal text state #2990 - Fix elements selection with Full Keyboard Access #3038
Desktop
- [
ComposePanelin Swing rendering mode] Fix Metal offscreen rendering crash when drawing to a Software renderer #3008 - Fix
SwingPanelsize not scaling according toLocalDensity. Note that this doesn't scale the Swing content of theSwingPanel#3033
Components
Gradle plugin
org.jetbrains.compose version 1.12.0-alpha01
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.12.0-alpha01 |
Runtime 1.12.0-alpha02 |
| UI | org.jetbrains.compose.ui:ui*:1.12.0-alpha01 |
UI 1.12.0-alpha02 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.12.0-alpha01 |
Foundation 1.12.0-alpha02 |
| Material | org.jetbrains.compose.material:material*:1.12.0-alpha01 |
Material 1.12.0-alpha02 |
| Material3 | org.jetbrains.compose.material3:material3*:1.12.0-alpha01 |
Material3 1.5.0-alpha19 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-beta01 |
Material3 Adaptive 1.3.0-beta01 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01 |
Lifecycle 2.11.0-beta01 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.10.0-alpha01 |
Navigation 2.10.0-alpha03 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.1 |
Navigation3 1.1.1 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0 |
Navigation Event 1.1.1 |
| 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 |
1.11.0
Changes since 1.10.3
Breaking Changes
Multiple Platforms
- To decouple common Compose graphics APIs from direct Skia/Skiko types, non-Android
Shaderis 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.skiaShaderextension.
- If you pass raw Skia/Skiko shaders into Compose APIs, wrap with
iOS
DialogandPopupcontainer views are now located on a system transition view above the root view controller, but below modally presented view controllers. This may affect presentation of interop view controllers #2833
Migration Notes
Multiple Platforms
- The project has migrated to Kotlin language version and API version
2.2. The projects depending on Compose Multiplatform need to use the same version or newer #2614 navigation-runtime,navigation-commonno longer provideandroidx.collectionas anapitransitive dependency. If your project doesn't compile with unresolvedandroidx.collection...classes addimplementation("androidx.collection:collection:1.5.0"). This change is required to avoid differences with the original Jetpack libraries and allow reusing the same code without additional changes needed #2749- Kotlin 2.3 is required for native and web platforms #2755
Key.Homehas been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. UseKey.MoveHomeinstead #2801androidx.compose.ui.graphics.NativePaintandandroidx.compose.ui.graphics.NativeCanvastypealiases are deprecated, use direct references to native types instead #2802Paint.asFrameworkPaint()was replaced withPaint.skiaPaintextension to avoid exposing a platform type intocommonMainsourceset viatypealias#2802RenderEffect.asSkiaImageFilter()was replaced withRenderEffect.skiaImageFilterextension to avoid exposing a platform type intocommonMaintypes #2809- Deprecate
Canvas.nativeCanvasextension in favor ofCanvas.skiaCanvasto avoid ambiguity #2809 runComposeUiTest,runSkikoComposeUiTest,runDesktopComposeUiTestare deprecated in favor v2 versions #2919
iOS
parallelRenderingflag now enabled by default #2732- Compose Multiplatform doesn't support Apple x86_64 targets anymore due to deprecation in Kotlin #5514
Web
- Renamed
WebElementViewtoHtmlElementViewto better reflect its HTML-specific purpose #2636 WebElementViewhas been deprecated in favor ofHtmlElementView#2641- Kotlin 2.3.20 is required when using Compose Multiplatform with Kotlin/JS or Kotlin/Wasm #2918
Navigation
- A deprecated
suspend fun Window.bindToNavigationmethod has been removed #2675
Features
Multiple Platforms
- Clicking outside of any focusable node using the mouse will now clear focus from the currently focused node, if any. This behavior can be disabled by setting
isClearFocusOnMouseDownEnabled = falseinComposePanel,ComposeWindoworComposeDialog#2533 - Migrate window insets padding modifiers from
composedAPI toInsetsPaddingModifierNode#2572 - Add enter end exit animation for
Dialog. It can be disabled viaDialogProperties.animateTransitionor via global feature flagComposeUiFlags.isDialogAnimationEnabled#2596 - Update Skia to m144 #2779
- Support v2 Compose UI Tests APIs on non-android targets which uses
StandardTestDispatcherby default instead ofUnconfinedTestDispatcher#2919 - Support a customization of
effectContextin Compose UI tests #2919 - Implement drag-to-scroll in
SelectionContainer. When the mouse pointer is dragged outside the element while selecting text, the text element will be scrolled accordingly. Note that this requires wrapping the content in a scrolling container/modifier, e.g.Modifier.verticalScroll#2979
iOS
- Added a new
ComposeUIViewAPI enabling Compose embedding in view hierarchy #2589 - Add ability to adjust
isClearFocusOnMouseDownEnabledin theconfigurelambda when creating Compose components #2644 - Support semantics for links in text #2649
- Popups and Dialogs now use the same interface orientation and status bar behaviour as the root view controller on the window #2686
- Add support for tvOS Siri Remote button events (Select, Menu, Play/Pause) #2717
- Adds an opt-in Native iOS Text Input mode for Compose
BasicTextField(bothTextFieldValueandTextFieldState) enabled viaPlatformImeOptions.usingNativeTextInput(enabled)in iOS source set #2602 - With the native iOS text input flag set to
true,BasicTextFielduses 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(...)withUIKitInteropRemeasureRequester.requestRemeasure()for propagating UIKit-side size changes to Compose #2797
Desktop
- Allow specifying AWT
AccessibleRoledirectly viaSemanticsPropertyReceiver.awtRole#2577 - Menu items in the context menu for text fields and
SelectionContainercan now be disabled #2617 - Cleanup old unpacked binaries from
~/.skiko(this folder is used if the application is launched via./gradlew run). Useskiko.data.cleanup.daysto configure the retention period in days #2645 - It is now possible to configure the mouse-wheel propagation-to-parent behavior per
ComposePanelviaComposePanel.redispatchUnconsumedMouseWheelEventsflag #2659 - [Linux] Improve window dragging experience when using
WindowDraggableAreaon Linux with JetBrains Runtime #2674 singleWindowApplicationcontent's receiver now subclassesApplicationScopetoo, allowing to programmatically exit the app #2703- New compile-time warnings for invalid ui/menu composable mixing that previously failed only at runtime #2777
Web
- Add
isClearFocusOnMouseDownEnabledinComposeViewportConfigurationto configure the focus behaviour on mouse press #2781
Gradle Plugin
- Add a compatibility check for runtime libraries to ensure consistency with the expected Compose version [#5485](https://github.com/JetBrains/compose-multiplatform/pull...
1.11.0-rc01
Changes since 1.11.0-beta03
Features
Multiple Platforms
- (prerelease fix) The
isClearFocusOnMouseDownEnabledflag is nowfalseby default #3020
Fixes
Multiple Platforms
- Fix crash when selecting text right-to-left and then typing a character via IME #2983
- (prerelease fix) Fix memory leak during mutating
Pathafter migrating to skia m144 #2997
iOS
- (prerelease fix) Fix
WindowInsets.systemBarsadd extra horizontal insets on iOS 26.0 #3019
Desktop
- [
ComposePanelincompose.swing.render.on.graphicsmode] Fix Metal offscreen rendering crash when drawing to a Software renderer #3009
Web
- (prerelease fix) Fix handling Fast Delete in mobile browsers #2987
- [iOS] Fix virtual keyboard jumps after each tap. iOS 26.4 only #3013
- [Safari] Fix an issue where buttons required a second click to respond after performing drag-and-drop operations #3014
Components
Gradle plugin
org.jetbrains.compose version 1.11.0-rc01
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.11.0-rc01 |
Runtime 1.11.0 |
| UI | org.jetbrains.compose.ui:ui*:1.11.0-rc01 |
UI 1.11.0 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.11.0-rc01 |
Foundation 1.11.0 |
| Material | org.jetbrains.compose.material:material*:1.11.0-rc01 |
Material 1.11.0 |
| Material3 | org.jetbrains.compose.material3:material3*:1.11.0-alpha07 |
Material3 1.5.0-alpha17 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07 |
Material3 Adaptive 1.3.0-alpha10 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01 |
Lifecycle 2.11.0-beta01 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.1 |
Navigation3 1.1.1 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-rc01 |
Navigation Event 1.1.0 |
| 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 |
1.11.0-beta03
Changes since 1.11.0-beta02
Features
Multiple Platforms
- Implement drag-to-scroll in
SelectionContainer. When the mouse pointer is dragged outside the element while selecting text, the text element will be scrolled accordingly. Note that this requires wrapping the content in a scrolling container/modifier, e.g.Modifier.verticalScroll#2979
Fixes
Multiple Platforms
- Fix mouse-clicks being missed occasionally (typically when using Apple's Magic Mouse) #2975
- Fix crash when pressing up/down keys in an open context menu #2976
iOS
- (prerelease fix) Fix
UINavigationBarsafe area insets not included inWindowInsets.safeDrawing#2965 - (prerelease fix) Fix an issue where Compose content may become stretched after screen rotation #2968
- (prerelease fix) Fix
SegmentFrequentTickandSegmentTickhaptic feedbacks #2969
Desktop
- (prerelease fix) Bump Compose Hot Reload to 1.1.0-rc01 #5577
Web
- (prerelease fix) [iOS] Fix crash when using 'Fast delete': Cannot coerce value to an empty range: maximum -1 is less than minimum 0 #2964
- (prerelease fix) Fix
dragAndDropSourcecombined withclickabledoesn't allow to start drag #2974
Components
Gradle plugin
org.jetbrains.compose version 1.11.0-beta03
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.11.0-beta03 |
Runtime 1.11.0-rc01 |
| UI | org.jetbrains.compose.ui:ui*:1.11.0-beta03 |
UI 1.11.0-rc01 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.11.0-beta03 |
Foundation 1.11.0-rc01 |
| Material | org.jetbrains.compose.material:material*:1.11.0-beta03 |
Material 1.11.0-rc01 |
| Material3 | org.jetbrains.compose.material3:material3*:1.11.0-alpha07 |
Material3 1.5.0-alpha17 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07 |
Material3 Adaptive 1.3.0-alpha10 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha03 |
Lifecycle 2.11.0-alpha03 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.0 |
Navigation3 1.1.0 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-beta01 |
Navigation Event 1.1.0-rc01 |
| 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 |
1.11.0-beta02
Changes since 1.11.0-beta01
Migration Notes
Multiple Platforms
runComposeUiTest,runSkikoComposeUiTest,runDesktopComposeUiTestare deprecated in favor v2 versions #2919
Web
- Kotlin 2.3.20 is required when using Compose Multiplatform with Kotlin/JS or Kotlin/Wasm #2918
Features
Multiple Platforms
- Support v2 Compose UI Tests APIs on non-android targets which uses
StandardTestDispatcherby default instead ofUnconfinedTestDispatcher#2919 - Support a customization of
effectContextin Compose UI tests #2919
Fixes
Multiple Platforms
- (prerelease fix) Fixed a path regression where
PathMeasure.getSegment(..., startWithMoveTo = true)could produce incorrect results when reusing destination paths #2902 Ctrl+Home/Ctrl+EndorCmd+Home/Cmd+Endshortcuts should now work correctly in text fields #2931
iOS
- Fix an issue with scrolling when scrollable content is displayed in modal view controller #2883
- (prerelease fix) Fix crash during triple tap on empty textfield with
usingNativeTextInputflag enabled #2910 - (prerelease fix) Fix crash after applying autocorrection change or keyboard suggestion in
TextFieldwhenusingNativeTextInputflag is enabled #2921 - Fix crash caused by the missing symbol
UIWindowSceneGeometryon iOS 15 #2924 - (prerelease fix) Fix regression with the outdated and wrongly inserted keyboard suggestions in
BasicTextField(TextFieldValue)andBasicTextField(TextFieldState)#2925 - (prerelease fix) Fix missing handles and caret in
TextFieldon new line at the end of the text whenusingNativeTextInputflag is enabled #2908 - The structure of accessibility elements is now better aligned with Android semantic nodes #2916
- Fix issues with accessibility elements not focusing at runtime #2916
- (prerelease fix) Fix incorrect appearance of
Autofillcontext menu item in theBasicTextField(TextFieldValue)andBasicTextField(TextFieldState)#2937 - Fix
ModalBottomSheetDialogcontent inset calculation #2849
Desktop
- Fix memory leak in dialogs with non-default
compose.layers.typesetting #2864 - [Accessibility] Improve performance of traversal groups with a large amount of children #2900
- Clear some scheduled tasks on scene closure #2888
- (prerelease fix) Bump Compose Hot Reload to 1.1.0-beta02 #5569
Web
- Fix identity hash code not being correctly cached #2913
- [iOS] Fix 'Fast delete' not working correctly for text containing emojis #2927
Components
Gradle plugin
org.jetbrains.compose version 1.11.0-beta02
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.11.0-beta02 |
Runtime 1.11.0-beta02 |
| UI | org.jetbrains.compose.ui:ui*:1.11.0-beta02 |
UI 1.11.0-beta02 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.11.0-beta02 |
Foundation 1.11.0-beta02 |
| Material | org.jetbrains.compose.material:material*:1.11.0-beta02 |
Material 1.11.0-beta02 |
| Material3 | org.jetbrains.compose.material3:material3*:1.11.0-alpha06 |
Material3 1.5.0-alpha16 |
| 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-alpha03 |
Lifecycle 2.11.0-alpha03 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-rc01 |
Navigation3 1.1.0-rc01 |
| 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 |
1.11.0-beta01
Changes since 1.11.0-alpha04
Breaking Changes
iOS
DialogandPopupcontainer views are now located on a system transition view above the root view controller, but below modally presented view controllers. This may affect presentation of interop view controllers #2833
Fixes
Multiple Platforms
- Remove check for arbitrary transforms in
Matrixconversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android #2850
iOS
- Fix an issue where
PopupandDialogmay not close when clicked outside of their bounds #2815 - Fix crash caused by mouse hover #2834
- Fix an issue where the text cursor appeared in the wrong position when dragging it after selecting text #2833
- Fix an issue where selection handles were not rendered inside the magnifier #2833
- Fix an issue where popups and dialogs were displayed above a modally presented view controller #2833
- Traversal groups now convert into an additional node in the accessibility hierarchy #2848
- (prerelease fix) Fix issues with interop views addition and removal #2842
- (prerelease fix) Fix an issue where system context menu items (Look Up, Translate, Search, etc.) are not presented #2837
- Fix
Cmd + C(copy) event handling for the selected text wrapped inSelectionContainerwhen using a hardware keyboard #2872 - Fix the scrolling inertia issue when performing short scroll gestures #2851
- Fix an issue where a fling may occur unexpectedly when lifting a finger #2851
- (prerelease fix) Fix high memory consumption caused by the Compose container resizing when
parallelRenderingis enabled #2882
Desktop
- [Windows]
Alt-backspacenow correctly performs undo action #2870 - (prerelease fix) Bump Compose Hot Reload to 1.1.0-beta01 #5559
Web
- Fix incorrect mouse click detection #2844
- Fix an issue where wheel events reported incorrect mouse button state in Safari and Firefox #2844
- The browser now handles additional cut, copy, and paste keyboard shortcuts, such as
Shift+Insert#2871 - Fix an issue where "fast delete" action removed characters one by one instead of deleting whole words in text fields on iOS #2875
Components
Gradle plugin
org.jetbrains.compose version 1.11.0-beta01
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.11.0-beta01 |
Runtime 1.11.0-beta01 |
| UI | org.jetbrains.compose.ui:ui*:1.11.0-beta01 |
UI 1.11.0-beta01 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.11.0-beta01 |
Foundation 1.11.0-beta01 |
| Material | org.jetbrains.compose.material:material*:1.11.0-beta01 |
Material 1.11.0-beta01 |
| Material3 | org.jetbrains.compose.material3:material3*:1.11.0-alpha05 |
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-alpha02 |
Lifecycle 2.11.0-alpha02 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-beta01 |
Navigation3 1.1.0-beta01 |
| 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 |
1.10.3
Changes since 1.10.2
Fixes
Multiple Platforms
- Remove check for arbitrary transforms in
Matrixconversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android #2860
Components
Gradle plugin
org.jetbrains.compose version 1.10.3
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.10.3 |
Runtime 1.10.5 |
| UI | org.jetbrains.compose.ui:ui*:1.10.3 |
UI 1.10.5 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.10.3 |
Foundation 1.10.5 |
| Material | org.jetbrains.compose.material:material*:1.10.3 |
Material 1.10.5 |
| Material3 | org.jetbrains.compose.material3:material3*:1.10.0-alpha05 |
Material3 1.5.0-alpha08 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha02 |
Material3 Adaptive 1.3.0-alpha03 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0 |
Lifecycle 2.10.0 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.0.0-alpha06 |
Navigation3 1.0.0 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 |
Navigation Event 1.0.2 |
| 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 |
1.11.0-alpha04
Changes since 1.11.0-alpha03
Breaking Changes
Multiple Platforms
- To decouple common Compose graphics APIs from direct Skia/Skiko types, non-Android
Shaderis 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.skiaShaderextension.
- If you pass raw Skia/Skiko shaders into Compose APIs, wrap with
Migration Notes
Multiple Platforms
Key.Homehas been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. UseKey.MoveHomeinstead #2801androidx.compose.ui.graphics.NativePaintandandroidx.compose.ui.graphics.NativeCanvastypealiases are deprecated, use direct references to native types instead #2802Paint.asFrameworkPaint()was replaced withPaint.skiaPaintextension to avoid exposing a platform type intocommonMainsourceset viatypealias#2802RenderEffect.asSkiaImageFilter()was replaced withRenderEffect.skiaImageFilterextension to avoid exposing a platform type intocommonMaintypes #2809- Deprecate
Canvas.nativeCanvasextension in favor ofCanvas.skiaCanvasto 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(bothTextFieldValueandTextFieldState) enabled viaPlatformImeOptions.usingNativeTextInput(enabled)in iOS source set #2602 - With the native iOS text input flag set to
true,BasicTextFielduses 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(...)withUIKitInteropRemeasureRequester.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
isClearFocusOnMouseDownEnabledinComposeViewportConfigurationto 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
LayoutRegionAPI #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,NumPadHomeandNumPadEndkeys 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
TooltipAreaon 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 |
1.10.2
Changes since 1.10.1
No Compose Multiplatform specific changes
Components
Gradle plugin
org.jetbrains.compose version 1.10.2
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.10.2 |
Runtime 1.10.4 |
| UI | org.jetbrains.compose.ui:ui*:1.10.2 |
UI 1.10.4 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.10.2 |
Foundation 1.10.4 |
| Material | org.jetbrains.compose.material:material*:1.10.2 |
Material 1.10.4 |
| Material3 | org.jetbrains.compose.material3:material3*:1.10.0-alpha05 |
Material3 1.5.0-alpha08 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha02 |
Material3 Adaptive 1.3.0-alpha03 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-beta01 |
Lifecycle 2.10.0 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.0.0-alpha06 |
Navigation3 1.0.0 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 |
Navigation Event 1.0.2 |
| 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 |
1.11.0-alpha03
Changes since 1.11.0-alpha02
Migration Notes
Multiple Platforms
navigation-runtime,navigation-commonno longer provideandroidx.collectionas anapitransitive dependency. If your project doesn't compile with unresolvedandroidx.collection...classes addimplementation("androidx.collection:collection:1.5.0"). This change is required to avoid differences with the original Jetpack libraries and allow reusing the same code without additional changes needed #2749- Kotlin 2.3 is required for native and web platforms #2755
iOS
parallelRenderingflag now enabled by default #2732
Features
iOS
- Add support for tvOS Siri Remote button events (Select, Menu, Play/Pause) #2717
Desktop
singleWindowApplicationcontent's receiver now subclassesApplicationScopetoo, allowing to programmatically exit the app #2703
Fixes
iOS
- Fix crash when manually posting
UIKeyboardWillHideNotificationwithoutuserInfo#2713 - Fix an ability to use
scrollsToTopfor nativeUIScrollViews #2705 - (prerelease fix) Fix an issue where manually overriding the user interface style does not propagate properly to the
LocalSystemTheme#2735 - Fix crash in
MetalRedrawerthat occurs whenPopuporDialogbox opens and closes quickly #2756 - Fix hit test for Accessibility Elements #2760
- Fix crashes when
parallelRenderingis enabled #2732 - Fix issues with custom context menu items on iOS 15 or earlier #2771
Desktop
- Fix accessibility focus continuing to highlight a removed element #2695
- [macOS] Fix Wubi input for
(Basic)TextField(TextFieldValue)#2722 - [macOS, accessibility] Fix VoiceOver sometimes "clicking" the wrong button when a button click is triggered by the user #2720
- #2680
- Fix
TextFieldaccessibility issue wherecontentDescriptionwas ignored by screen readers (VoiceOver).TextFieldnow properly usescontentDescriptionas the accessible name/label, making forms usable with assistive technologies #2680 - The coroutine context of
launchApplicationandawaitApplicationis now correctly used in windows and dialogs of the application #2742 - (prerelease fix) Fix
SwingPanelnot being visible at all #2751 - Fix an issue with "Pinyin - Simplified" input in
BasicTextField(TextFieldState)when the temporary (composed) english text was not removed when the composition is committed #2763 - Fix incorrect pointer Enter/Move events sometimes being sent immediately following the mouse pointer exiting the compose scene #2750
- (prerelease fix) Bump Compose Hot Reload to 1.1.0-alpha05 #5530
Web
- Adjust HTML hierarchy for proper interop container location outside the shadow DOM #2710
- Fix mouse wheel scrolling on web by accounting for screen density #2724
- Ignore duplicate mouse events following touch events on web to avoid unintended clicks #2741
- Fix Apple Magic mouse behavior #2748
- Fix too early tap detection on web during scrolling #2753
- Fix sudden scroll stops during fast gestures #2759
- Support cursor control using space bar sliding gesture on Android Web #2762
- Fix scrolling sudden stops or speed-ups in web apps #2764
- Improvements of the Web scroll behavior #2766
Components
Gradle plugin
org.jetbrains.compose version 1.11.0-alpha03
Libraries
| Library group | Coordinates | Based on Jetpack |
|---|---|---|
| Runtime | org.jetbrains.compose.runtime:runtime*:1.11.0-alpha03 |
Runtime 1.11.0-alpha05 |
| UI | org.jetbrains.compose.ui:ui*:1.11.0-alpha03 |
UI 1.11.0-alpha05 |
| Foundation | org.jetbrains.compose.foundation:foundation*:1.11.0-alpha03 |
Foundation 1.11.0-alpha05 |
| Material | org.jetbrains.compose.material:material*:1.11.0-alpha03 |
Material 1.11.0-alpha05 |
| Material3 | org.jetbrains.compose.material3:material3*:1.11.0-alpha03 |
Material3 1.5.0-alpha14 |
| Material3 Adaptive | org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha05 |
Material3 Adaptive 1.3.0-alpha08 |
| Lifecycle | org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha08 |
Lifecycle 2.10.0 |
| Navigation | org.jetbrains.androidx.navigation:navigation-*:2.9.2 |
Navigation 2.9.7 |
| Navigation3 | org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-alpha03 |
Navigation3 1.1.0-alpha04 |
| Navigation Event | org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 |
Navigation Event 1.0.2 |
| 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 |