Releases: JetBrains/compose-multiplatform
1.7.0-dev1743
v1.7.0-dev1743 Change issue tracker to YouTrack in readme (#5111)
1.7.0-alpha02
Changes since 1.7.0-alpha01
Features
Multiple Platforms
- The
clickable
modifier now responds to NumPadEnter and Spacebar, too, in addition to Enter LocalLifecycleOwner
moved from Compose UI tolifecycle-runtime-compose
so that its Compose-based helper APIs can be used outside of Compose UI
iOS
Desktop
Resources
- Now the gradle plugin generates resources map to find a resource by a string ID
- 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
Fixes
Multiple Platforms
iOS
- Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match
- Touches inside interop views are not exclusive to them and are processed on Compose side as well.
- Fix
material3.ModalBottomSheet
safe area usage - Fix hiding interop element during quick scroll
- (prerelease fix) Fixed floating cursor isn't working
- Fixed the keyboard appearing when selecting from SelectionContainer
- Fix status bar padding on iPad devices
- VoiceOver doesn't allow to perform a11y actions (scrolling, activate, customActions) when disabled() semantics is present in affected element
Desktop
- Fix scrolling non-same direction nested scrolls with trackpad
- Fix fling velocity for precise wheel scroll
- (prerelease fix) Fix remaining focus indication after a click
Resources
- (prerelease fix) Fix an android app compose resources packaging broken after introduction AS previews
- Now drawables from upper DPIs will be downscalled to the expected size. (the same behavior as on Android)
Gradle plugin
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-alpha02
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha08
. Based on Jetpack Navigation 2.8.0-beta03
1.7.0-dev1742
Fix skiko.js unpacking for k/js target (#5105) K/JS and K/Wasm have differences in the packaging logic, and therefore we need to account for it when unpacking Skiko files. Fixes [CMP-5649](https://youtrack.jetbrains.com/issue/CMP-5649) ## Testing - Added a test, which checks the state of k/js distribution This should be tested by QA
1.7.0-dev1739
Add support for high-refresh rate displays in examples (#5104) Turns out a number of our samples were still missing ``` <key>CADisableMinimumFrameDurationOnPhone</key> <true/> ```
1.7.0-dev1731
v1.7.0-dev1731 [gradle] Create static android assets directory if it doesn't exist
1.7.0-dev1727
v1.7.0-dev1727 [gradle] Create static android assets directory if it doesn't exist
1.7.0-dev1721
v1.7.0-dev1721 [gradle] Update local version of Compose Libraries used by Gradle plu…
1.7.0-alpha01
Changes since 1.6.11
Highlights
- 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
- Shared Element Transitions
- Safe Args in Navigation Compose
Breaking changes
Android
Features
iOS
- Initial iOS floating cursor support
- Added
accessibilityEnabled: Boolean = true
argument toUIKitView
andUIKitViewController
preferredStatusBarStyle
,preferredStatysBarAnimation
andprefersStatusBarHidden
are added toComposeUIViewControllerDelegate
to allow status bar appearance modification
Desktop
- Add constructor with
RenderSettings
toComposePanel
. Added a classRenderSettings
withval isVsyncEnabled: Boolean?
. When set totrue
gives a hint to renderer implementation of the particularComposePanel
to reduce the latency between the input and visual changes in exchange for possible screen tearing - Add public
moveEnabled
andpositionPercentage
setters inSplitPaneState
Resources
- Speed resources web rendering up by the reading a cached value instantly
- If there is no resource with suitable density, use resource with the most suitable density, otherwise use default (similar to the Android logic)
- Add a customization for resources directories. Now it is possible to use e.g downloaded resources
Fixes
Multiple Platforms
- Fix "ComposePanel. Focus moves to child after focusing/unfocusing the main window"
- Don't show code completion for non-existenst API in
commonMain
that fails on Android withNoSuchMethodException
- Fix order of interop elements in some cases
- Fixed
Popup
jerking during ripple effect animation - Fix applying
ShaderBrush
to part ofAnnotatedString
- Fix text
brush
animation and optimized updating some visual text properties (applying time is reduced up to 40%) - Fix initial cursor position in the empty
TextField
with explicitly setTextAlignment
- Fix focus for editable
TextField
insideExposedDropdownMenuBox
iOS
- Pressing directional keys on a physical keyboard connected to iOS device doesn't cause a crash
- Dismissing popup or dialogue within a very short timespan after its creation doesn't cause a crash
- Fix missing invalidations during native view resize
- Fixed a memory spike when continuously resizing the
ComposeUIViewController
(such as when used in modal sheet presentation context with different detents) - visibility of selection handles in single-line textfields with LTR + RTL text in iOS
Desktop
- Fix possible
UninitializedPropertyAccessException
indesktopTest
- Fixed
ComposePanel.requestFocus()
, making it correctly assign focus to the first focusable child - When using
ComposePanel
inside a Swing application on macOS, VoiceOver will now correctly go into theComposePanel
when traversing accessible elements - When using
ComposePanel
inside a Swing application on Windows with NVDA turned on, focus will now correctly go into theComposePanel
when traversing with (ctrl)-shift-tab - Correctly save
WindowState
with unspecifiedsize
instead of crashing - Fix
IndexOutOfBoundsException
crash on Windows when traversing a11y elements
Web
- Process
keydown
andkeyup
keys for identified keys from virtual keyboard - Allow preloading the fallback fonts. This enables the usage of emojis and other unicode characters without manually composing the Text with AnnotatedString
- Make sure the web app distribution doesn't contain a duplicate
skiko.wasm
Resources
- Delete
contextClassLoader
usage on JVM targets - Create an empty resource dir with "podspec" task instead "podInstall"
- Fix resource accessors escaping. Now it is possible to use resources with names: "package", "is", "item_$xxx" etc
- Read exactly requested count of bytes from InputStream on jvm platforms
Gradle Plugin
- Make sure tryGetSkikoRuntimeIfNeeded is executed only during the task execution
- Delete outdated build services
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.7.0-alpha01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha08
. Based on Jetpack Navigation 2.8.0-beta03
1.7.0-dev1703
Merged Navigation 2.8.0-beta03
1.7.0-dev1698
Merged Material 3 1.3.0-beta03