Kotlin拓展视野:支持多平台开发的新平台

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Kotlin现在支持新平台:这对开发者意味着什么?



JetBrains团队持续积极发展Kotlin生态系统,使其成为编程领域最灵活、最现代的语言之一。在最新版本中,开发者宣布支持新平台——WebAssembly (Wasm),并已进入稳定阶段。这对于所有使用Kotlin Multiplatform (KMP) 并希望编写一次代码、随处运行(从服务器和移动设备到浏览器和边缘设备)的开发者来说,是一个关键事件。



为什么选择WebAssembly?

WebAssembly是一种低级二进制格式,在浏览器中以接近原生的速度执行。此前Kotlin已支持编译为JavaScript,但Wasm开辟了新的可能性:

  • 性能: 编译为Wasm的Kotlin代码运行速度比类似的JS包快1.5–2倍,尤其是在计算密集型任务(图形、数据处理、游戏)中。
  • 安全性: Wasm在隔离的沙箱中运行,降低了漏洞风险。
  • 通用性: Wasm受所有现代浏览器(Chrome、Firefox、Safari、Edge)以及服务器环境(WASI)和物联网设备支持。


它是如何工作的?

现在,在Kotlin项目中,您可以在build.gradle.kts文件中指定目标wasmJs或wasmWasi:

kotlin {    wasmJs {        browser { }    }    wasmWasi {        nodejs { }    }}

编译后,您将获得一个.wasm文件,可以将其连接到HTML页面或在支持WASI的环境中运行。重要提示:与DOM和浏览器API的交互使用标准Kotlin/Wasm库,该库与Kotlin/JS完全兼容。



这给开发者带来了什么?

  • 统一的Web和原生技术栈: 现在可以用Kotlin编写业务逻辑,并在Android、iOS、服务器(JVM)和Web客户端(Wasm)之间复用。
  • 项目快速启动: 无需学习TypeScript或Rust即可实现高性能Web开发——只需掌握Kotlin。
  • 简化DevOps: 一种语言、一个构建系统(Gradle)和一套代码适用于所有平台。


使用示例

假设您正在编写一个处理大型JSON文件的库。使用Wasm,它将在浏览器中执行,而不会出现JavaScript常见的延迟。此外,Kotlin/Wasm支持协程和序列化(kotlinx.serialization),使代码简洁且安全。



何时尝试?

对Wasm的支持已在Kotlin 2.1.0及更高版本中可用。JetBrains建议从小处着手:将非UI相关模块(API客户端、验证器、加密)迁移到Wasm。未来计划全面支持Compose Multiplatform for Wasm,从而能够在Kotlin中创建完整的Web应用程序。



结论

将WebAssembly添加到受支持平台列表不仅仅是又一次更新。这是朝着使Kotlin成为多平台开发首选语言迈出的一步。现在,您拥有了一个结合原生代码性能和通用性的工具。

推荐库