Kotlin
A concise multiplatform language developed by JetBrains
Kotlin Multiplatform 与 Compose Multiplatform 后续计划 – 2025 年 8 月更新
本文将概述未来 6 至 12 个月内,Kotlin Multiplatform 与 Compose Multiplatform 项目的首要任务和整体方向。 Kotlin Multiplatform 的目标与 Kotlin 路线图中详述的内容高度一致。 如需了解更多关于我们发展方向的背景信息,建议查阅该路线图。
首要任务
Kotlin Multiplatform 涵盖多个领域,从语言功能、针对特定目标平台的编译到 IDE 插件,均有涉及。 为了聚焦重点,我们将围绕以下三项首要任务展开工作:
- 优化 iOS 目标平台的开发体验
iOS 目标平台虽已成熟,但开发者体验仍有提升空间。 构建速度始终是 Kotlin/Native 领域的常见关注点,因此我们将通过修正关键问题,提升各类项目的构建速度。 同时,我们还将持续开发实验性 Swift Export 功能,优化从 Swift 调用 Kotlin 代码的体验。 - 拓展 Web 目标平台的应用场景
Kotlin/JS 已能支持构建稳健的 Web 应用,而 Kotlin/Wasm 也即将具备同等能力。 通过将 Compose for Web 与 Kotlin/Wasm 推进至测试阶段,我们期望看到先行实践者们将中小型应用投入生产环境。 此外,我们还将增强 JavaScript 导出功能,提升跨平台业务逻辑的共享效率。 - 改善 IDE 中的开发者体验
继今年早些时候推出 Kotlin Multiplatform 插件的首个版本后,我们正致力于扩展其支持范围,包括推出 Windows 和 Linux 版本、完善 Swift 集成功能,以及提供必要的 Web 工具。 我们的目标是让 IntelliJ IDEA 和 Android Studio 成为卓越的多平台开发环境。
Compose Multiplatform
发布 Compose Multiplatform for Web 测试版
此测试版体现了我们对 Compose Multiplatform for Web 现有 API 提供支持与持续演进的承诺。 大部分核心 API 将开放使用,使早期采用者能够凭借现有功能集自信地将应用投入生产。 在此测试版发布后,我们将继续完善剩余的 Compose API,并进一步优化性能。 我们的工作离不开您的宝贵反馈,如有问题,欢迎通过 Kotlinlang Slack 交流,或在 YouTrack 上报告问题。
为 Compose Multiplatform 提供更多生态系统组件
Google 已开发出优秀的 Jetpack 库,且这些库已经可以在 Android 平台上使用。 我们正与 Google 紧密合作,推动更多 Jetpack 库(如 Navigation 3 和 Paging 3)适配 Compose Multiplatform。
在 iOS 平台上实现新的文本输入功能
新文本输入实现将提供更原生的外观与行为。 此外,还包含选择、放大、写作工具集成,以及自动填充和密码等文本工具栏操作功能。
统一 Compose 的 @Preview 注解
我们的目标是简化 @Preview 注解的使用。 目前,不同软件包下存在三种不同的 @Preview 注解,导致开发者难以确定注解、平台与 IDE 的正确搭配方式。
Kotlin Multiplatform IDE 插件
Kotlin Multiplatform IDE 插件中对 Windows 与 Linux 系统的支持
我们已收到相关请求,后续也将推出适用于 Windows 和 Linux 系统的 Kotlin Multiplatform 插件。 在这两个平台上,您可以通过向导创建 KMP 项目、启用预检功能、使用 Compose Hot Reload,并轻松运行 Android、Web、桌面端和服务器端应用。 受 Apple 工具限制,Swift 支持功能与 iOS 运行配置将无法使用。
借助 Kotlin Multiplatform IDE 插件改善 Swift 开发体验
我们计划针对 Swift 开发进行多项关键优化:
- 为 Apple 框架生成的 Kotlin 代码补充文档说明;
- 改进快速文档 (QuickDoc) 功能,确保其能稳定显示通过 cinterop 导入的 Swift 或 Objective-C 库的文档;
- 新增对 Swift 6.2 与 Xcode 26 的支持;
- 优化重命名、跨语言导航、跨语言查找用法等高级功能。
通用优化与质量提升
- 改进 KMP 项目向导,更好地支持应用开发者与库开发者;
- 集成 Web 目标平台工作流,包括 JavaScript 调试器、运行配置,以及在 KMP 项目向导中提供更多选项;
- 针对 Compose 预览功能,我们将投入资源优化错误报告、自动检查和分析,以提升可靠性;
- 为解决依赖项升级的不确定性问题, 我们计划推出并维护兼容性矩阵,明确说明哪些 IDE、Gradle 插件与库版本可以良好兼容。
Kotlin/Native
缩短 Kotlin/Native 构建时间
为缩短 Kotlin/Native 构建时间,我们正从多个方面开展工作:
- 扩展对实际项目中所有编译阶段的性能分析,助力定位并避免性能回退问题;
- 优化编译器内部逻辑,重点提升构建速度;
- 最后一点,替换常被误用的 kotlin.native.cacheKind 属性,提供更安全的替代方案,避免意外导致的构建速度变慢。
持续开发 Swift Export 功能
短期内,Swift Export 的目标是实现与 Objective-C Export 同等的功能。 此外,我们计划在 Swift Export 中新增对挂起函数与 Flow 的内置支持,以适配 Apple 平台的并发特性。 2026 年,我们的目标是发布稳定版本,覆盖 Kotlin 与 Swift 之间惯用互操作所需的大部分核心功能。
Kotlin/JS
Compose for Web 回退至 Kotlin/JS
作为 Compose for Web 测试版的一部分,我们将引入兼容模式,以 Kotlin/JS 作为回退方案。 Compose for Web 默认使用 Kotlin/Wasm 以保证性能,而该方案可扩大浏览器支持范围。 该回退方案使应用可以在不支持垃圾回收、异常处理等现代 Wasm 功能的旧浏览器上运行。
扩展 JavaScript Export 功能
我们正优化 Kotlin 声明向 JavaScript 的导出与使用方式:
- 导出挂起函数 (KT-56281)
- 导出值类 (KT-72198)
- 导出类型别名 (KT-49795)
- 为生成的 .d.ts 文件添加文档 (KT-56493)
- 允许从 TypeScript 实现 Kotlin 接口
Kotlin/Wasm
Kotlin/Wasm 目标平台推出测试版
为将 Kotlin/Wasm 推进至测试阶段,我们计划:
- 修正大量编译器问题,重点优化语义正确性与开发者体验
- 审查并提升 Wasm 标准库的质量
- 为互操作 API 添加实验性注解
- 引入工具链优化:
- 开发阶段默认提供项目源码
- 将工具链 npm 依赖项与项目依赖项隔离
支持多模块编译
我们将为 Kotlin/Wasm 添加多模块编译支持,以实现动态加载、插件系统与更优的构建性能。 这一功能可让应用程序按需加载 UI 组件,并在构建时通过更高效的缓存与并行处理提升效率。
构建工具
简化 Gradle 构建配置,降低新手使用门槛
Gradle 功能强大但常令人难以掌握。 为降低 KMP 的使用难度,我们将允许在项目级别声明依赖项,并自动传播到所有源集(类似 JVM 与 Android 项目)。 同时,我们正通过生态系统插件开发新的声明式 Kotlin 版 Gradle DSL 原型,以简化构建脚本并改善 IDE 支持。
减少发布 KMP 库的工作量
我们将稳定 klib 的跨平台编译能力,使您无需 macOS 设备即可在持续集成平台上构建库。 此外,我们还将通过移除部分下载、多主机发布等无用功能,简化依赖项模型与布局。 这些改进将共同降低多平台库的发布、使用难度,以及与第三方工具的集成成本。
提供构建工具 API
我们正开发 Kotlin 构建工具 API,将其作为构建系统与 Kotlin 集成的统一入口。 这将减少重复开发工作,统一不同工具的功能行为,并降低 Bazel、Buck 等新构建系统的集成难度。
提升 Gradle 构建与导入速度
我们将新增对 Gradle 实验性 Isolated Projects(隔离项目)模式的支持,通过并行配置提升大型项目的构建速度。 同时,我们也注意到项目导入过程耗时较长且资源占用较多。 我们后续将优化基准测试并修正性能瓶颈,提供更流畅的开发体验。
文档与入门
学习新技术往往颇具挑战,但优质的指导可让这一过程更轻松。 我们目前的文档主要聚焦新手与基础场景,后续将扩展内容范围,涵盖现有 Android 应用向 Kotlin Multiplatform 与 Compose Multiplatform 迁移的实际案例。 此外,我们正通过 Klibs.io 简化优质库的查找流程,并将持续完善库,将其整合到官方指导中。
本博文英文原作者: