This is a combined changelog from the prerelease versions:
Common
Features
- Support Kotlin 1.9.20
- Introduce Material 3 components in common
- Introduce Material component
ExposedDropDownMenu
in common - Introduce
WindowInfo.containerSize
experimental api - Implement
defaultTimePickerLayoutType
based on screen orientation - Add an option to disable insets in
Popup
/Dialog
- Commonize insets
Modifier
's (additionally toWindowInsets.*
)
Fixes
ExposedDropdownMenuBox.onExpandedChange
was not recomposed- Override
RootLayout
insets only in case ofusePlatformInsets
- Don't send synthetic Move events before Press/Release for touch
iOS
Breaking changes
Features
- Compilation speed up due to enabling compiler caches for Kotlin 1.9.20+
- Added crossfade animation during orientation change when used within UIKit hierarchy
- Compose Multiplatform should warn when
CADisableMinimumFrameDurationOnPhone
is not configured properly - Fast delete mode on software keyboard. When you hold a backspace, “turbo mode” is enabled after deleting the first 21 symbols. In turbo mode each tick deletes two words.
- On a long scrollable TextFields, If it’s scrolled up to caret position while typing. Then it stopped on the line above the line with a caret.
- Add
UIViewController
lifetime hooks - Implement iOS native feel scrolls for large text fields
- Improve rendering performance
- Double tap and triple tap gesture handling in
TextField
s
Fixes
- Rendering synchronization of multiple
UIKitView
s within a screen - Today's date is not highlighted with a circle in the material3 datePicker on iOS
- Fix text-to-speech crash in iOS 16.0.*
- Compose window is shown before the first frame is rendered
- iOS TextField, Compound emojis are being treated as many symbols
- Use
CADisplayLink.targetTimestamp
value as the time for animation frames - iOS. Improved performance on 120 hz devices
- Expanded
ModalBottomSheet
: scrim doesn't occupy complete screen - Fix interop view intercepting touches for popups
- Fix applying
WindowInsets
insidePopup
/Dialog
- Scrolling behavior bugs
OutlinedTextField
label is clipped- Black screens with
UIKitView
after navigating away and navigating back - Long text field overscroll effect not clipped correctly
- First screen is recomposed twice
- Bug with selection handle
- Ignore unpressed events during velocity calculation
- Crash with Asian languages in
TextField
Desktop
Features
- Improve accessibility support
Fixes
LocalLayoutDirection
isn't propagated intoDialogWindow
- CompositionLocals given in application scope are not take into account in window scope (such as
LocalLayoutDirection
) - Fix accessibility issue with actions in popups
- Apply custom Dialog's scrim blend mode only when window is transparent
- Can't type in
TextField
placed inModalBottomSheet
- Accessibility not reporting changes
- Crash "LayoutNode should be attached to an owner exception"
- Window loses its focus after recomposition of another window
- Report semantic
ProgressBarRangeInfo
changes for accessibility - Fix NPE for getComponentAfter/Before in ComposePanel
- Take into account
enabled
inscrollable
for mouse input - Improve accessibility on Windows
- Fix Chinese characters input when using JBR
Gradle Plugin
Features
Fixes
- Increase Kotlinx Serialization version used by the Compose Gradle Plugin
- Switch to notarytool for notarization
- Fix configuration cache for
syncComposeResourcesForIos
HTML library
Features
Web
Features
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries: