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-bundlemodule to the androidx SavedState. Libraries that useorg.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstateororg.jetbrains.androidx.savedstate:savedstateshould migrate to the latest version #1850 - (prerelease fix) Material3 is reverted from Jetpack Compose Material3
1.4.0-alpha07to1.3.1because 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.navigationtransition 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 closedduringGraphicsLayer.record#1839 - (prerelease fix) Change an
Escbutton interception fromonPreviewKeyEventtoonKeyEventin the desktopBackGestureDispatcherimplementation. It fixes problems when user's code handles theEsc-button #1860 - (prerelease fix) Fix a problem when an
onBackcallback 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.viewportSizefor (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