Releases: JetBrains/compose-multiplatform
1.8.0-dev1873
Update Android target SDK to 35 (#5152) Should fix ``` Dependency 'androidx.compose.foundation:foundation-android:1.8.0-alpha02' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs. ```
1.7.0-rc01
Changes since 1.7.0-beta02
Highlights
Web
skiko.js
is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files.skiko.js
will be removed from the k/wasm distribution in the future releases.skiko.js
is still needed in case of K/JS Compose Multiplatform for web apps
Features
Multiple Platforms
Desktop
- (prerelease fix) The
decoration
parameter added toWindow
andDialogWindow
and the APIs related to it are now marked as experimental
Gradle Plugin
Fixes
Multiple Platforms
- (prerelease fix) Fix possible infinity invalidation loop triggered by
GraphicsLayer.record
- Fix changing
FontRenderingSettings
is not reflected until composition restarts
iOS
- (prerelease fix) Fix "
ListDetailPaneScaffold
from material3-adaptive throws ArrayIndexOutOfBoundsException" - (prerelease fix) Fix "White bars on sides on some devices"
- Fix offset issues with keyboard and
TextField
- Fix "Incorrect
imePadding
and high cpu usage when repeatedly opening and closingKeyboard
on iOS" - Fix "Selection handlers in wrong positions in a fullscreen TextField"
- Fix keyboard closing while scrolling content with Text Fields
- (prerelease fix) Fix missing interop views with new
onReset
argument and placing inside more complex reusable layout insideLazy*
lists - (prerelease fix) Fix selection handlers height for
BasicTextField
on iOS - (prerelease fix) To avoid
Symbol not found: _objc_release_x8
crash on iOS 15 simulators, skia has been re-built with downgraded Xcode (13.1) - Fix "UriHandler.openUri no longer works on iOS 18"
Desktop
- Fix bounds of
ComposePanel
in IntelliJ on macOs - Fix UI glitch when resizing a Compose window via its
WindowState
Web
Android
- (prerelease fix) Fix "Compose UI test error on android: No static method forceEnableAppTracing"
- (prerelease fix) Fix "Android target depends on prerelease versions"
Navigation
- (prerelease fix) Fix
IllegalArgumentException
on putting lists intosavedStateHandle
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-rc01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.2
. Based on Jetpack Lifecycle 2.8.4 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10
. Based on Jetpack Navigation 2.8.0-rc01 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-rc01
. Based on Jetpack Material3 Adaptive 1.0.0
1.7.0-dev1852
v1.7.0-dev1852 Script for generating changelogs, new template for PR's (#4351)
1.7.0-dev1840
v1.7.0-dev1840 Added changelog for 1.7.0-beta02 (#5130)
1.7.0-dev1809
[gradle] Add "compose.material3AdaptiveNavigationSuite" shortcut (#5133) Add `compose.material3AdaptiveNavigationSuite` shortcut: ```kotlin kotlin { sourceSets { commonMain.dependencies { implementation(compose.material3AdaptiveNavigationSuite) } } } ``` ## Release Notes ### Features - Gradle Plugin - New `compose.material3AdaptiveNavigationSuite` shortcut in the gradle plugin
1.7.0-beta02
Changes since 1.7.0-beta01
Breaking changes
Desktop
Resources
Features
Multiple Platforms
iOS
Desktop
Fixes
Multiple Platforms
- (prerelease fix) Fix
GraphicsLayer
perspective matrix calculation and missing invalidations - (prerelease fix) Fix Wasm/Native ArrayIndexOutOfBoundsException exception in adaptive-layout module
iOS
- A new approach to implementation of
platformLayers
. Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore. Dialog
s andPopup
s now have their insets calculated correctly even when the frame ofComposeUIViewController
spawning them doesn't intersect any safe areas
Desktop
- (prerelease fix) Fix "Moving after initiating a click cancels it"
Resources
Gradle Plugin
Lifecycle
- Lifecycle 2.8.2 depends on Compose 1.6.11 (Lifecycle 2.8.1 accidentaly made dependent on Compose 1.7.0-beta01)
Navigation
- (prerelease fix) Fix saving state for nested
NavHostController
- (prerelease fix) Fixed missing commonization for type-safe version of
SavedStateHandle.toRoute
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-beta02
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.2
. Based on Jetpack Lifecycle 2.8.4 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10
. Based on Jetpack Navigation 2.8.0-rc01 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha03
. Based on Jetpack Material3 Adaptive 1.0.0-rc01
1.7.0-dev1783
v1.7.0-dev1783 [gradle] Fix KMP component publication configuration
1.7.0-beta01
Changes since 1.7.0-alpha03
Breaking changes
iOS
UIKitView
andUIKitViewController
inpackage androidx.compose.ui.interop
are deprecated. New API are mentioned in deprecation message. Deprecated invocations should work fine unless customonResize
is used, it is disallowed now and will print a warning.- Actual of expected
InteropView
on iOS isUIResponder
now instead ofUIView
. It's the first common ancestor forUIViewController
andUIView
, both of which can be integrated using iOS interop APIs - The app will crash by default, if
CADisableMinimumFrameDurationOnPhone
is not set to true inInfo.plist
. Use newly addedComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck
to opt-out of this behavior
Features
Multiple Platforms
iOS
- New
UIKitView
andUIKitViewController
API inpackage androidx.compose.ui.viewinterop
. Support ofonReset
to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches)
Desktop
- Added support for input methods (languages such as Chinese, Korean, Arabic) to BasicTextField(TextFieldState, ...)
- Add dynamic Drag&Drop target indication (🚫 icon under cursor if currently there is no valid drop target under it)
Resources
- Added support of test resources in Compose Multiplatform projects
- Added support of multi-module resources in JVM-only projects
Fixes
Multiple Platforms
- (prerelease fix) Fix redirect on android artifacts for "window-core" module
iOS
Desktop
Resources
- (prerelease fix) Fix a resource reading on iOS 12
- (prerelease fix) Fix resource reading on Java 11
Gradle Plugin
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-beta01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.1
. Based on Jetpack Lifecycle 2.8.4 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha09
. Based on Jetpack Navigation 2.8.0-beta05 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha02
. Based on Jetpack Material3 Adaptive 1.0.0-rc01
1.7.0-alpha03
Changes since 1.7.0-alpha02
Features
Multiple Platforms
- Skia is updated to m126
- Commonized
org.jetbrains.compose.material3:material3-window-size-class
module - Commonized
org.jetbrains.compose.material3.adaptive:adaptive*
modules
Resources
Fixes
Desktop
- [macOS] Fix crash when right-clicking an empty
SelectionContainer
or on the padding of aText
inside aSelectionContainer
- (prerelease fix) Fix input methods position on the screen and
NullPointerException: Cannot read field
iOS
Gradle Plugin
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-alpha03
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha09
. Based on Jetpack Navigation 2.8.0-beta05 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha01
. Based on Jetpack Material3 Adaptive 1.0.0-beta04
To use Material3 Adaptive add the dependencies for the artifacts you need in the build.gradle
file for your app or module:
dependencies {
implementation("org.jetbrains.compose.material3.adaptive:adaptive:1.0.0-alpha01")
implementation("org.jetbrains.compose.material3.adaptive:adaptive-layout:1.0.0-alpha01")
implementation("org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha01")
}
1.7.0-dev1756
v1.7.0-dev1756 Add 1.7.0-alpha02 to changelog (#5112)