Releases: JetBrains/compose-multiplatform
Releases · JetBrains/compose-multiplatform
1.6.10-dev1514
Update CHANGELOG.md (1.6.1) (#4477) Co-authored-by: Ivan Matkov <ivan.matkov@jetbrains.com>
1.6.1
Changes since 1.6.0
Features
Common
Fixes
iOS, Desktop, Web
- Consume less CPU for text field cursor blinking
- Fix Material3 slider getting stuck while dragging
- Fix
ExposedDropdownMenuBox
recomposing unnecessarily
iOS
- Fix AppStore/TestFlight verification failure due to skiko/skia conflicting names with ICU library
- Fix
Pager
scroll with scrollable content on top - Fix crash when selecting a character before the punctuation sign
- Fix unintended state reset
- Context menu isn't showing in empty textfield
- Fix a logical error causing Compose tree corruption and consequent crash
- Fix
TextField
crash when using speech-to-text
Web
Desktop
- Fix additional windows creation with
COMPONENT
layer type - Keep adding interop order consistent between platforms
Resources
- Support three letters locales
- Init resource accessors lazily and in external function to avoid MethodTooLargeException
- Fix
Res
class generation if the library is declared as 'api' - Fix
regionCode
crash on iOS before 17 - Fix package name of generated
Res
file when project is building forJsTarget
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
1.6.10-dev1509
Imageviewer. Fix compilation of Android target (#4467) Fix regression after https://github.com/JetBrains/compose-multiplatform/pull/4433 `./gradlew compileReleaseKotlinAndroid` in `imageviewer` fails with: ``` * What went wrong: Execution failed for task ':shared:compileReleaseKotlinAndroid'. > Inconsistent JVM-target compatibility detected for tasks 'compileReleaseJavaWithJavac' (1.8) and 'compileReleaseKotlinAndroid' (17). ``` (JAVA_HOME points to JDK 17)
1.6.10-dev1498
v1.6.10-dev1498 [example] Migrate the image viewer on the new compose resources (#4433)
1.6.10-dev1493
v1.6.10-dev1493 Merge remote-tracking branch 'origin/release/1.6.1'
1.6.10-dev1457
v1.6.10-dev1457 Migrate all samples to the new resources library (#4386)
1.6.0-dev1440
Update link to setup environment instructions (#4344) Update links to new [instructions](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-setup.html) It resolves issue: - https://github.com/JetBrains/compose-multiplatform/issues/4343
1.6.0
Changes since 1.5.12
Highlights
An overview of highlights for this release is also available in the Compose Multiplatform documentation: What's new in 1.6.0.
Common
- Resource library improvements (an example project)
- Experimental support is available for tests in common code
- Support Kotlin 2.0.0-Beta4
iOS, Desktop, Web
- Support
LineHeightStyle.Trim
- Add a way to use fonts installed on the system
- Add support for text decoration line styles via PlatformTextStyle
iOS
- Native-like caret behaviour by long/single taps in textfields(1, 2)
- Basic accessibility support
- Popups/Dialogs can now be displayed outside a ViewController over native components
- Allow selecting
Text
inSelectionContainer
by double and triple tap
Web
- Compose for Web (Wasm) artifacts are available in Maven Central Warning: Kotlin 1.9.21 has an issue with web target. Use Kotlin 1.9.22.
Desktop
- Proper clipping of
SwingPanel
interop (under an experimental flag, see the link) - Popups/Dialogs can now be displayed outside the main window or panel and over native components (under an experimental flag, see the link)
Breaking changes
Common
- Resource library (
compose.components.resources
) changes- resources from
*Main\resources
should be moved to*Main\composeResources\drawable
,commonMain\composeResources\font
or*Main\composeResources\files
depending on the resource type painterResource("resource.xml")
should be replaced bypainterResource(Res.drawable.resource)
- resources from
google()
maven repository is now required. Add this tobuild.gradle.kts
:If the project doesn't have it, there will be an errorrepositories { ... google() }
Could not find androidx.annotation:annotation:...
orCould not find org.jetbrains.compose.collection-internal:collection
.- Text with
lineHeight
set is trimmed by default - Text with
fontSize
set withoutlineHeight
insideMaterialTheme
has different line height
iOS/Desktop/Web
- Deprecate
public ComposeScene
in favour of@InternalComposeUiApi MultiLayerComposeScene
- Hide deprecated DropdownMenu overloads
Desktop
Web (k/js)
- Libraries which depend on earlier Compose Multiplatform version are not compatible with 1.6.0 anymore. This is because decoys generation was disabled. Projects which apply Compose Compiler plugin manually need to remove this argument:
plugin:androidx.compose.compiler.plugins.kotlin:generateDecoys=true
.
Features
Common
iOS
- Adjust overscroll effect params to match iOS animations
- Add ability to change opacity for compose view
- Introduce
@Composable fun UIKitViewController
- Remove iOS experimental flag in gradle.properties
Desktop
- Support select till the end of the file / till the start of the file keyboard actions on Windows
- Add LinuxArm64 target to Compose runtime
- Add dedicated feature flags class for desktop
Web
HTML library
Gradle Plugin
Fixes
iOS/Desktop/Web
- Fix "DropdownMenu performs onDismissRequest twice"
- Use a large rectangle for the picture bounds in RenderNodeLayer.drawLayer to prevent clipping
- Fix closing scene during scroll animation
- Fix "Using
painterResource(:DrawableResource)
outside desktop Window can produceUnsatisfiedLinkError
" - Fix "Rect::makeLTRB expected l <= r" crashes
- Fix "
TextLayoutResult#getLineForVerticalPosition
returns wrong value + slow performance" - Run all effects before sending synthetic events
Font
constructor with lazy data loading- Optimise
TextLayoutResult#getLineForOffset
- Fix "SwingPanel/UIKitView doesn't apply Modifier.offset if it's after Modifier.size"
- DatePicker. Fix empty row
- DatePicker. Fix selection of the current day
- Fix
LayoutCoordinates.localToWindow
coordinates conversion for non-full Compose components
iOS
- Fixed unexpected fling animation over scrolling content
- Fix UIKitView z-order
- Fix missing case for loading
SystemFont
on iOS - Fix selection container crash
- Fix
WindowInfo.containerSize
withoutplatformLayers
flag - Disable encoding on separate thread for iOS
- Synchronise IME insets with iOS keyboard
Desktop
- Protect against
MouseInfo.getPointerInfo()
returning null inWindowDraggableArea
- Support Rtl in
SplitPane
- Fix a native crash on
makeGL
- Add Arial and Consolas as backup fonts on Linux and mention font name when one fails to load
- Fix blurry app icon in the system application switcher
- Insert a new line on
NumPadEnter
- Don't restart the drag gesture when the
onDrag(matcher=
changes - Fix "Resizing window on desktop sometimes triggers onClick handlers of Composables"
- [Fix "
ComposePanel
doesn't calcu...
1.6.0-rc03
Changes since 1.6.0-rc02
- Support Kotlin 2.0.0-Beta4 Common
- (prerelease fix) Resources. Don't return a cached value when pass new args Common
- (prerelease fix) Fix crash "ComposeUIViewController.view should be attached to window iOS
- (prerelease fix) Fix App crashes when Compose SwfitUI View container removed from hierarchy iOS
- (prerelease fix) Fix Keyboard disappears on IME action iOS
- (prerelease fix) Fix
SelectionContainer
occasionally crashes on iOS iOS - (prerelease fix) Fix crash after open/close dropdown on iOS iOS
- (prerelease fix) Fix Password popup disappears only on the second focused TextField iOS
- (prerelease fix) Fix mouse input above SwingPanel Desktop
- (prerelease fix) Fix non working accessibility on Desktop Desktop
- (prerelease fix) Resources. Fix import of Android flavors Android
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
1.6.0-rc02
Changes since 1.6.0-rc01
Breaking changes
since 1.6.0-beta01
- When the resource library is used, resources should be imported explicitly
To quickly change your code to a new state, replace this:
import <modulePackage>.generated.resources.Res
by this:
import <modulePackage>.generated.resources.*
and perform "Code - Optimize Imports" to apply the project code style. If code style doesn't allow wildcrads,
import <modulePackage>.generated.resources.*
will be replaced by explicit imports.
iOS/desktop/web
Fixes
- (prerelease fix) Fix "AlertDialog doesn't work with ProvidableCompositionLocal"
Resource library
Fixes
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries: