v1.6.10-beta01
版本发布时间: 2024-04-17 21:54:12
JetBrains/compose-multiplatform最新发布版本:v1.7.0-dev1783(2024-08-31 01:10:20)
Changes since 1.6.2
Highlights
- Experimental multiplatform support of
Lifecycle
andViewModel
. See documentation for details - Experimental multiplatform support of Jetpack Navigation. See documentation for details or check out the nav_cupcake project which was converted from the Navigate between screens with Compose Android codelab
-
Support multi-module projects and libraries publication with Compose resources (Kotlin
2.0.0-Beta05
or higher is required)
Known issues
-
⚠️ Crash at startup on pre-iOS 17 devices due to loading
UITextLoupeSession
-
lifecycle-runtime
breaks Compose UI compatibility with Java 11 on desktop, it requires Java 17 or above now. -
inline fun <reified VM> viewModel(...)
is not available from common due to compiler bug. Please usefun <VM> viewModel(KClass, ...)
overload instead - Compose Multiplatform doesn't provide default
ViewModelStoreOwner
yet. For usingViewModel
s outside ofNavHost
you need to provide custom store owner viaLocalViewModelStoreOwner
Features
Multiple Platforms
- Add font rasterization settings in paragraph style
-
Localize internal strings in
ui
,material
andmaterial3
iOS
- Magnifier for iOS 17+
-
Support software keyboard inset in
Dialog
- iOS a11y dialogues and popups integration
-
OS logging integrated with
trace
- Support accessibility scroll
- Improve iOS a11y sync behavior
- Add throttle for text context menu updates
- Support a11y for interop views
-
Support
HapticFeedback
on iOS -
iOS support
LiveRegion
semantics in a11y
Desktop
-
Add an
alwaysOnTop
flag toDialogWindow
- Basic support of
BasicTextField2
: #1227, #1264 full support and support for other platforms is planned for 1.7.0
Web
- Listen to browser clipboard events and bind them with Compose TextFieldSelectionManager and SelectionManager
- Introduce ComposeViewport function that renders content in parent container
- Introduce minimal virtual keyboard support
Resources
- Support three letters locales
- Add DSL to configure compose resources
- Support plural string resource
- Add option to disable compose resources generation
- XML resource optimizations
- Get resource files as URI
- Support source set's hierarchy for compose resources
- Support SVG drawables for non android platforms
Gradle Plugin
- Add possibility to modify the macOS minimum version
- Make desktop preview task fully configuration cache compliant
- Option to pack jars as uber JAR, support Proguard for uber JAR
Fixes
Multiple Platforms
-
Fix
NaN
font metrics by initializing typeface forTextStyle
- Fix render order of interop views
- Reimplement SortedSet for JS/Native to improve performance
- Allow drawing outside of platform layers
-
Prevent a few unnecessary re-compositions in
Popup
andDesktopMenu
- Propagate composition locals to layers in the (re)composition phase
- Move the effects and synthetic events dispatching to after the draw phase in the render loop
iOS
- Fix keyboard disappear on IME action
-
Fix nested scroll when
Pager
involved in scrolling process - Fix a11y wrong bounds calculation
- Delay tap indication inside scroll
-
Fix keyboard opening when scrolling begins within a
TextField
- Fix IME window insets and view offset when keyboard appears
- Fix animation frozen after app went background
Desktop
- Fix nested scrolling on mouse wheel
-
Trigger fling callbacks on mouse wheel scroll (fixes
Pager
and lazy column/row spanning) -
Fix
Pager
direction detection for mouse wheel -
Fix missing clicks inside
SelectionContainer
-
Fix clipping bounds of
SwingPanel
- Locale-aware date formatting for desktop
- Pass the id of the node whose layout changed to accessibility controllers
-
WINDOW
layer fixes: #1181, #1185, #1187, #1189 -
Fix crash when we resize
ComposePanel
after re-adding it to the hierarchy -
Fix propagation of
LocalLocalization
- Re-show the tooltip on mouse-move following a click in TooltipArea
-
Fix the direction of scrolling when pressing on the scrollbar track with
reverseLayout=true
-
Fix crash and allow selection in
SelectionContainer
to start when drag starts below the bounds of the visible text -
Fix a crash on Windows without
dcomp.dll
Web
-
Implement actual
fun isCopyKeyEvent
- Fix metadata compilation
-
Support
sendKey
test utility function on wasm target - Send correct window sized on resize
- Dispose all listened events alongside with the application being disposed
-
Modify
buttonFlags
only onPress
andRelease
- Fix keyboard mappings
-
Correct density rounding in
ComposeWindow::resize
Resources
- Fix resource accessors compilation when there are huge number of resource files
-
Init resource accessors lazily and in external function to avoid
MethodTooLargeException
-
Fix
Res
class generation if the library is declared as 'api' - Fix resource packaging in APK when 'build' task is used with AGP 8.2+
- Use first of preferred locales instead of a current on iOS
-
Fix
readResourceBytes
function on Android if font is located under qualified directory - Fix android fonts in APKs
- Handle special characters for quantity strings
- Select default resource if there are no exact language+region or default language match
Dependencies
-
Gradle Plugin
org.jetbrains.compose
, version1.6.10-beta01
. Based on Jetpack Compose libraries: -
Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0-alpha01
. Based on:- Lifecycle 2.8.0-alpha04
-
Lifecycle Runtime Compose 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