github JetBrains/compose-multiplatform v1.13.0-alpha01
1.13.0-alpha01

pre-release4 hours ago

Changes since 1.12.0

Known issues

Web

  • RuntimeError: memory access out of bounds error (YouTrack issue). Workaround is to disable the snapshot cache: ComposeUiFlags.useSnapshotCache = false

Highlights

Desktop

  • Implemented support for AppCDS and AOT, which can significantly speed up application startup #5644

Web

  • ComposeViewportConfiguration is no longer experimental #3297, #3300

Breaking Changes

Gradle Plugin

  • Deleted deprecated Compose Gradle Plugin API: compose.web.targets(...) #5685

Migration Notes

Multiple Platforms

  • Skottie is no longer included in the Skiko core binary and is no longer bundled with Compose Multiplatform. To continue using Skottie, add org.jetbrains.skiko:skiko-skottie to commonMain. If your project targets desktop, also add org.jetbrains.skiko:skiko-skottie-awt-runtime-all to desktopMain #3234
  • Removed ComposeUiFlags.useLegacyRenderNodeLayers flag used to revert legacy (pre 1.8) render node layers for cases without androidx.compose.ui.graphics.layer.GraphicsLayer #3213

Desktop

  • Renamed AlignedToScreen to AlignedToScreenAvailableBounds and CenteredOnScreen to CenteredInScreenBounds to clarify their behavior. CenteredInScreenBounds now actually centers on the screen (ignoring insets) #3291

Android

  • The minimum supported SDK is raised to 24 #3351

Features

HTML library

  • Add StyleScope.inset extension functions #5194

Multiple Platforms

  • Add support for mediaQuery calls which allows to modify Composables depending on device characteristics #3339

iOS

  • Use UIView layout and draw phases to run corresponding operation for Compose containers #3212
  • Added possibility to configure spellCheckingType for textfields with usingNativeTextInput = true via PlatformImeOptions #3305
  • Support iOS Dynamic Type font scaling based on accessibility settings #3306
  • Support preferred-size reporting for Compose hosting views (ComposeHostingView / ComposeHostingViewController) embedded in UIKit or SwiftUI through sizeThatFits proposals. Keep the default ComposeContainerConfiguration.preferredSizeReportingStrategy = PreferredSizeReportingStrategy.SizeThatFits, for UIKit and SwiftUI on iOS 16 and later. For SwiftUI on iOS < 16, use PreferredSizeReportingStrategy.IntrinsicContentSize #2984

Desktop

  • Added a new WindowPositionProvider.CenteredInScreenBounds(DpOffset) function that centers on the screen #3291
  • Disabled Swing double buffering to reduce memory footprint #3336
  • (prerelease fix) Bump Compose Hot Reload to 1.3.0-alpha01 #5683

Web

  • Added prefetching of LazyLayout items during browser idle times #2928
  • Added experimental support for system window insets on Web #3202
  • Added support to LazyLayouts to run some work without blocking current frame's painting #2929
  • Disposing Compose application automatically if parent container is destroyed #3242
  • Deprecate PointerIcon.Companion.fromKeyword and introduce equivalent PointerIcon helper function instead #3287
  • Add experimental API to render WebGL textures #3323

Gradle Plugin

  • Allow excluding libraries from the dependency compatibility check via compose { dependencyCompatibility { } } extension #5694

Fixes

Multiple Platforms

  • Fixes that GraphicsLayer with CompositingStrategy.ModulateAlpha does not apply alpha value without extra invalidation #3204
  • Fixed an issue in runComposeUiTest V2 when input events required waitForIdle to be processed #3302
  • Fix crash in cases when Skia returns null ColorFilter due to no-op parameter combination #3319

