Kotlin
A concise multiplatform language developed by JetBrains
What’s Next for Kotlin Multiplatform and Compose Multiplatform – August 2025 Update
This post outlines our priorities and the general direction for our Kotlin Multiplatform and Compose Multiplatform projects over the next six to twelve months. Our goals for Kotlin Multiplatform are closely aligned with those detailed in the Kotlin roadmap. Be sure to check it out for more context around the direction we’re heading.
Key priorities
Kotlin Multiplatform spans many areas, from language features and target-specific compilation to our IDE plugin. It’s a lot to track, so here are the three key priorities that guide our work:
- Make the iOS target a pleasure to work with
While the iOS target matures, the developer experience still has room for improvement. Build speed remains a common Kotlin/Native concern, so we’re addressing it by fixing key issues to speed up builds across project types. We’ll also continue developing the experimental Swift Export feature to provide a better experience when calling Kotlin code from Swift. - Enable more use cases for the web targets
Kotlin/JS already powers robust web apps, and Kotlin/Wasm is on track to be able to do the same soon. By promoting Compose for Web and Kotlin/Wasm to Beta, we expect to see pioneers starting to ship small- to medium-sized apps to production. We’re also enhancing JavaScript export to improve business logic sharing across platforms. - Improve the developer experience in the IDE
Following the first release of the Kotlin Multiplatform plugin earlier this year, we’re working to expand support with Windows and Linux versions, improved Swift integration, and essential web tooling. Our goal is to make IntelliJ IDEA and Android Studio exceptional environments for multiplatform development.
Compose Multiplatform
Release Compose Multiplatform for Web in Beta
This Beta version embodies our commitment to support and evolve the existing APIs of Compose Multiplatform for Web. Most essential APIs will be available, enabling early adopters to confidently move to production with the existing feature set. After this Beta release, we will keep working on the remaining Compose APIs and further performance improvements. We heavily depend on your feedback, so please reach out on the Kotlinlang slack or report any issues on YouTrack.
Make more ecosystem components available for Compose Multiplatform
Google has developed excellent Jetpack libraries, which are already available for Android. We’re collaborating closely with Google to make more Jetpack libraries, such as Navigation 3 and Paging 3, available for Compose Multiplatform.
Implement new text input on iOS
This new text input implementation provides a more native appearance and behavior. Additionally, it encompasses features like selection, magnification, integration with writing tools and text toolbar actions such as AutoFill and Passwords.
Commonize Compose @Preview annotations
Our goal is to simplify the use of @Preview annotations. Currently, there are three distinct @Preview annotations across different packages, making it challenging to determine the correct combination of annotation, platform, and IDE.
Kotlin Multiplatform IDE plugin
Support for Windows and Linux in the Kotlin Multiplatform IDE plugin
We’ve heard your requests and will be releasing the Kotlin Multiplatform plugin for Windows and Linux as well. On these platforms, you’ll be able to create KMP projects with the wizard, rely on preflight checks, use Compose Hot Reload and easily run apps for Android, web, desktop, and server. Due to Apple tooling restrictions, Swift support and iOS run configs won’t be available.
Improve the Swift development experience with the Kotlin Multiplatform IDE plugin
We’re targeting several key improvements for Swift development:
- The generated Kotlin code for Apple frameworks will be extended with documentation.
- The quick documentation (QuickDoc) feature will be improved to consistently display documentation for Swift or Objective-C libraries imported through cinterop.
- Support for Swift 6.2 and Xcode 26 will be added.
- We’ll improve more advanced features like renaming, cross-navigation, and finding usages across languages.
General and quality improvements
- We’re improving the KMP project wizard to better support both application and library developers.
- Integrate web target workflows, including the JavaScript debugger, run configurations, and more options in the KMP project wizard.
- For Compose Previews, we’re investing in better error reporting, automatic inspections, and analytics to improve reliability.
- Upgrading dependencies shouldn’t be a guessing game. We plan to introduce and maintain a compatibility matrix to clarify which IDE, Gradle plugin, and library versions work well together.
Kotlin/Native
Reducing Kotlin/Native build times
To reduce Kotlin/Native build times, we’re working on multiple areas:
- We’re extending our performance analysis of all compilation phases across real-world projects, helping us identify and prevent regressions.
- We’re optimizing the compiler internals, focusing specifically on build speed.
- Lastly, we will replace the frequently misused kotlin.native.cacheKind property with a safer alternative to avoid unintentional build slowdowns.
Continued development of Swift Export
In the short term, our goal for Swift Export is to match the capabilities you already have with Objective-C export. In addition, we plan to add built-in support for suspend functions and Flow in Swift Export, supporting concurrency on Apple platforms. In 2026, we aim for a stable release covering most features essential for idiomatic interoperability between Swift and Kotlin.
Kotlin/JS
Fallback to Kotlin/JS for Compose for Web
As part of the Compose for Web Beta, we will be introducing a compatibility mode using Kotlin/JS as a fallback. This broadens browser support for Compose for Web, which defaults to Kotlin/Wasm for performance. The fallback allows apps to run on older browsers that don’t support modern Wasm features like garbage collection or exception handling.
Extending the capabilities of JavaScript Export
We’re improving how Kotlin declarations are exported to and consumed from JavaScript:
- Exporting suspend functions (KT-56281)
- Exporting value classes (KT-72198)
- Exporting typealiases (KT-49795)
- Adding documentation to generated .d.ts files (KT-56493)
- Allowing Kotlin interfaces to be implemented from TypeScript
Kotlin/Wasm
Beta release of the Kotlin/Wasm target
To promote Kotlin/Wasm to Beta, we aim to:
- Implement numerous compiler fixes focused on semantics and the developer experience
- Review and improve the quality of the standard library for Wasm
- Add experimental annotations to interop APIs
- Introduce toolchain improvements:
- Project sources will be served by default during development
- Toolchain npm dependencies will be isolated from project dependencies
Support for multi-module compilation
We’re adding multi-module compilation support in Kotlin/Wasm to enable dynamic loading, plugin systems, and better build performance. This allows applications to load UI components on demand and benefit from improved caching and parallelization at build time.
Build tooling
Making Gradle build configurations more beginner friendly
Gradle is powerful but often overwhelming. To make KMP easier for beginners, we’ll allow dependencies to be declared at the project level and automatically propagate to all source sets, like in JVM and Android projects. We’re also working on a prototype for a new declarative Kotlin-based Gradle DSL via an ecosystem plugin to simplify build scripts and improve IDE support.
Reducing the effort to publish KMP libraries
We’re stabilizing klib cross-compilation across platforms, enabling you to build your library on continuous integration platforms without requiring macOS machines. We’re also simplifying the dependencies model and layout by removing unused features like partial downloads and multi-host publishing. Together, these changes will make multiplatform libraries easier to publish, consume, and integrate with third-party tools.
Providing a Build tools API
We’re developing the Kotlin Build tools API as a unified entry point for build systems to integrate with Kotlin. This will reduce duplicated work, align feature behavior across tools, and make adding new build systems like Bazel or Buck much easier.
Faster builds and imports with Gradle
We’re adding support for Gradle’s experimental Isolated Projects mode enabling parallel configuration for faster builds on large projects. We’re also aware of imports being rather slow and resource heavy. We will refine our benchmarks and fix bottlenecks, which should result in a smoother development experience.
Documentation and onboarding
Learning a new technology can be challenging, but good guidance makes the path easier. Our current documentation focuses on beginners and basic scenarios, so we’ll expand it to cover real-world migrations of existing Android apps to Kotlin and Compose Multiplatform. With Klibs.io, we’re also making it easier to find the right libraries, which we’ll continue to develop and integrate into our guidance.