Skip to content

Releases: JetBrains/compose-multiplatform

1.6.10-dev1590

18 Apr 15:09
2d225f3
Compare
Choose a tag to compare
1.6.10-dev1590 Pre-release
Pre-release
Delete the experimental mark from the stable resources library API (#…

…4623)

And remove internal testing methods

1.6.10-dev1584

16 Apr 14:33
331aec0
Compare
Choose a tag to compare
1.6.10-dev1584 Pre-release
Pre-release
Hot fix integration with cocoapods (#4628)

Get the cocoapods extension from the kotlin instead project object and
configure task dependency lazy

1.6.10-beta01

17 Apr 13:54
331aec0
Compare
Choose a tag to compare
1.6.10-beta01 Pre-release
Pre-release

Changes since 1.6.2

Highlights

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 use fun <VM> viewModel(KClass, ...) overload instead
  • Compose Multiplatform doesn't provide default ViewModelStoreOwner yet. For using ViewModels outside of NavHost you need to provide custom store owner via LocalViewModelStoreOwner

Features

Multiple Platforms

iOS

Desktop

Web

Resources

Gradle Plugin

Fixes

Multiple Platforms

iOS

Desktop

Web

Resources

  • [Fix resource accessors compilation when there are huge number of resource...
Read more

1.6.10-dev1583

16 Apr 07:06
f0c1094
Compare
Choose a tag to compare
1.6.10-dev1583 Pre-release
Pre-release
v1.6.10-dev1583

[resources] Support SVG drawables for non android platforms (#4605)

1.6.10-dev1580

12 Apr 14:08
994f0c6
Compare
Choose a tag to compare
1.6.10-dev1580 Pre-release
Pre-release
Option to pack jars as uber JAR, support Proguard for uber JAR (#4136)

## Proposed changes
1. Added support to join JARs to the uber JAR with ProGuard, disabled by
default:
```
compose.desktop {
    application {
        buildTypes.release.proguard {
            joinOutputJars.set(true)
        }
    }
}
```
2. All 'release' tasks now really depend on ProGuard, as stated in
[tutorial](https://github.com/JetBrains/compose-multiplatform/tree/master/tutorials/Native_distributions_and_local_execution#minification--obfuscation).

## Testing
- A new auto test

- Manual:
1. Test on Windows/macOs/Linux
2. Test the new Gradle parameter `joinOutputJars`:
```
compose.desktop {
    application {
        buildTypes.release.proguard {
            joinOutputJars.set(true)
        }
    }
}
```
`false` (by default) should generate multiple jars (except for
`package*UberJarForCurrentOS`)
`true` should generate a single jar in a result distribution
3. Test debug tasks:
```
run
runDistributable
createDistributable
packageUberJarForCurrentOS
```
4. Test release tasks:
```
runRelease
runReleaseDistributable
createReleaseDistributable
packageReleaseUberJarForCurrentOS
```
The jars should be reduced in size (because Proguard is enabled in the
release mode)

This should be test by QA.

## Issues fixed
Fixes https://github.com/JetBrains/compose-multiplatform/issues/4129

---------

Co-authored-by: Igor Demin <igordmn@users.noreply.github.com>

1.6.10-dev1578

11 Apr 15:55
Compare
Choose a tag to compare
1.6.10-dev1578 Pre-release
Pre-release
v1.6.10-dev1578

Compose 1.6.2

1.6.10-dev1575

10 Apr 14:18
062c9eb
Compare
Choose a tag to compare
1.6.10-dev1575 Pre-release
Pre-release
Support source set's hierarchy for compose resources (#4589)

Compose resources can be located in different KMP source sets in the
`composeResources` directory. For each resource an accessor will be
generated in the suitable kotlin source set.

1.6.2

10 Apr 17:39
0bcfa4f
Compare
Choose a tag to compare

1.6.10-dev1571

09 Apr 05:13
Compare
Choose a tag to compare
1.6.10-dev1571 Pre-release
Pre-release
v1.6.10-dev1571

[gradle] Fix test data

1.6.10-dev1561

04 Apr 11:18
93f3725
Compare
Choose a tag to compare
1.6.10-dev1561 Pre-release
Pre-release
Make desktop preview task fully configuration cache compliant (#4410)

The issue was in a case where there wasn't a direct dependency on the
skiko artifact, the task would attempt to get one at task execution
time. This moves that to task configuration time.