diff --git a/CHANGELOG.md b/CHANGELOG.md index e90e42a5b2..052917ff07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,134 +1,3 @@ -# 1.6.10-beta01 (April 2024) - -_Changes since 1.6.2_ - -## Highlights - -- Experimental multiplatform support of `Lifecycle` and `ViewModel`. - - The `LifecycleOwner` interface is implemented on the level of Compose Multiplatform itself, providing a `LifecycleOwner` entity for all common composables - - The `ViewModel` class can be used on any platform, but it needs a factory for platforms where the necessary type cannot be discovered by class reflection (iOS and Web) -- Experimental multiplatform support of Jetpack Navigation. - - To see the Compose Multiplatform navigation library in action, check out the [nav_cupcake project](https://github.com/MatkovIvan/nav_cupcake) which was converted from the [Navigate between screens with Compose](https://developer.android.com/codelabs/basic-android-kotlin-compose-navigation#2) Android codelab. -- [Support multi-module projects and libraries publication with Compose resources](https://github.com/JetBrains/compose-multiplatform/pull/4454) _(Kotlin `2.0.0-Beta05` or higher is required)_ - -## Known issues - -- `inline fun viewModel(...)` is not available from common due to [compiler bug](https://github.com/JetBrains/compose-multiplatform/issues/3147). Please use `fun viewModel(KClass, ...)` overload instead. -- Compose Multiplatform doesn't provide default `ViewModelStoreOwner` yet. For using `ViewModel`s outside of `NavHost` you need to provide custom store owner via `LocalViewModelStoreOwner`. Due to dependencies stability, it's expected to be fixed only in `1.7.0`. - -## Features - -### Common - -- [Add font rasterization settings in paragraph style](https://github.com/JetBrains/compose-multiplatform-core/pull/1102) -- [Localize internal strings in `ui`, `material` and `material3`](https://github.com/JetBrains/compose-multiplatform-core/pull/1158) - -### iOS - -- [Magnifier for iOS 17+](https://github.com/JetBrains/compose-multiplatform-core/pull/1000) -- [Support software keyboard inset in `Dialog`](https://github.com/JetBrains/compose-multiplatform-core/pull/1067) -- [iOS a11y dialogues and popups integration](https://github.com/JetBrains/compose-multiplatform-core/pull/1091) -- [Add throttle for text context menu updates](https://github.com/JetBrains/compose-multiplatform-core/pull/1182) -- [Support a11y for interop views](https://github.com/JetBrains/compose-multiplatform-core/pull/1241) -- [Support `HapticFeedback` on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1255) -- [iOS support `LiveRegion` semantics in a11y](https://github.com/JetBrains/compose-multiplatform-core/pull/1258) - -### Desktop - -- [Add an `alwaysOnTop` flag to `DialogWindow`](https://github.com/JetBrains/compose-multiplatform-core/pull/1120) -- Basic support of `BasicTextField2`: [#1227](https://github.com/JetBrains/compose-multiplatform-core/pull/1227), [#1264](https://github.com/JetBrains/compose-multiplatform-core/pull/1264) - -### Web - -- [Listen to browser clipboard events and bind them with Compose TextFieldSelectionManager and SelectionManager](https://github.com/JetBrains/compose-multiplatform-core/pull/1206) -- [Introduce ComposeViewport function that renders content in parent container](https://github.com/JetBrains/compose-multiplatform-core/pull/1211) -- [Introduce minimal virtual keyboard support](https://github.com/JetBrains/compose-multiplatform-core/pull/1259) - -### Resources - -- [Support three letters locales](https://github.com/JetBrains/compose-multiplatform/pull/4394) -- [Add DSL to configure compose resources](https://github.com/JetBrains/compose-multiplatform/pull/4482) -- [Support plural string resource](https://github.com/JetBrains/compose-multiplatform/pull/4519) -- [Add option to disable compose resources generation](https://github.com/JetBrains/compose-multiplatform/pull/4526) -- [XML resource optimizations](https://github.com/JetBrains/compose-multiplatform/pull/4559) -- [Get resource files as URI](https://github.com/JetBrains/compose-multiplatform/pull/4576) -- [Support source set's hierarchy for compose resources](https://github.com/JetBrains/compose-multiplatform/pull/4589) - -### Gradle Plugin - -- [Add possibility to modify the macOS minimum version](https://github.com/JetBrains/compose-multiplatform/pull/4271) -- [Make desktop preview task fully configuration cache compliant](https://github.com/JetBrains/compose-multiplatform/pull/4410) -- [Option to pack jars as uber JAR, support Proguard for uber JAR](https://github.com/JetBrains/compose-multiplatform/pull/4136) - -## Fixes - -### Common - -- [Propagate composition locals to layers in the (re)composition phase](https://github.com/JetBrains/compose-multiplatform-core/pull/1233) -- [Move the effects and synthetic events dispatching to after the draw phase in the render loop.](https://github.com/JetBrains/compose-multiplatform-core/pull/1260) -- [Prevent a few unnecessary re-compositions in `Popup` and `DesktopMenu`.](https://github.com/JetBrains/compose-multiplatform-core/pull/1225) -- [Fix render order of interop views](https://github.com/JetBrains/compose-multiplatform-core/pull/1145) -- [Reimplement SortedSet for JS/Native to improve performance](https://github.com/JetBrains/compose-multiplatform-core/pull/1167) -- [Allow drawing outside of platform layers](https://github.com/JetBrains/compose-multiplatform-core/pull/1190) - -### iOS - -- [Fix keyboard disappear on IME action](https://github.com/JetBrains/compose-multiplatform-core/pull/1118) - -### Desktop - -- [Fix nested scrolling on mouse wheel](https://github.com/JetBrains/compose-multiplatform-core/pull/1055) -- [Trigger fling callbacks on mouse wheel scroll (fixes `Pager` and lazy column/row spanning)](https://github.com/JetBrains/compose-multiplatform-core/pull/1100) -- [Fix missing clicks inside `SelectionContainer`](https://github.com/JetBrains/compose-multiplatform-core/pull/1106) -- [Fix clipping bounds of `SwingPanel`](https://github.com/JetBrains/compose-multiplatform-core/pull/1147) -- [Locale-aware date formatting for desktop](https://github.com/JetBrains/compose-multiplatform-core/pull/1159) -- [Pass the id of the node whose layout changed to accessibility controllers](https://github.com/JetBrains/compose-multiplatform-core/pull/1162) -- [Desktop `WINDOW` layer fixes](https://github.com/JetBrains/compose-multiplatform-core/pull/1189) -- [Fix crash when we resize ComposePanel after re-adding it to the hierarchy](https://github.com/JetBrains/compose-multiplatform-core/pull/1195) -- [Re-show the tooltip on mouse-move following a click in TooltipArea.](https://github.com/JetBrains/compose-multiplatform-core/pull/1209) -- [Fix the direction of scrolling when pressing on the scrollbar track with `reverseLayout=true`](https://github.com/JetBrains/compose-multiplatform-core/pull/1221) -- [Add transactions to `FocusOwnerImpl.takeFocus` and `releaseFocus` to prevent crash when a window is re-shown](https://github.com/JetBrains/compose-multiplatform-core/pull/1231) -- [Don't crash, and allow selection in `SelectionContainer` to start when drag starts below the bounds of the visible text](https://github.com/JetBrains/compose-multiplatform-core/pull/1230) - -### Web - -- [Implement actual `fun isCopyKeyEvent`](https://github.com/JetBrains/compose-multiplatform-core/pull/1101) -- [Send correct window sized on resize](https://github.com/JetBrains/compose-multiplatform-core/pull/1166) -- [Dispose all listened events alongside with the application being disposed](https://github.com/JetBrains/compose-multiplatform-core/pull/1239) -- [Modify `buttonFlags` only on `Press` and `Release`](https://github.com/JetBrains/compose-multiplatform-core/pull/1243) -- [Fix keyboard mappings](https://github.com/JetBrains/compose-multiplatform-core/pull/1249) - -### Resources - -- [Fix resource accessors compilation when there are huge number of resource files.](https://github.com/JetBrains/compose-multiplatform/pull/4294) -- [Init resource accessors lazily and in external function to avoid `MethodTooLargeException`](https://github.com/JetBrains/compose-multiplatform/pull/4404) -- [Fix `Res` class generation if the library is declared as 'api'](https://github.com/JetBrains/compose-multiplatform/pull/4406) -- [Fix resource packaging in APK when 'build' task is used with AGP 8.2+](https://github.com/JetBrains/compose-multiplatform/pull/4408) -- [Fix `regionCode` crash on iOS before 17](https://github.com/JetBrains/compose-multiplatform/pull/4473) -- [Use first of preferred locales instead of a current on iOS](https://github.com/JetBrains/compose-multiplatform/pull/4507) -- [Fix `readResourceBytes` function on Android if font is located under qualified directory](https://github.com/JetBrains/compose-multiplatform/pull/4512) -- [Fix android fonts in APKs](https://github.com/JetBrains/compose-multiplatform/pull/4509) -- [Handle special characters for quantity strings](https://github.com/JetBrains/compose-multiplatform/pull/4543) -- [Select default resource if there are no exact language+region or default language match](https://github.com/JetBrains/compose-multiplatform/pull/4577) - -## Dependencies - -- Gradle Plugin `org.jetbrains.compose`, version `1.6.0`. Based on Jetpack Compose libraries: - - [Compiler 1.5.11](https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.11) - - [Runtime 1.6.4](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.6.4) - - [UI 1.6.4](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.4) - - [Foundation 1.6.4](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.6.4) - - [Material 1.6.4](https://developer.android.com/jetpack/androidx/releases/compose-material#1.6.4) - - [Material3 1.2.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.2.1) - -- Lifecycle libraries `androidx.lifecycle:lifecycle-*:2.8.0-alpha01`. Based on: - - [Lifecycle 2.8.0-alpha04](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0-alpha04) - - [Lifecycle Runtime Compose 2.8.0-alpha02](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0-alpha02) _(due to Compose `1.6.*` compatibility)_ - -- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha01`. Based on [Jetpack Navigation 2.8.0-alpha05](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-alpha05) - -___ - # 1.6.2 (April 2024) _Changes since 1.6.1_