iOS

  • Fixed UIKit keyboard animation curve handling by converting UIKeyboardAnimationCurveUserInfoKey values to UIViewAnimationOptions #3183
  • Fix BasicTextField focus handoff between nested Compose iOS scenes #3203
  • Fixed the floating cursor no longer responding horizontally after a very quick swipe on iOS #3224
  • Fixed the caret not snapping to the nearest word boundary when tapping inside a word in an unfocused BasicTextField(TextFieldValue) #3229
  • Fixed the context menu appearing incorrectly after a tap in BasicTextField(TextFieldValue) and BasicTextField(TextFieldState) #3229
  • KeyboardOptions.autoCorrectEnabled = false now disables spell checking too (in addition to iOS autocorrection) in textfields with usingNativeTextInput = true #3305
  • Fix an issue where back-swipe progress could exceed its maximum when a gesture moved beyond the window bounds #3337
  • Fixed the system "Bold Text" accessibility setting not being applied to CJK characters when using FontFamily.Default #3325
  • Default Navigation3 push and pop transitions now follow the layout direction: in RTL layouts a push enters from the left edge and a pop reveals the previous entry from the right edge, matching native UINavigationController behavior #3346

Desktop

  • Made window resizing smooth on macOS when using Metal (the default renderer). To enable the fix, set the system property skiko.rendering.macos.metalSynchronousLiveResize to true. This will eventually become the default #3261
  • [macOS] Fixed the behavior of Ctrl+f/b in text fields (it was reversed) #3294
  • Fixed an issue that caused a background flash when a window was shown for the first time #3299
  • Made window resizing smooth on Windows when using Direct3D (the default renderer). To enable the fix, set the system property skiko.rendering.windows.direct3DSynchronousLiveResize to true. This will eventually become the default #3299
  • Fixed potential crash when the accessibility subsystem processes focusLost #3361
  • Fix crash when trying to set the content of an unavailable/busy clipboard #3364
  • Fixed SVG rasterization caching to properly reuse cached bitmap unless size changes #5639

Web

  • Show a meaningful message instead of an obscure app crash when the browser or device doesn't support WebGL2 #3222
  • Fix fast deletion in mobile browsers on iOS when using the Traditional Chinese Cangjie keyboard #3167
  • Fix fast deletion of text containing emojis in mobile browsers on iOS #3167
  • Introduce a fallback locale and handle malformed language tags #3241
  • Ensure canvas retains focus after backing HTML input removal #3246
  • Fix cursor control using spacebar sliding gesture in Firefox mobile #3273
  • Fix Tab focus order with interop elements #3249
  • Fixed outer HorizontalPager stealing the touch gesture from a nested HorizontalPager during a slow drag #3293
  • Fix blurred UI when zooming #3303
  • Support SemanticProperties.disabled in Compose Web a11y #3308
  • Fix incorrect a11y tree state after opening and closing a popup or dialog #3298
  • Fixed 1nMakeRasterN32Premul is not defined when running runComposeUiTest with JS #3316
  • Fix virtual keyboard hiding after tapping on a selection handle without moving it #3328
  • Support LinkAnnotation in a11y tree, so link nodes have role=link #3331
  • Fix LocalWindowInfo.current.isWindowFocused not updating when browser window focus changes on Web #3347

Android

  • Fixed rare InterruptedException crashes when reading resources during composition on an interrupted thread #5677

Resources

  • Return a default plural rule for unknown locales #5650
  • Fixed Android ANR when Dispatchers.Default is overloaded #5688
  • Fixed a Main thread deadlock when resources are read from blocking and non blocking coroutines #5691
  • Fix R8 release builds failing because the optional Android test instrumentation API is unavailable #5667

Navigation

  • Fix pop animations on iOS when custom enter/exit animations are set #3292

Components

Gradle plugin

org.jetbrains.compose version 1.13.0-alpha01

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.13.0-alpha01 Runtime 1.13.0-alpha02
UI org.jetbrains.compose.ui:ui*:1.13.0-alpha01 UI 1.13.0-alpha02
Foundation org.jetbrains.compose.foundation:foundation*:1.13.0-alpha01 Foundation 1.13.0-alpha02
Material org.jetbrains.compose.material:material*:1.13.0-alpha01 Material 1.13.0-alpha02
Material3 org.jetbrains.compose.material3:material3*:1.13.0-alpha01 Material3 1.5.0-alpha27
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-rc01 Material3 Adaptive 1.3.0
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0 Lifecycle 2.11.0
Navigation org.jetbrains.androidx.navigation:navigation-*:2.10.0-beta01 Navigation 2.10.0
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.2.0-beta01 Navigation3 1.2.0-beta01
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

Don't miss a new compose-multiplatform release

NewReleases is sending notifications on new releases.