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.
 
 
 
 
Oleksandr Karpovich 8e26fec13c Add explicit dependencies on modules to make it build with kotlin 1.9.0 (#3374) 1 year ago
.github Require JDK 17 for packaging (#3027) 2 years ago
.idea Update copyright notices 4 years ago
artwork Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
benchmarks Modify replace.sh for replacing Compose version (#1511) 3 years ago
benchmarks-intellij Intellij performance benchmark (#2009) 3 years ago
build-helpers Create destination dir if it does not exist (#1438) 3 years ago
ci Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
components Components. Downgrade to Kotlin 1.8.22 (#3390) 1 year ago
compose Remove submodules and update development guide (#3076) 1 year ago
docs Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
examples Widgets gallery: fix for mismatched @Composable annotation (#3402) 1 year ago
experimental Move experimental/examples to examples (#2976) 2 years ago
gradle-plugins Kotlin 1.9 for 1.4.2 (#3406) 1 year ago
html Add explicit dependencies on modules to make it build with kotlin 1.9.0 (#3374) 1 year ago
idea-plugin Intellij compatibility fixes (#2733) 2 years ago
license A third party license for NotoSans ttf fonts (#1870) 3 years ago
tooling Test Gradle plugin on relevant PRs (#2509) 2 years ago
tools Update all versions for 1.3.1 + update Changelog (#2856) 2 years ago
tutorials Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
.gitignore Fix examples, templates (#2359) 2 years ago
CHANGELOG.md Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
LICENSE.txt Update copyright notices 4 years ago
README.md Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
VERSIONING.md Compose Multiplatform 1.4.0 docs (#3044) 1 year ago
gradle.properties Enable official code style when root dir is opened in Intellij 4 years ago

README.md

official project Latest release Latest build

Compose Multiplatform

Compose Multiplatform is a declarative framework for sharing UIs 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 UIs 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

iOS support is in Alpha. It may change incompatibly and require manual migration in the future. We would appreciate your feedback on it in the public Slack channel #compose-ios. If you face any issues, please report them on GitHub.

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 for iOS

Android

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

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 for Desktop

Web

Web support is Experimental and may be changed at any time. Use it only for evaluation purposes. We would appreciate your feedback on it in the public Slack channel #compose-web. If you face any issues, please report them on GitHub.

You can experiment with sharing your mobile or desktop UIs with the web. Compose 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 for Web

All platforms at once

If you want to share UIs across all supported platforms at once, you can start with this template.

Note that this template currently doesn’t support the web. It will be added later.

We would appreciate your feedback on Compose Multiplatform in the public Slack channel #compose.

Learn more