3.4 KiB
Compatability and versioning overview
Supported platforms
- macOS (x86-64, arm64)
- Windows (x86-64)
- Linux (x86-64, arm64)
- Web browsers
Limitations
Following limitations apply to 1.0 release.
- Only 64-bit x86 Windows is supported
- Only JDK 11 or later is supported due to the memory management scheme used in Skia bindings
- Only JDK 15 or later is supported for packaging native distributions due to jpackage limitations
Knowing issues on older versions:
- OpenJDK 11.0.12 has an issue, when we switch keyboard layout on MacOs (isn't reproducible in OpenJDK 11.0.15)
Kotlin compatibility
A new version of Kotlin may be not supported immediately after its release. But after some time we will release a version of Compose Multiplatform that supports it. Starting from 1.2.0, Compose Multiplatform supports multiple versions of Kotlin.
Kotlin version | Minimal Compose version | Notes |
---|---|---|
1.5.31 | 1.0.0 | |
1.6.20 | 1.1.1 | |
1.7.10 | 1.2.0 | |
1.7.20 | 1.2.0 | JS is not supported (will be fixed in the next versions) |
1.7.20 | 1.2.1 |
Relationship between the Jetpack Compose and Compose Multiplatform release cycles
Compose Multiplatform shares a lot of code with Jetpack Compose for Android, a framework developed by Google. We keep our release cycles aligned, making sure that the common part is properly tested and stabilized.
When a new version of Jetpack Compose is released, we pick the release commit, use it as a base for the next Compose Multiplatform version, finish new platform features, stabilize all platforms, and release Compose Multiplatform. The gap between a Compose Multiplatform release and a Jetpack Compose release is usually 1 to 3 months.
When you build your application for Android, the artifacts published by Google are used. For example, if you apply the Compose Multiplatform 1.2.0 Gradle plugin and add implementation(compose.material3)
to your dependencies
, then your project will use the androidx.compose.material3:material3:1.0.0-alpha14
artifact in the Android target (but org.jetbrains.compose.material3:material3:1.2.0
in the other targets). See the Updated dependencies
sections in the CHANGELOG to know exactly which version of the Jetpack Compose artifact will be used.
The Compose Compiler version can be changed independently of other Compose libraries. In order to support newer versions of Kotlin, you may want to use the cutting-edge Compose Compiler published by Google in your Compose Multiplatform project. For example, when a new version of Kotlin is released, the corresponding Compose Multiplatform release may not yet have been published, but manually specifying a newer Compose Compiler version can allow you to build your Compose Multiplatform app using the latest Kotlin release. To do so, set kotlinCompilerPlugin
in the compose
section of your build.gradle.kts
file as follows:
compose {
kotlinCompilerPlugin.set("androidx.compose.compiler:compiler:1.3.1")
}
However, keep in mind that this compiler version isn't tested with Compose Multiplatform, so stability isn't guaranteed.