JetBrains 发布了 Kotlin Multiplatform 的首个稳定版本

2023-11-17 14:53:27 浏览数 (3)

作者 | Tim Anderson

译者 | 刘雅梦

策划 | Tina

JetBrains 提供了 Kotlin Multiplatform 的首个稳定版本,支持跨 iOS、Android、桌面、Web 和服务器进行代码共享——尽管用于共享用户界面(UI)代码的部分,Compose Multiplatform,仅适用于 Android 和桌面。

Kotlin 是由 JetBrains 开发的一种 JVM(Java 虚拟机)语言,并被谷歌(Google)用作 Android 开发的首选语言。既然 Java 已经是为跨平台代码而设计的了,那么 Kotlin Multiplatform 又增加了什么呢?答案是 Kotlin 不仅仅是一种 JVM 语言。Kotlin/Native 使用 MinGW(适用于 Windows 的 GCC 工具链)和 Android NDK 编译成适用于 macOS、iOS、Linux、Windows 的独立可执行文件。Kotlin/JS 将 Kotlin 转换为 JavaScript。Kotlin Wasm 仍处于实验阶段,可编译成 WebAssembly。

Kotlin Multiplatform 是一种跨所有这些平台共享非 GUI 代码的技术。它解决了代码共享的两个常见问题,即对于所有目标平台的一个子集,仅需部分共享某些代码的需求,以及需要访问特定于平台的 API。

Kotlin Multiplatform 中的 Expect 和 Actual,解决了调用本机平台 API 的需求

本机 API 问题是通过预期声明和实际声明的机制来解决的。expect 关键字将声明标记为将与用actual关键字标记的代码匹配,actual关键字可能是特定于平台的。JetBrains 建议仅对平台 API 使用 expect/actual,其他情况使用普通接口。

2022 年的一项调查显示,Kotlin Multiplatform 应用程序的代码共享率高达 63%

Kotlin Multiplatform 适用于非 GUI 代码,但有一个相关项目 Compose Multiplatform,它可用于创建共享的用户界面(UI)。Compose Multiplatform 基于谷歌的 Jetpack Compose,用于构建 Android 用户界面。Compose Multiplatform 在桌面平台、macOS、Linux 和 Windows 上也是稳定版本,但在 iOS 上是 Alpha 版本,在 Web 上是实验性的。根据 JetBrains 的说法,Kotlin Multiplatform 已经被包括 Netflix 和 VMWare 在内的公司所使用。

如果 Compose Multiplatform 还没有准备好,那么开发者如何支持 iOS 呢?这可以通过使用 SwiftUI 来实现,SwiftUI 是苹果(Apple)的官方 UI 设计语言,它是基于声明式代码的。有一些代码示例正是采用了这种方式实现的。

JetBrains 还表示,他们的目标是在 2024 年发布面向 iOS 的 Compose Multiplatform 测试版本,Kotlin/Wasm 也在积极开发中。

去年,谷歌通过 引入 其他一些 Jetpack 库的“实验预览”,表达了对 Kotlin Multiplatform 的一些支持,这些库不是用于生产的,而是用于“在针对 Android 和 iOS 应用程序的多平台项目中使用这些 Jetpack 库的反馈”。请注意,谷歌还提供了使用 Dart 语言和 Flutter UI 进行跨平台开发的 Flutter。

使用 Kotlin 而不是 Java 的另一个原因是它的语言特性,包括 lambda 表达式、扩展函数、类型推理、null 安全等等。Kotlin 没有检查异常,因为这些不会提高生产力或代码质量。

Kotlin Multiplatform 和 Compose Multiplatform 均可免费使用。Kotlin 的代码位于 Github 上,许可证是 Apache2.0。

原文链接:

https://devclass.com/2023/11/01/jetbrains-offers-first-stable-release-of-kotlin-multiplatform/

声明:本文由 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

“谷歌有谷歌的规矩”

丢掉 LangChain、像 Docker一样编排大模型应用程序:这支十余人的年轻创业团队如何在2个月做出一个LLMOps平台?

仅凭 7 页 PPT 拿下 1 亿美元融资、半年后估值超 10 亿!“欧洲 OpenAI”杀疯了

易鲸捷否认贴牌 Oracle;鸿蒙进教材:“纯血”版不再兼容安卓应用;大叔们遭AI女友“断崖式分手” | Q 资讯

0 人点赞