A desktop GUI for Android app testing with ADB, supporting Windows and macOS, with device listing, shell commands, text input, screenshots and virtual displays.
JetBrains/compose-multiplatform
A declarative Kotlin UI framework based on Jetpack Compose for sharing UI code across iOS, Android, desktop and web.
- Stars
- 19,433
- Forks
- 1,439
- Open issues
- 26
- Last commit
- 13 hours ago
What is it?
Compose Multiplatform is a declarative UI framework for Kotlin that lets developers write user interface code once and run it on several platforms. It is built on Jetpack Compose, so most of its API matches the Android framework, and it is developed by JetBrains with open-source contributors.
The framework targets iOS, Android, desktop (Windows, macOS and Linux) and the web. The web target, based on Kotlin/Wasm, is currently in Beta. Because it sits on Kotlin Multiplatform, code can call native APIs such as the camera, and native views such as MKMapView can be embedded in the UI. Desktop support includes menus, keyboard shortcuts, window management and notifications.
Compose HTML is a separate library for Kotlin/JS that builds web interfaces from HTML and CSS building blocks. It is not multiplatform and works only with Kotlin/JS.
Key features
- 01Shares most of its API with Jetpack Compose across platforms.
- 02Runs on iOS, Android, Windows, macOS and Linux.
- 03Supports hardware-accelerated rendering on desktop.
- 04Lets code access native APIs and embed native views.
- 05Offers a Kotlin/Wasm-based web target (Beta).
Use cases
- Sharing UI code between an iOS app and an Android app.
- Building a desktop application for Windows, macOS and Linux with Kotlin.
- Trying out a Kotlin-based web front end compiled to WebAssembly.
Quick start
- 1
Start a new project from the official starter page linked in the README
- 2
Browse the samples and tutorials to learn the framework
Things to know
- Web support is still in Beta.
- Compose HTML works only with Kotlin/JS and is not multiplatform.
Topics
FAQ
- What is compose-multiplatform?
- A declarative Kotlin UI framework based on Jetpack Compose for sharing UI code across iOS, Android, desktop and web. Compose Multiplatform is a declarative UI framework for Kotlin that lets developers write user interface code once and run it on several platforms. It is built on Jetpack Compose, so most of its API matches the Android framework, and it is developed by JetBrains with open-source contributors.
- Is compose-multiplatform free to use? What license does it have?
- compose-multiplatform is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is compose-multiplatform still maintained?
- Actively maintained. The last commit to compose-multiplatform was on Oct 21, 2026.
- What can I use compose-multiplatform for?
- Sharing UI code between an iOS app and an Android app. Building a desktop application for Windows, macOS and Linux with Kotlin. Trying out a Kotlin-based web front end compiled to WebAssembly.
- How do I install compose-multiplatform?
- Start a new project from the official starter page linked in the README Browse the samples and tutorials to learn the framework
- Where can I get compose-multiplatform?
- The source code and installation instructions are on GitHub: https://github.com/JetBrains/compose-multiplatform
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Python framework for building web, desktop and mobile apps with a Flutter-based UI, no frontend experience needed.
Slint is a declarative GUI toolkit for building native user interfaces in Rust, C++, JavaScript, or Python apps.
Google's open-source SDK for building natively compiled mobile, web, and desktop apps from a single Dart codebase.
Open-source, privacy-first analytics for mobile, desktop and web apps, offered as an alternative to Firebase and Google Analytics.
A free, open-source Android app that turns your phone into a self-hosted web dashboard for managing files, messages, calls, media and screen over your local network.