CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Releases: JetBrains/compose-multiplatform
1.9.0-beta01
cbb9ec9
Compare
Changes since 1.9.0-alpha03
Highlights
Web
- Text context menu is supported on web platforms for both modes: mobile and desktop #2207
- Introduce the basic support of accessibility in the web target #2188
Migration Notes
Multiple Platforms
-
Material3 versioning is decoupled for the Compose Multiplatform 1.9.* release due the upstream Jetpack Compose Material3 1.4 has not been released as stable yet #5360
-
compose.material3
now points to the latest stable Material3 version, 1.8.2. If the latest Material3 features are needed, please include it this way: #5360implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04")
iOS
- Remove experimental attribute from
UIKitInteropInteractionMode
#2215
Web
fun ComposeViewport
withviewportContainerId: String?
parameter now can be called from a web-commonfun main
(k/js and k/wasm) #2226
Features
Multiple Platforms
- Extended the
@Preview
(org.jetbrains.compose.ui.tooling.preview
) annotation with the following parameters: name, group, widthDp, heightDp, locale, showBackground, backgroundColor. IDE (IJ or AS) will pick up these parameters in the same way it works forandroidx
Preview annotations #5339
iOS
- Support new context menu API with default menu #2214
- Add support for frame rate voting #2205
- Support scroll commands with Voice Control #2234
- Implement accessibility scroll to focused interop views #2228
Desktop
- Basic support for new context menu API #2196
- Added experimental support for save and restore compose state.
ComposePanel
,ComposeWindow
andComposeDialog
now hassavedState
constructor parameter to restore previous state andsaveState
function to save the current state for later use #2225
Web
- Support the new context menu API in web targets in the desktop mode #2224
Resources
- Added
JvmResourceReader
API and madeLocalResourceReader
public to allow providing a custom classloader for desktop target #5334
Navigation
- A new API was added to bind the browser navigation state with the
NavController
-suspend fun NavController.bindToBrowserNavigation
. And the existing functionsuspend fun Window.bindToNavigation
is deprecated now #2189
Fixes
Multiple Platforms
- Fix extra draw invalidations during scrolling (1.8 regression) #2212
- (prerelease fix) Fix trigger of
Modifier.onFirstVisible
modifier (added in Jetpack Compose1.9.0-alpha03
) #2233
iOS
- Change the accessibility selection to the element that has most recently been focused on #2217
- Fix Full Keyboard Access on iOS 17 and lower #2216
- (prerelease fix) Fixed
Undefined symbols for architecture arm64: _kfun:androidx.compose.material3.adaptive.WindowAdaptiveInfo
#2236 - Fixes the appearance of the keyboard when a pop-up or dialog on the background is dismissed #2240
Desktop
- Fixed the case when the IME's first event to a text field is to commit a composition #2210
- Elements marked with Modifier.semantics { hideFromAccessibility() } should now be correctly hidden from a11y #2204
- (prerelease fix) Fix focus switching for ComposePanel embedded in Swing UI #2232
- (prerelease fix) Fix Maven project doesn't work with 1.9.0-alpha03 #2248
Web
- Web Lifecycle triggers
START
/STOP
events on thevisibilitychange
callback now #2219 - Lifecycle fix on iOS Safari: now touch events trigger
ON_RESUME
because Safari ignores interactions and doesn't request the focus #2219
Gradle Plugin
- Fix codesigning on macOS when the developer id contains non-ASCII characters. Note that this requires JDK 21 or later #5358
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-beta01
. Based on Jetpack Compose libraries: -
Compose Material3 libraries
org.jetbrains.compose.material3:material3*:1.9.0-alpha04
. Based on Jetpack Compose Material3 1.4.0-alpha17 -
Compose Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha04
. Based on Jetpack Compose Material3 Adaptive 1.2.0-alpha08 -
Graphics-Shapes library
org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09
. Based on Jetpack Graphics-Shapes 1.0.1 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta04
. Based on Jetpack Navigation 2.9.1 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha09
. Based on Jetpack WindowManager 1.4.0
Assets 2
1.9.0-alpha03
761368d
Compare
Changes since 1.9.0-alpha02
Highlights
Web
- Added a
WebElementView
Composable function for embedding the absolutely positioned HTML content in Compose for web target. It's supported only when usingComposeViewport
entry point and it's not supported withCanvasBasedWindow
, which is deprecated now #2145
Migration Notes
Desktop
Window
andDialogWindow
overloads that create aComposeWindow
/ComposeDialog
have been renamed toSwingWindow
/SwingDialog
and the old versions have been deprecated #2141- When the window is iconified, converting to/from screen coordinates (with e.g.
LayoutCoordinates.positionOnScreen()
) will returnOffset.Unspecified
#2163 - Deprecated experimental
Modifier.mouseClickable
is removed. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html for alternatives #2194
Web
- Setting
org.jetbrains.compose.experimental.jscanvas.enabled=true
is not required anymore when having a kotlin/js target #5340
Features
Multiple Platforms
- Support customizable shadows #2183
iOS
- Add support for
keepScreenOn
modifier #2180
Desktop
- Added
SwingFrame
andSwingDialog
composables that allow configuring the window/dialog before it is shown #2139 - Full
AnnotatedString
is available as a data flavor inClipEntry
, instead of only its text #2092 - Add
RenderSettings.SwingGraphics
option forComposePanel.renderSettings
argument #2071
Fixes
Multiple Platforms
- Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks #2147
- (prerelease fix) Fix applying
colorFilter
andblendMode
fromGraphicsLayerScope
toGraphicsLayer
#2184
Desktop
- [Accessibility, macOS] Fixed VoiceOver to announce a Slider's value on every change #2152
- Return
Offset.Unspecified
instead of throwing an exception inLayoutCoordinates.localToScreen
andLayoutCoordinates.screenToLocal
#2160 - When the window moves or becomes iconified/de-iconified, all instances of
Modifier.onGloballyPositioned
will be called #2163 - Implemented a context menu for
BasicTextField(TextFieldState)
#2168 - (prerelease fix)
Could not find org.jetbrains.androidx.window:window-core-desktop:1.4.0-alpha07
when usingmaterial-adaptive
ormaterial3-adaptive-navigation-suite
#2179 SemanticsProperties.Text
andSemanticsProperties.ContentDescription
values will now be correctly concatenated whenModifier.semantics(mergeDescendants = true)
is used #2202
Web
- Fixed an unexpected back gesture after a horizontal scroll #2186
- Mitigate a typing delay regression in Safari browsers #2195
Gradle Plugin
- Don't fail gradle sync if TargetFormat.AppImage is specified in
targetFormats
on macOS #5332
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-alpha03
. Based on Jetpack Compose libraries: -
Graphics-Shapes library
org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09
. Based on Jetpack Graphics-Shapes 1.0.1 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha03
. Based on Jetpack Material3 Adaptive 1.2.0-alpha07 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03
. Based on Jetpack Navigation 2.9.0 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha08
. Based on Jetpack WindowManager 1.4.0
Assets 2
1.8.2
a149d0f
Compare
Changes since 1.8.1
Fixes
Multiple Platforms
-
Fixed
TextField(TextFieldValue)
when used with a visual transformation with a non-identity offset mapping (potentially even crashing) #2130 -
Fixed a memory leak and performance degradation when
ComposeUiFlags.isRectTrackingEnabled
set totrue
(by default) #2123 -
Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks #2155
-
Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported #5323
Example usage:
import androidx.compose.runtime.Composable import org.jetbrains.compose.ui.tooling.preview.Preview import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider class MyPreviewParameterProvider : PreviewParameterProvider<String> { override val values = sequenceOf("Hello, Compose!", "Hello, World!") } /** * This function will generate two preview images with different texts. */ @Preview @Composable fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) { Text(text) }
Desktop
- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than
1.0
#2158
Navigation
- Fix the browser navigation integration problem due encoded routes #2143
- Fix a crash on iOS when a
NavHost
is located in a scrollable container #2146
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.2
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1
. Based on Jetpack Lifecycle 2.9.1 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.2
. Based on Jetpack Material3 Adaptive 1.1.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03
. Based on Jetpack Navigation 2.9.0 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.1
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha07
. Based on Jetpack WindowManager 1.4.0-alpha04
Assets 2
1.9.0-alpha02
ab2e690
Compare
Changes since 1.8.1
Known issues
Desktop
Could not find org.jetbrains.androidx.window:window-core-desktop:1.4.0-alpha07
when usingmaterial-adaptive
ormaterial3-adaptive-navigation-suite
. YouTrack issue. Workaround is to exclude one dependency and include another:
// if you have material3AdaptiveNavigationSuite dependency
implementation(compose.material3AdaptiveNavigationSuite) {
exclude(group = "org.jetbrains.androidx.window")
}
// if you have org.jetbrains.compose.material3.adaptive dependency
implementation("org.jetbrains.compose.material3.adaptive:adaptive:1.2.0-alpha02") {
exclude(group = "org.jetbrains.androidx.window")
}
implementation("androidx.window:window-core-jvm:1.4.0")
Highlights
Multiple Platforms
material3
library now includes new experimentalMaterialExpressiveTheme
#2127
Migration Notes
Gradle Plugin
- The Compose Gradle plugin requires the Kotlin Gradle plugin version 2.+ now. Old
org.jetbrains.compose.compiler
is not supported anymore and the API to configure it was removed #5283
Features
Multiple Platforms
- Adopted a change in
ComposeUiTest
API. Theblock
inrunComposeUiTest
issuspend
now. It allows to callawaitIdle
and other suspend functions. It ensures a correct execution of a test on all platforms. See the web specifics inkotlinx.coroutines.test.runTest
documentation #2066
iOS
- Add support for native IME configuration with
PlatformImeOptions
#2108
Desktop
- Add accessibility role for
Switch
, reporting it as a checkbox #2136
Fixes
Multiple Platforms
- Fixed
TextField(TextFieldValue)
when used with a visual transformation with a non-identity offset mapping (potentially even crashing) #2117 - Fixed a memory leak and performance degradation when
ComposeUiFlags.isRectTrackingEnabled
set totrue
(default) #2112 - Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported #5319
Example usage:import androidx.compose.runtime.Composable import org.jetbrains.compose.ui.tooling.preview.Preview import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider class MyPreviewParameterProvider : PreviewParameterProvider<String> { override val values = sequenceOf("Hello, Compose!", "Hello, World!") } /** * This function will generate two preview images with different texts */ @Preview @Composable fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) { Text(text) }
iOS
- Fix issue where keyboard would appear after second tap when text input session was intercepted #2049
Desktop
- [macOS] Fix the background flashing when closing a window/dialog and an animation is running #2058
- [macOS; JBR] Fixed the current composition in a text field being duplicated into another text field when switching focus to it #2026
- [macOS] Fixed strange glyph being displayed in a text field if window becomes unfocused, then focused again while there's an active composition in the text field (after pressing e.g. backspace) #2026
- [macOS] Fix showing the input method toolbar before any text field becomes focused (on JBR only; other runtimes continue to be buggy) #2047
- Improved performance for
ComposePanel
withSystem.setProperty("compose.swing.render.on.graphics", "carview.php?tsp=true")
#2097 - Fix the positioning of the IME popup being too far away from the text, on screens with density greater than 1 #2118
- Fixed the position of the IME popup, which was below the previous, rather than the current, cursor position #2122
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.9.0-alpha02
. Based on Jetpack Compose libraries: -
Graphics-Shapes library
org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha08
. Based on Jetpack Graphics-Shapes 1.0.1 -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0
. Based on Jetpack Lifecycle 2.9.0 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha02
. Based on Jetpack Material3 Adaptive 1.2.0-alpha06 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta02
. Based on Jetpack Navigation 2.9.0 -
Savedstate library
org.jetbrains.androidx.savedstate:savedstate:1.3.0
. Based on Jetpack Savedstate 1.3.0 -
WindowManager Core library
org.jetbrains.androidx.window:window-core:1.4.0-alpha07
. Based on Jetpack WindowManager 1.4.0
Assets 2
1.8.1
afe6a5b
Compare
Changes since 1.8.0
Features
Resources
- Now a Compose library with resources may be built and used as XCFramework (it requires Kotlin Gradle plugin 2.2 or higher) #5294
- Gradle Plugin DSL to change the generated
Res
class name #5296
Fixes
Multiple Platforms
- Fix incorrect pointer position calculation with rotation around unspecified pivot #2082
iOS
- Fix dialogs after modal view controller presentation #2085
- Fix issue where
androidx.compose.material3.ModalBottomSheet
closes after any tap #2086 - Fix context menu appearance after triple-tap #2087
- Fix a memory leak in
ComposeUIViewController
when text input starts #2088 - Use the cross-fade animation effect when rotating the screen with interop views #2101
- Show an error message when
UIKitViewController
insidePopup
orDialog
#2102 - Fix an issue where the keyboard would appear after the second tap when the text input session was intercepted #2103
Desktop
- [Linux] Fix
svgPainter
doesn't show any images #2096 - Fix deadlock between
BroadcastFrameClock.lock
andRecomposer.stateLock
#2098 - Fix "Serializer for class is not found" using
androidx.navigation
and running./gradlew runRelease
#5314 kotlinx.serialization
ProGuard rules are bundled in the Compose Gradle plugin #5314
Web
- Fixed the positioning and the dimensions of the backing text input (HTML element). The bug used to lead to unexpected scrolls on the page due to the browser trying to bring the HTML element into a view #2081
Resources
- Fix IDE highlighting/resolution when a generated file with resource accessors is too big #5298
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.1
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0
. Based on Jetpack Lifecycle 2.9.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta02
. Based on Jetpack Navigation 2.9.0 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.1
. Based on Jetpack Material3 Adaptive 1.1.0
Assets 2
1.8.0
e7e8e12
Compare
Highlights
Multiple Platforms
- Compose Multiplatform codebase is fully migrated to K2. Please note that native and web klibs can be consumed only with Kotlin 2.1.0 or newer. Also, due to underlying changes in the compiler plugin, it's better to recompile libraries against the new version. Please let us know if you find any compatibility issues during this migration #1778
- Implement multiplatform
BackHandler
andPredictiveBackHandler
. And use them in material3 widgets and androidx-navigation library #1771
iOS
- Remove experimental flag from
fun enableTraceOSLog()
#1652
Web
- Improves text input support in Safari on mobile and desktop #1941
- Correct certain text input scenarios on Web targets #1941
Resources
- Add
FontVariation.Settings
support to the resources library #5183
Breaking Changes
Tests
runOnIdle
will now executeaction
on the UI thread #1601runOnIdle
will no longer callwaitForIdle
after executing the action #1601- Advancing
mainClock
such that it doesn't reach the next frame, will no longer cause a recomposition #1618 - IdlingResource interface was moved from commonMain to android and desktop source sets. The related experimental methods of ComposeUiTest were moved too. They are not available for Web and iOS anymore. Consider using waitUntil function as an alternative. Note: it's a breaking change only for Web and iOS, but not for Desktop and Android #1822
Multiple Platforms
- Tests that relied on
waitForIdle
,awaitIdle
orrunOnIdle
(whether explicit or implicit) executingdelay
-ed coroutines will no longer work correctly. To fix this advance the test time viamainClock
manually, as needed #1550 - Tests that advance the test clock (via
mainClock.advanceTimeBy
) may see different behavior with regards to the amount and timing of recomposition, layout, drawing and effects #1550 - Multiplatform lifecycle was migrated from a internal
core-bundle
module to the androidx SavedState. Libraries that useorg.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate
ororg.jetbrains.androidx.savedstate:savedstate
should migrate to the latest version #1850 - A custom implementation for deprecated
LocalTextInputService
is no longer supported #1974
iOS
- Update
AccessibilitySyncOptions
and removeAccessibilityDebugLogger
from public API #1604 - Remove obsolete Canvas Layers mode on iOS #1680
- Add Composable annotation to the
WindowInsets.Companion.waterfall
getter to match the expected API #1919
Desktop
- Deprecated/experimental
Modifier.onExternalDrag
has been removed - commonModifier.dragAndDropTarget
API should be used instead #1606
Migration Notes
Multiple Platforms
- Google Maven now contains some artifacts for all Kotlin targets including Wasm and JS. Compose Multiplatform now depends on those artifacts and user projects might need to add
google()
repo torepositories {...}
block if it is not there yet #1819 - material/material3 libraries no longer add a dependency to
material-icons-core
so if your project relied on that, you will have to explicitly add that dependency in yourbuild.gradle[.kts]
files: #2030implementation("org.jetbrains.compose.material:material-icons-core:1.7.3")
iOS
LocalUIViewController
moved to theandroidx.compose.ui.uikit
module #1608ComposeUIViewControllerDelegate
marked as deprecated. Use the parent view controller to override the methods of theUIViewController
class #1651- Experimental classes
CupertinoScrollDecayAnimationSpec
andCupertinoOverscrollEffect
are removed from public API #1806
Gradle Plugin
- The Compose Gradle Plugin requires Kotlin Gradle Plugin 2.+ version now. Old
org.jetbrains.compose.compiler
is not supported anymore and the API to configure it was removed #5293
Features
Multiple Platforms
- Support configurable vertical text centering via
LineHeightStyle.Alignment
#1569 - Support Variable Fonts In All Platforms #1623
- Update skia to m132 #1823
- Adopt a new
Clipboard
interface with suspend functions, which work correctly on all targets including Web. TheClipboardManager
was deprecated because it was not possible to correctly implement it for Web #1796
iOS
- Add localised string for VoiceOver accessibility support #1441
- Support state announcements for scrollable lists in VoiceOver #1644
- Support for accessibility gestures for left-to-right languages #1663
- (Experimental)
ComposeUIViewControllerConfiguration.useSeparateRenderThreadWhenPossible
flag that allows offloading GPU commands encoding to the separate thread and improving performance #1694 - Initial Drag&Drop support #1690
- Align Compose components semantics with UIKit views accessibility #1719
- Accessibility navigation uses safe area to calculate when focused rect is out of bounds #1745
- Support VoiceControl on iOS #1780
AccessibilitySyncOptions
removed. The accessibility tree is built on demand #1780- Calculate the order and location of semantic elements in the same way as it's done on Android #1809
- Support
UIAccessibilityContainerTypeSemanticGroup
for traversal groups #1809 - Compose works correctly with nested
UIScrollView
s, as well as withinUIScrollView
s #1818 - Added the ability to close modal Compose view controllers (with non-scrollable content on them) with a swipe gesture #1818
- Support new haptic feedback types #1831
- Support for focusable nodes when Full Keyboard Access is enabled on iOS #1825
- Floating cursor support for
BasicTextField(TextFieldState)
#1598 - Add support for Bold Text accessibility setting #1846
- Bhojpuri language support for VoiceOver #1838
- Add support for Reduce Motion accessibility setting #1847
- Default
androidx.navigation
transition animation on iOS is as close as possible to the iOS back gesture #1861 - Support accessibility text input #1875
- Support text input for UI Tests #1875
- Accessibility: added ability to traverse nodes within a scrollable container [#1837](https://github.com/JetBrains/compose-multiplatform-c...
Assets 2
1.8.0-rc01
e7e8e12
Compare
Changes since 1.8.0-beta02
Highlights
Web
- Improves text input support in Safari on mobile and desktop #1941
- Correct certain text input scenarios on Web targets #1941
NewWebTextInputService
seeks to achieve the following goals:
- Add support to Safari (which happens to have its own flow of input events that are inconsistent with other browsers)
- Correct behavior for composition and accent dialogue scenarios
- Introduce some changes that we will use for improving accessibility
Breaking Changes
Multiple Platforms
- A custom implementation for deprecated
LocalTextInputService
is no longer supported #1974
Migration Notes
Multiple Platforms
- material/material3 libraries no longer add a dependency to
material-icons-core
so if your project relied on that, you will have to explicitly add that dependency in yourbuild.gradle[.kts]
files: #2025, #2030
implementation("org.jetbrains.compose.material:material-icons-core:1.7.3")
Gradle Plugin
- The Compose Gradle Plugin requires Kotlin Gradle Plugin 2.+ version now. Old
org.jetbrains.compose.compiler
is not supported anymore and the API to configure it was removed #5293
Lifecycle
- (prerelease fix) Remove deprecated
AbstractSavedStateViewModelFactory
from common code #1976
Features
Desktop
- The default ProGuard version is set to 7.7.0 #5279
- If there are any new errors in the release build, update the ProGuard rules
- A usual workaround is to add
-keep class
for the associated with error class in "Location:" - If the error contains
androidx.
package, it might a Compose bug, please report in https://youtrack.jetbrains.com/issues/CMP. The-keep class
workaround should also work in this case
- (prerelease fix)
./gradlew runRelease
doesn't crash withjava.lang.VerifyError
#5279
Fixes
Multiple Platforms
- (prerelease fix)
org.jetbrains.compose.material3:material3-adaptive-navigation-suite
,org.jetbrains.compose.material3:material3-window-size-class
are reverted to the 1.3.1 state. They will be promoted to 1.4 in Compose Multiplatform 1.9 with material3 #1995 - Fix
InterceptPlatformTextInput
for the legacy TextField #1974
iOS
- (prerelease fix) Fix Text Menu placement for
TextField(TextFieldState)
#1972 - (prerelease fix) Fix Full Keyboard Access focus when Compose is located inside SwiftUI view #1975
- (prerelease fix) Fix an issue where traversal group nodes with test tag are missing in the accessibility tree #1977
- Fix composite input in
BasicTextField(TextFieldState)
#1984 - Fixes an issue where the accessibility engine could leave a scrollable list without reading it to the end #1986
- Fix Accessibility navigation through traversal groups in Container mode #1987
- Fix focus for items within dialogs when full keyboard access is enabled #1990
- (prerelease fix) Fixed a white scene background on iOS when a dark theme is activated #1989
- Fix gesture handling for third party interop views #1993
- Fix overscroll touches assertion when back handler is involved #2017
- Fixed incorrect selection and navigation by arrow keys from a hardware keyboard in
BasicTextField(TextFieldState)
#2018 - Fix back gesture after modal popup appearance #2019
- Fixed the behavior of a context menu in the text fields inside modal screens #2028
- (prerelease fix) Change runtime experimental annotations to proper "ui" experimental annotations for a few fields inside
ComposeUIViewControllerConfiguration
#2034 - (prerelease fix) Fix back gesture handling after modal view controller dismissal #2048
- (prerelease fix) Fix overscroll when RTL is enabled #2054
Desktop
- (prerelease fix) [macOS] Fixed accented character input via long press #1980
Navigation
- (prerelease fix) Fix custom navigation animation in nested graphs in non-android targets #1982
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.0-rc01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha07
. Based on Jetpack Lifecycle 2.9.0-beta01 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha17
. Based on Jetpack Navigation 2.9.0-beta01 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-rc01
. Based on Jetpack Material3 Adaptive 1.1.0
Assets 2
1.8.0-beta02
Compare
Changes since 1.8.0-beta01
Features
iOS
- Support text input when Full Keyboard Access is enabled #1917
- Added native behavior for tap, long tap and multiple tap to
BasicTextField(TextFieldState)
#1923 - Magnifier support for
BasicTextField(TextFieldState)
#1926
Fixes
Multiple Platforms
- Fixed
IllegalArgumentException: maxWidth(value) must be >= than minWidth(0)
crashes when aTextField
withtrailingIcon
is too narrow #1936 - Fixed crash when dragging selection in
TextField(TextFieldState)
while also editing the text, such as by pressing Backspace #1969
iOS
- Fix Text Menu opening after Select All action tap #1930
- Fix freeze where scrolling was cancelled but the overscroll effect was not completed #1928
- Fix overscroll animation freeze when pull-to-refresh is triggered #1932
- Fix issue where root compose canvas does not resize without animation #1934
- Fix issue where dialog layer may not be shown #1934
- Remove focus on accessibility nodes with clearing semantics #1933
- Fix adding extra
MetalView
when Compose controller re-enters view hierarchy #1938 - (prerelease fix) Fix deletion of certain RTL or diacritics characters #1952
- Fix the first layer appearance freeze #1948
- Fixed text editing behavior (typing / deleting) in
BasicTextField(TextFieldState)
with appliedOutputTransformation
#1953 - Fixed incorrect undo behavior for text deletion in
BasicTextField(TextFieldState)
#1956 - (prerelease fix) Fix Text Menu popup placement #1971
Desktop
- Fixed only the first character being temporarily shown in a
SecureTextField
#1853 - Changes in
TextFieldState
are now correctly reported to the transformations when inputting composite characters (e.g. γ ), instead of the whole text being replaced on each new character #1853 - Fixed a potential deadlock when calling
Snapshot.sendApplyNotifications
from a thread other than the event dispatching thread #1955 - Fix missing window shadows on macOS in case of usage
compose.interop.blending
flag #1908 - Fix
Execution failed for task ':composeApp:proguardReleaseJars'
whenmaterial3
is included in the project #5261
Web
- Fix horizontal scroll when using touchpad and pressing Shift #1909
- Prevent app from crashing when running in an insecure context where Web Clipboard API is unavailable #1931
- Replace tab characters with spaces in
Text
andTextField
s, to avoid them being drawn as tofu #1943 - Fix touch events processing. Now
Modifier.detectTransformGestures
will allow to handle zoom and rotation gestures #1942
Navigation
- (prerelease fix) Fixed navigation on JS targets #1939
- (prerelease fix) Encode only parameters in web navigation routes to have nicer UX #1940
- (prerelease fix) Add a flag to disable iOS back gesture detection #1951
- (prerelease fix) Fixed default pop
NavHost
animations if enter/exit animations are customized only #1963
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.0-beta02
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha06
. Based on Jetpack Lifecycle 2.9.0-alpha12 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha16
. Based on Jetpack Navigation 2.9.0-alpha08 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-beta02
. Based on Jetpack Material3 Adaptive 1.1.0
Assets 2
1.8.0-beta01
Compare
Changes since 1.8.0-alpha04
Breaking Changes
Multiple Platforms
- Add
@Composable
annotations to the actualWindowInsets.Companion.*
extensions to match the expected declarations #1919, #1720
Features
iOS
- Add ability to recreate Composable after
ComposeUIViewController
leaves view controller hierarchy #1877 - Support trackpad pointer input #1893
- Save Composable state when view controller leaves view controller hierarchy #1904
Fixes
iOS
- Removed permissions alert when pasting text into a
TextField
#1894 - Fix crash when removing popup during scene size change animation #1878
- Fix accessibility elements rects when
ComposeUIViewController
is shifted #1899 - Fixed an issue where it wasn't possible to open a popup using pointer input devices #1906
- Fix popup safe drawing padding when
usePlatformInsets = true
#1920 - Fix an issue where Compose would retain the old state when its view was reappeared #1921
- (prerelease fix) Fix non-interactive UI after interop view tap #1925
Desktop
- [Windows] Fixed ordering of
SwingPanel
s when usingcompose.interop.blending=true
#1901 - [macOS] Fix, for some cases, the background flashing when closing a window/dialog. This can still happen if an animation is running when the window or dialog is closing #1911
- Fix
onRenderApiChanged
inComposeWindow
andComposeDialog
not working when the renderer changes due to fallback, rather than explicit change #1911 - [Swing Interop] Fixed
compose.interop.blending=true
completely breaking Swing interop on Windows when Direct3D is unsupported. Note that interop blending is still supported on Windows only if Direct3D is available #1913
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.0-beta01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha05
. Based on Jetpack Lifecycle 2.9.0-alpha12 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha15
. Based on Jetpack Navigation 2.9.0-alpha08 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-beta01
. Based on Jetpack Material3 Adaptive 1.1.0-beta01
Assets 2
1.8.0-alpha04
a265145
Compare
Changes since 1.8.0-alpha03
Highlights
Desktop
- Improved performance on Windows by replacing the native code compiler to Clang. See details in JetBrains/skiko#1020 (comment) #1863
- DirectX rendering FPS is 17 % higher
- Software rendering FPS is 73 % higher
- Skiko binary size is reduced from 16.7 to 12.1 Mb on x64 and from 17.4 to 10.5 Mb on arm64
- Note that the numbers are measured on one machine and also can differ between Compose 1.7 and Compose 1.8 (will be updated in the stable Release Notes)
Known Issues
iOS
- Back gesture may remain stuck in the middle, the fix will be available in the next pre-release version #1861
Breaking Changes
Multiple Platforms
- Google Maven now contains some artifacts for all Kotlin targets including Wasm and JS. Compose Multiplatform now depends on those artifacts and user projects might need to add
google()
repo torepositories {...}
block if it is not there yet #1819 - Multiplatform lifecycle was migrated from a internal
core-bundle
module to the androidx SavedState. Libraries that useorg.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate
ororg.jetbrains.androidx.savedstate:savedstate
should migrate to the latest version #1850 - (prerelease fix) Material3 is reverted from Jetpack Compose Material3
1.4.0-alpha07
to1.3.1
because 1.4.0 Stable will be released only after Compose Multiplatform 1.8.0. As a workaround to continue using the new API, replace:by:implementation(compose.material3)
Jetpack Compose Material3 1.4.0 will be merged again sometime after the Compose Multiplatform 1.8.0 release #1868implementation("org.jetbrains.compose.material3:material3:1.8.0-alpha03")
Features
iOS
- Support new haptic feedback types #1831
- Support for focusable nodes when Full Keyboard Access is enabled on iOS #1825
- Floating cursor support for
BasicTextField(TextFieldState)
#1598 - Add support for Bold Text accessibility setting #1846
- Bhojpuri language support for VoiceOver #1838
- Add support for Reduce Motion accessibility setting #1847
- Default
androidx.navigation
transition animation on iOS is as close as possible to the iOS back gesture #1861 - Support accessibility text input #1875
- Support text input for UI Tests #1875
- Accessibility: added ability to traverse nodes within a scrollable container #1837
Fixes
Multiple Platforms
- Fixed the output of
TextField(TextFieldState)
(akaBasicTextField2
) transformations incorrectly leeching into the untransformed text itself, when input method is used (Chinese and other languages with multi-keystroke character input) #1833 - Fix possible
IllegalArgumentException: Object already closed
duringGraphicsLayer.record
#1839 - (prerelease fix) Change an
Esc
button interception fromonPreviewKeyEvent
toonKeyEvent
in the desktopBackGestureDispatcher
implementation. It fixes problems when user's code handles theEsc
-button #1860 - (prerelease fix) Fix a problem when an
onBack
callback is updated but listener is not #1860 - (prerelease fix) Fix memory leak in some cases of re-usage internal layout nodes #1873
- Compose runtime module now exposes its dependency on Kotlin Coroutines API (changed from
implementation()
toapi()
) #1883 - Correctly set
ScrollState.viewportSize
for (Basic)TextField(TextFieldState)
#1896
iOS
- (prerelease fix) Fixed issue where cross-directional scrolling could intercept and cancel each other #1851
- Fixed a bug where touches could be handled by back gesture and composable content at the same time #1879
Desktop
- (prerelease fix) Restore compatibility with Ubuntu 20.04 #1870
- (prerelease fix) Fix "Could not resolve version conflict" in non-Gradle projects #1872
Web
- Mobile browsers: the virtual keyboard is shown when the TextField is clicked/focues #1865
- Fix text selection with mouse in TextField #1876
Navigation
- (prerelease fix) Fix a desktop back navigation when Esc button clicked #1890
- (prerelease fix) Fix an iOS back navigation after a swipe on disallowed edge #1890
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.8.0-alpha04
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha04
. Based on Jetpack Lifecycle 2.9.0-alpha08 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha14
. Based on Jetpack Navigation 2.9.0-alpha07 -
Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-alpha04
. Based on Jetpack Material3 Adaptive 1.1.0-beta01