Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Ivan Matkov 2540b9797e
Downgrade Kotlin to 2.2.20 in libraries (#5484)
1 month ago
.github New AGP target migration (#5466) 2 months ago
.idea Update copyright notices 5 years ago
artwork update: new logo and README cleanup (#5324) 7 months ago
benchmarks Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
ci Fix maven example - explicitly add `ui` dependency to align version (#5479) 1 month ago
components Downgrade Kotlin to 2.2.20 in libraries (#5484) 1 month ago
compose Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
docs Update links to docs on the new portal (#3897) 2 years ago
examples Update Kotlin to 2.2.21 in tests and examples (#5475) 1 month ago
experimental Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
gradle-plugins Downgrade Kotlin to 2.2.20 in libraries (#5484) 1 month ago
html Downgrade Kotlin to 2.2.20 in libraries (#5484) 1 month ago
idea-plugin Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
instrumented-test Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
license A third party license for NotoSans ttf fonts (#1870) 4 years ago
tooling Bump versions (Kotlin, AGP, Gradle) (#5399) 4 months ago
tools add changelog for Compose Multiplatform 1.9.2 (#5463) 2 months ago
tutorials Update Kotlin to 2.2.21 in tests and examples (#5475) 1 month ago
.gitignore Fixes after version bumps (#5408) 4 months ago
CHANGELOG.md add changelog for 1.9.3 (#5472) 1 month ago
LICENSE.txt Update copyright notices 5 years ago
README.md Update web support status (#5438) 3 months ago
VERSIONING.md Update links to docs on the new portal (#3897) 2 years ago
gradle.properties Enable official code style when root dir is opened in Intellij 5 years ago

README.md

official project stable prerelease dev

Compose Multiplatform logo and name

Compose Multiplatform is a declarative framework for sharing UI code across multiple platforms with Kotlin. It is based on Jetpack Compose and developed by JetBrains and open-source contributors.

You can choose the platforms across which to share your UI code using Compose Multiplatform:

For example, you can share UIs between iOS and Android or Windows and MacOS.

Shared UIs of the iOS, Android, desktop, and web apps

iOS

Compose Multiplatform shares most of its API with Jetpack Compose, the Android UI framework developed by Google. You can use the same APIs to build user interfaces for both Android and iOS.

Since Compose is built on top of Kotlin Multiplatform, you can easily access native APIs, such as the Camera API, and embed complex native UI views, such as MKMapView.

Get started with Compose Multiplatform

Android

When Android is one of your targets, you get the same experience for Android as if you were developing an Android app using Jetpack Compose.

Get started with Compose Multiplatform

Desktop

Compose Multiplatform targets the JVM and supports high-performance hardware-accelerated UI rendering on all major desktop platforms – macOS, Windows, and Linux.

It has desktop extensions for menus, keyboard shortcuts, window manipulation, and notification management.

Get started with Compose Multiplatform

Web

Web support is in Beta, making it a great time to give it a try. Check out our blog post to learn more about the progress made to reach this milestone. We would appreciate your feedback on it in the public Slack channel #compose-web. If you face any issues, please report them on YouTrack.

You can experiment with sharing your mobile or desktop UIs with the web. Compose Multiplatform for web is based on Kotlin/Wasm, the newest target for Kotlin Multiplatform projects. It allows Kotlin developers to run their code in the browser with all the benefits that WebAssembly has to offer, such as good and predictable performance for your applications.

Get started with Compose Multiplatform for web

Libraries

Compose HTML

Compose HTML is a library targeting Kotlin/JS that provides Composable building blocks for creating web user interfaces with HTML and CSS.

Note that Compose HTML is not a multiplatform library. It can be used only with Kotlin/JS.

Learn more

Get help

There are dedicated public Slack channels for #compose-ios, #compose-desktop and #compose-web, as well as the general #compose channel.

If you encounter any issues, please report them on YouTrack.