JetBrains/compose-jb (org.jetbrains.compose.runtime:runtime)
### [`v1.7.1`](https://redirect.github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#171-November-2024)
*Changes since 1.7.0*
#### Fixes
##### Multiple Platforms
- [Fixed `Modifier.clickable` binary compatibility with 1.6 on non-JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1647)
- [Fixed `Modifier.toggleable` and `Modifier.selectable` binary compatibility with 1.6 on non-JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1649)
- [Fix issue where `DateRangePicker` doesn't show confirmation button on iOS and Desktop](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1666)
- [Fix Skia paragraph caching performance degradation](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1676)
##### iOS
- [Fling animation works correctly for fast scrolling gestures](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1616)
- [Fix HorizontalPager snapping on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1661)
- [Fixed double recomposition on the first screen](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1668)
- [Fix Accessibility Items availability inside dialogs](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1678)
- [Memory leak due to Compose view controller never GCed](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1660)
##### Desktop
- [Fix for excessive garbage generation from redrawing on Swing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1657)
#### Dependencies
- Gradle Plugin `org.jetbrains.compose`, version `1.7.1`. Based on Jetpack Compose libraries:
- [Runtime 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.5)
- [UI 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.5)
- [Foundation 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.5)
- [Material 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.5)
- [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1)
- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5)
- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0)
- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0)
***
### [`v1.7.0`](https://redirect.github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#170-October-2024)
*Changes since 1.6.11*
#### Highlights
#### Resources
- [Compose Multiplatform resources are stored in the android assets now. This fixes Android Studio Preview and cases such as a rendering resource files in WebViews or Media Players](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4965)
##### Navigation
- [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements)
- [Safe Args in Navigation Compose](https://developer.android.com/guide/navigation/design/type-safety)
##### Web
- [`skiko.js` is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5134). `skiko.js` will be removed from the k/wasm distribution in the future releases. `skiko.js` is still needed in case of K/JS Compose Multiplatform for web apps
#### Breaking changes
##### iOS
- [`UIKitView` and `UIKitViewController` in `package androidx.compose.ui.interop` are deprecated](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1494). New API are mentioned in deprecation message. Deprecated invocations should work fine unless custom `onResize` is used, it is disallowed now and will print a warning.
- [Actual of expected `InteropView` on iOS is `UIResponder` now instead of `UIView`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1489). It's the first common ancestor for `UIViewController` and `UIView`, both of which can be integrated using iOS interop APIs
- [The app will crash by default, if `CADisableMinimumFrameDurationOnPhone` is not set to true in `Info.plist`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1451). Use newly added `ComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck` to opt-out of this behavior
##### Desktop
- [`Modifier.onExternalDrag` has been deprecated in favor of the new `Modifier.dragAndDropTarget`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1528)
##### Android
- [Minimal supported AGP raised to 8.1.0](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4840)
##### Resources
- [Deprecate resources in `compose.ui` in favour of the new resource library](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1457)
#### Features
##### Multiple Platforms
- [The `clickable` modifier now responds to NumPadEnter and Spacebar, too, in addition to Enter](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1464)
- [`LocalLifecycleOwner` moved from Compose UI to `lifecycle-runtime-compose` so that its Compose-based helper APIs can be used outside of Compose UI](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1449)
- [Skia is updated to m126](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1486)
- [Commonized `org.jetbrains.compose.material3:material3-window-size-class` module](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1466)
- [Commonized `org.jetbrains.compose.material3.adaptive:adaptive*` modules](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1468)
- [New multiplatform module "material-navigation" (in beta status)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1504)
- [`material3-adaptive-navigation-suite` is multiplatform now](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1539)
- [Support Kotlin 1.9.25](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5141)
##### iOS
- [Initial iOS floating cursor support](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1312)
- [Added `accessibilityEnabled: Boolean = true` argument to `UIKitView` and `UIKitViewController`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1350)
- [`preferredStatusBarStyle`, `preferredStatysBarAnimation` and `prefersStatusBarHidden` are added to `ComposeUIViewControllerDelegate` to allow status bar appearance modification](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1378)
- [Improvements in touches processing to detect if touches were meant to be delivered to interop views, or should be processed by Compose](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1440)
- [New `UIKitView` and `UIKitViewController` API in `package androidx.compose.ui.viewinterop`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1494). Support of `onReset` to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches)
- [Basic support for `BasicTextField(TextFieldState, ...)` on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1540)
##### Desktop
- [Add constructor with `RenderSettings` to `ComposePanel`. Added a class `RenderSettings` with `val isVsyncEnabled: Boolean?`. When set to `true` gives a hint to renderer implementation of the particular `ComposePanel` to reduce the latency between the input and visual changes in exchange for possible screen tearing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1377)
- [Add public `moveEnabled` and `positionPercentage` setters in `SplitPaneState`](https://redirect.github.com/JetBrains/compose-multiplatform/pull/3974)
- [Implemented Drag-and-Drop from AOSP: `Modifier.dragAndDropSource` and `Modifier.dragAndDropTarget`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1433)
- [Added support for input methods (languages such as Chinese, Korean, Arabic) to BasicTextField(TextFieldState, ...)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1496)
- [Add dynamic Drag\&Drop target indication](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1510) (🚫 icon under cursor if currently there is no valid drop target under it)
- [The thickness of border resizers in undecorated windows and dialogs can now be controlled by passing a new `decoration` argument](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1505)
##### Resources
- [Speed resources web rendering up by the reading a cached value instantly](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4893)
- [If there is no resource with suitable density, use resource with the most suitable density, otherwise use default (similar to the Android logic)](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4969)
- [Add a customization for resources directories. Now it is possible to use e.g downloaded resources](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5016)
- [Now the gradle plugin generates resources map to find a resource by a string ID](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5068)
- [To avoid constant reading raw font bytes on each Font usage on non-android targets, there was added the font cache. Android has own font cache inside the platform implementation](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5109)
- [Added utility functions to decode `Bitmap ByteArray as ImageVector` and `XML ByteArray as ImageVector` in the common code and `SVG ByteArray as Painter` in the non-android code](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5098)
- [Added support of test resources in Compose Multiplatform projects](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5122)
- [Added support of multi-module resources in JVM-only projects](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5122)
##### Gradle Plugin
- [New `compose.material3AdaptiveNavigationSuite` shortcut in the gradle plugin](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5133)
#### Fixes
##### Multiple Platforms
- [Fix "ComposePanel. Focus moves to child after focusing/unfocusing the main window"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1398)
- [Don't show code completion for non-existenst API in `commonMain` that fails on Android with `NoSuchMethodException`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1328)
- [Fix order of interop elements in some cases](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1340)
- [Fixed `Popup` jerking during ripple effect animation](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1385)
- [Fix applying `ShaderBrush` to part of `AnnotatedString`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1389)
- [Fix text `brush` animation and optimized updating some visual text properties (applying time is reduced up to 40%)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1395)
- [Fix initial cursor position in the empty `TextField` with explicitly set `TextAlignment`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1354)
- [Fix focus for editable `TextField` inside `ExposedDropdownMenuBox`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1423)
- [Fix changing `FontRenderingSettings` is not reflected until composition restarts](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1595)
##### iOS
- [Pressing directional keys on a physical keyboard connected to iOS device doesn't cause a crash](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1383)
- [Dismissing popup or dialogue within a very short timespan after its creation doesn't cause a crash](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1384)
- [Fix missing invalidations during native view resize](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1387)
- [Fixed a memory spike when continuously resizing the `ComposeUIViewController` (such as when used in modal sheet presentation context with different detents)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1390)
- [visibility of selection handles in single-line textfields with LTR + RTL text in iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1331)
- [Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1430)
- [Touches inside interop views are not exclusive to them and are processed on Compose side as well.](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1426)
- [Fix `material3.ModalBottomSheet` safe area usage](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1438)
- [Fix hiding interop element during quick scroll](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1425)
- [Fixed the keyboard appearing when selecting from SelectionContainer](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1448)
- [Fix status bar padding on iPad devices](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1442)
- [VoiceOver doesn't allow to perform a11y actions (scrolling, activate, customActions) when disabled() semantics is present in affected element](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1446)
- [Fix frame drops when dragging scrollable content on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1503)
- [A new approach to implementation of `platformLayers`.](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1515) Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore.
- [`Dialog`s and `Popup`s now have their insets calculated correctly even when the frame of `ComposeUIViewController` spawning them doesn't intersect any safe areas](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1515)
- [Fix offset issues with keyboard and `TextField`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523)
- [Fix "Incorrect `imePadding` and high cpu usage when repeatedly opening and closing `Keyboard` on iOS"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523)
- [Fix "Selection handlers in wrong positions in a fullscreen TextField"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523)
- [Fix keyboard closing while scrolling content with Text Fields](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1558)
- [Fix "UriHandler.openUri no longer works on iOS 18"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1595)
##### Desktop
- [Fix possible `UninitializedPropertyAccessException` in `desktopTest`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1343)
- [Fixed `ComposePanel.requestFocus()`, making it correctly assign focus to the first focusable child](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1352)
- [When using `ComposePanel` inside a Swing application on macOS, VoiceOver will now correctly go into the `ComposePanel` when traversing accessible elements](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1362)
- [When using `ComposePanel` inside a Swing application on Windows with NVDA turned on, focus will now correctly go into the `ComposePanel` when traversing with (ctrl)-shift-tab](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1363)
- [Correctly save `WindowState` with unspecified `size` instead of crashing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1394)
- [Fix `IndexOutOfBoundsException` crash on Windows when traversing a11y elements](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1415)
- [Fix scrolling non-same direction nested scrolls with trackpad](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1434)
- [Fix fling velocity for precise wheel scroll](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1402)
- [\[macOS\] Fix crash when right-clicking an empty `SelectionContainer` or on the padding of a `Text` inside a `SelectionContainer`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1439)
- [Fix bounds of `ComposePanel` in IntelliJ on macOs](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1571)
- [Fix UI glitch when resizing a Compose window via its `WindowState`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1565)
##### Web
- [Process `keydown` and `keyup` keys for identified keys from virtual keyboard](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1380)
- [Allow preloading the fallback fonts. This enables the usage of emojis and other unicode characters without manually composing the Text with AnnotatedString](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1400)
- [Make sure the web app distribution doesn't contain a duplicate `skiko.wasm`](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4958)
- [Prevent a crash on mobile web when selecting some text in `SelectionContainer`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1551)
##### Resources
- [Delete `contextClassLoader` usage on JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4895)
- [Create an empty resource dir with "podspec" task instead "podInstall"](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4900)
- [Fix resource accessors escaping. Now it is possible to use resources with names: "package", "is", "item\_$xxx" etc](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4901)
- [Read exactly requested count of bytes from InputStream on jvm platforms](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4943)
- [Now drawables from upper DPIs will be downscalled to the expected size. (the same behavior as on Android)](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5101)
##### Gradle Plugin
- [Make sure tryGetSkikoRuntimeIfNeeded is executed only during the task execution](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4918)
- [Delete outdated build services](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4959)
- [Support project isolation](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5120)
- [Fix a gradle project misconfiguration when KSP and Room are used](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5129)
#### Dependencies
- Gradle Plugin `org.jetbrains.compose`, version `1.7.0`. Based on Jetpack Compose libraries:
- [Runtime 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.1)
- [UI 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.1)
- [Foundation 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.1)
- [Material 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.1)
- [Material3 1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0)
- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.3`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5)
- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0)
- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0)
***
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.6.11
->1.7.1
Release Notes
JetBrains/compose-jb (org.jetbrains.compose.runtime:runtime)
### [`v1.7.1`](https://redirect.github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#171-November-2024) *Changes since 1.7.0* #### Fixes ##### Multiple Platforms - [Fixed `Modifier.clickable` binary compatibility with 1.6 on non-JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1647) - [Fixed `Modifier.toggleable` and `Modifier.selectable` binary compatibility with 1.6 on non-JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1649) - [Fix issue where `DateRangePicker` doesn't show confirmation button on iOS and Desktop](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1666) - [Fix Skia paragraph caching performance degradation](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1676) ##### iOS - [Fling animation works correctly for fast scrolling gestures](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1616) - [Fix HorizontalPager snapping on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1661) - [Fixed double recomposition on the first screen](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1668) - [Fix Accessibility Items availability inside dialogs](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1678) - [Memory leak due to Compose view controller never GCed](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1660) ##### Desktop - [Fix for excessive garbage generation from redrawing on Swing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1657) #### Dependencies - Gradle Plugin `org.jetbrains.compose`, version `1.7.1`. Based on Jetpack Compose libraries: - [Runtime 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.5) - [UI 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.5) - [Foundation 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.5) - [Material 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.5) - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) - Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5) - Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) - Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) *** ### [`v1.7.0`](https://redirect.github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#170-October-2024) *Changes since 1.6.11* #### Highlights #### Resources - [Compose Multiplatform resources are stored in the android assets now. This fixes Android Studio Preview and cases such as a rendering resource files in WebViews or Media Players](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4965) ##### Navigation - [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements) - [Safe Args in Navigation Compose](https://developer.android.com/guide/navigation/design/type-safety) ##### Web - [`skiko.js` is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5134). `skiko.js` will be removed from the k/wasm distribution in the future releases. `skiko.js` is still needed in case of K/JS Compose Multiplatform for web apps #### Breaking changes ##### iOS - [`UIKitView` and `UIKitViewController` in `package androidx.compose.ui.interop` are deprecated](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1494). New API are mentioned in deprecation message. Deprecated invocations should work fine unless custom `onResize` is used, it is disallowed now and will print a warning. - [Actual of expected `InteropView` on iOS is `UIResponder` now instead of `UIView`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1489). It's the first common ancestor for `UIViewController` and `UIView`, both of which can be integrated using iOS interop APIs - [The app will crash by default, if `CADisableMinimumFrameDurationOnPhone` is not set to true in `Info.plist`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1451). Use newly added `ComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck` to opt-out of this behavior ##### Desktop - [`Modifier.onExternalDrag` has been deprecated in favor of the new `Modifier.dragAndDropTarget`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1528) ##### Android - [Minimal supported AGP raised to 8.1.0](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4840) ##### Resources - [Deprecate resources in `compose.ui` in favour of the new resource library](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1457) #### Features ##### Multiple Platforms - [The `clickable` modifier now responds to NumPadEnter and Spacebar, too, in addition to Enter](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1464) - [`LocalLifecycleOwner` moved from Compose UI to `lifecycle-runtime-compose` so that its Compose-based helper APIs can be used outside of Compose UI](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1449) - [Skia is updated to m126](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1486) - [Commonized `org.jetbrains.compose.material3:material3-window-size-class` module](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1466) - [Commonized `org.jetbrains.compose.material3.adaptive:adaptive*` modules](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1468) - [New multiplatform module "material-navigation" (in beta status)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1504) - [`material3-adaptive-navigation-suite` is multiplatform now](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1539) - [Support Kotlin 1.9.25](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5141) ##### iOS - [Initial iOS floating cursor support](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1312) - [Added `accessibilityEnabled: Boolean = true` argument to `UIKitView` and `UIKitViewController`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1350) - [`preferredStatusBarStyle`, `preferredStatysBarAnimation` and `prefersStatusBarHidden` are added to `ComposeUIViewControllerDelegate` to allow status bar appearance modification](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1378) - [Improvements in touches processing to detect if touches were meant to be delivered to interop views, or should be processed by Compose](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1440) - [New `UIKitView` and `UIKitViewController` API in `package androidx.compose.ui.viewinterop`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1494). Support of `onReset` to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches) - [Basic support for `BasicTextField(TextFieldState, ...)` on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1540) ##### Desktop - [Add constructor with `RenderSettings` to `ComposePanel`. Added a class `RenderSettings` with `val isVsyncEnabled: Boolean?`. When set to `true` gives a hint to renderer implementation of the particular `ComposePanel` to reduce the latency between the input and visual changes in exchange for possible screen tearing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1377) - [Add public `moveEnabled` and `positionPercentage` setters in `SplitPaneState`](https://redirect.github.com/JetBrains/compose-multiplatform/pull/3974) - [Implemented Drag-and-Drop from AOSP: `Modifier.dragAndDropSource` and `Modifier.dragAndDropTarget`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1433) - [Added support for input methods (languages such as Chinese, Korean, Arabic) to BasicTextField(TextFieldState, ...)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1496) - [Add dynamic Drag\&Drop target indication](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1510) (🚫 icon under cursor if currently there is no valid drop target under it) - [The thickness of border resizers in undecorated windows and dialogs can now be controlled by passing a new `decoration` argument](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1505) ##### Resources - [Speed resources web rendering up by the reading a cached value instantly](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4893) - [If there is no resource with suitable density, use resource with the most suitable density, otherwise use default (similar to the Android logic)](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4969) - [Add a customization for resources directories. Now it is possible to use e.g downloaded resources](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5016) - [Now the gradle plugin generates resources map to find a resource by a string ID](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5068) - [To avoid constant reading raw font bytes on each Font usage on non-android targets, there was added the font cache. Android has own font cache inside the platform implementation](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5109) - [Added utility functions to decode `Bitmap ByteArray as ImageVector` and `XML ByteArray as ImageVector` in the common code and `SVG ByteArray as Painter` in the non-android code](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5098) - [Added support of test resources in Compose Multiplatform projects](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5122) - [Added support of multi-module resources in JVM-only projects](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5122) ##### Gradle Plugin - [New `compose.material3AdaptiveNavigationSuite` shortcut in the gradle plugin](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5133) #### Fixes ##### Multiple Platforms - [Fix "ComposePanel. Focus moves to child after focusing/unfocusing the main window"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1398) - [Don't show code completion for non-existenst API in `commonMain` that fails on Android with `NoSuchMethodException`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1328) - [Fix order of interop elements in some cases](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1340) - [Fixed `Popup` jerking during ripple effect animation](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1385) - [Fix applying `ShaderBrush` to part of `AnnotatedString`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1389) - [Fix text `brush` animation and optimized updating some visual text properties (applying time is reduced up to 40%)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1395) - [Fix initial cursor position in the empty `TextField` with explicitly set `TextAlignment`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1354) - [Fix focus for editable `TextField` inside `ExposedDropdownMenuBox`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1423) - [Fix changing `FontRenderingSettings` is not reflected until composition restarts](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1595) ##### iOS - [Pressing directional keys on a physical keyboard connected to iOS device doesn't cause a crash](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1383) - [Dismissing popup or dialogue within a very short timespan after its creation doesn't cause a crash](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1384) - [Fix missing invalidations during native view resize](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1387) - [Fixed a memory spike when continuously resizing the `ComposeUIViewController` (such as when used in modal sheet presentation context with different detents)](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1390) - [visibility of selection handles in single-line textfields with LTR + RTL text in iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1331) - [Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1430) - [Touches inside interop views are not exclusive to them and are processed on Compose side as well.](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1426) - [Fix `material3.ModalBottomSheet` safe area usage](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1438) - [Fix hiding interop element during quick scroll](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1425) - [Fixed the keyboard appearing when selecting from SelectionContainer](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1448) - [Fix status bar padding on iPad devices](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1442) - [VoiceOver doesn't allow to perform a11y actions (scrolling, activate, customActions) when disabled() semantics is present in affected element](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1446) - [Fix frame drops when dragging scrollable content on iOS](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1503) - [A new approach to implementation of `platformLayers`.](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1515) Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore. - [`Dialog`s and `Popup`s now have their insets calculated correctly even when the frame of `ComposeUIViewController` spawning them doesn't intersect any safe areas](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1515) - [Fix offset issues with keyboard and `TextField`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523) - [Fix "Incorrect `imePadding` and high cpu usage when repeatedly opening and closing `Keyboard` on iOS"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523) - [Fix "Selection handlers in wrong positions in a fullscreen TextField"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1523) - [Fix keyboard closing while scrolling content with Text Fields](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1558) - [Fix "UriHandler.openUri no longer works on iOS 18"](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1595) ##### Desktop - [Fix possible `UninitializedPropertyAccessException` in `desktopTest`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1343) - [Fixed `ComposePanel.requestFocus()`, making it correctly assign focus to the first focusable child](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1352) - [When using `ComposePanel` inside a Swing application on macOS, VoiceOver will now correctly go into the `ComposePanel` when traversing accessible elements](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1362) - [When using `ComposePanel` inside a Swing application on Windows with NVDA turned on, focus will now correctly go into the `ComposePanel` when traversing with (ctrl)-shift-tab](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1363) - [Correctly save `WindowState` with unspecified `size` instead of crashing](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1394) - [Fix `IndexOutOfBoundsException` crash on Windows when traversing a11y elements](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1415) - [Fix scrolling non-same direction nested scrolls with trackpad](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1434) - [Fix fling velocity for precise wheel scroll](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1402) - [\[macOS\] Fix crash when right-clicking an empty `SelectionContainer` or on the padding of a `Text` inside a `SelectionContainer`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1439) - [Fix bounds of `ComposePanel` in IntelliJ on macOs](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1571) - [Fix UI glitch when resizing a Compose window via its `WindowState`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1565) ##### Web - [Process `keydown` and `keyup` keys for identified keys from virtual keyboard](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1380) - [Allow preloading the fallback fonts. This enables the usage of emojis and other unicode characters without manually composing the Text with AnnotatedString](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1400) - [Make sure the web app distribution doesn't contain a duplicate `skiko.wasm`](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4958) - [Prevent a crash on mobile web when selecting some text in `SelectionContainer`](https://redirect.github.com/JetBrains/compose-multiplatform-core/pull/1551) ##### Resources - [Delete `contextClassLoader` usage on JVM targets](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4895) - [Create an empty resource dir with "podspec" task instead "podInstall"](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4900) - [Fix resource accessors escaping. Now it is possible to use resources with names: "package", "is", "item\_$xxx" etc](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4901) - [Read exactly requested count of bytes from InputStream on jvm platforms](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4943) - [Now drawables from upper DPIs will be downscalled to the expected size. (the same behavior as on Android)](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5101) ##### Gradle Plugin - [Make sure tryGetSkikoRuntimeIfNeeded is executed only during the task execution](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4918) - [Delete outdated build services](https://redirect.github.com/JetBrains/compose-multiplatform/pull/4959) - [Support project isolation](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5120) - [Fix a gradle project misconfiguration when KSP and Room are used](https://redirect.github.com/JetBrains/compose-multiplatform/pull/5129) #### Dependencies - Gradle Plugin `org.jetbrains.compose`, version `1.7.0`. Based on Jetpack Compose libraries: - [Runtime 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.1) - [UI 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.1) - [Foundation 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.1) - [Material 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.1) - [Material3 1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0) - Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.3`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5) - Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) - Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) ***Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.