Kotlin Wasm
使用 Kotlin,你可以通过 Compose Multiplatform 和 Kotlin/Wasm 在你的 web 项目中构建应用程序并重用移动和桌面用户界面(UI)。
Compose Multiplatform 是一个基于 Kotlin 和 Jetpack Compose 的声明式框架,它允许你一次实现 UI,并在你目标的所有平台上共享它。对于 web 平台,Compose Multiplatform 使用 Kotlin/Wasm 作为其编译目标。
探索我们基于 Compose Multiplatform 和 Kotlin/Wasm 构建的应用程序的在线演示
WebAssembly (Wasm) 是一种用于基于栈的虚拟机的二进制指令格式。
这种格式是平台无关的,因为它在自己的虚拟机上运行。 Wasm 为 Kotlin 和其他语言提供了一个在 Web 上运行的编译目标。
Kotlin/Wasm 将你的 Kotlin 代码编译成 Wasm 格式。 使用 Kotlin/Wasm,你可以创建在支持 Wasm 和符合 Kotlin 要求的不同环境和设备上运行的应用程序。
此外,你可以轻松使用最流行的 Kotlin 库在 Kotlin/Wasm 中使用。 像其他 Kotlin 和跨平台项目一样,你可以在构建脚本中包含依赖声明。 更多信息,请参见 在跨平台库上添加依赖。
你想自己尝试一下吗?
Kotlin/Wasm 性能
尽管 Kotlin/Wasm 仍处于 Alpha 阶段,运行在 Kotlin/Wasm 上的 Compose Multiplatform 已经展示出令人鼓舞的性能特征。 你可以看到它的执行速度优于 JavaScript,并接近 JVM 的性能:
我们定期在 Kotlin/Wasm 上运行基准测试,这些结果来自我们在最新版本的 Google Chrome 中的测试。
浏览器 API 支持
Kotlin/Wasm 标准库提供了浏览器 API 的声明,包括 DOM API。 通过这些声明,你可以直接使用 Kotlin API 访问和利用各种浏览器功能。 例如,在你的 Kotlin/Wasm 应用程序中,你可以操作 DOM 元素或使用 fetch API,而无需从头定义这些声明。 要了解更多信息,请参见我们的 Kotlin/Wasm 浏览器示例。
浏览器 API 支持的声明是通过 JavaScript 互操作能力 定义的。 你可以使用相同的能力来定义自己的声明。 此外,Kotlin/Wasm–JavaScript 互操作性还允许你从 JavaScript 使用 Kotlin 代码。 有关更多信息,请参见 在 JavaScript 中使用 Kotlin 代码。
留下反馈
Kotlin/Wasm 反馈
Slack: 获取 Slack 邀请 并直接在我们的 #webassembly 频道中向开发人员提供反馈。
在 YouTrack 中报告任何问题。
Compose Multiplatform 反馈
Slack: 在 #compose-web 公开频道中提供反馈。
了解更多
你可以在这个 YouTube 播放列表 中了解更多关于 Kotlin/Wasm 的信息。
在我们的 GitHub 仓库中探索 Kotlin/Wasm 示例。