阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

  • 2023-11-13
    北京
  • 本文字数:1225 字

    阅读完需:约 4 分钟

大小:587.72K时长:03:20
JetBrains发布了Kotlin Multiplatform的首个稳定版本

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/

2023-11-13 18:575603

评论 1 条评论

发布
用户头像
怎么都没评论啊
2023-11-16 18:46 · 上海
回复
没有更多了
发现更多内容

从Docker到Kubernetes | 爱数云原生演进历程

爱数技术范儿

Kubernetes 云原生

Week1 Homework

Ray_c

#架构实战营

带你入门antv.g6流程图

华为云开发者联盟

可视化 流程图 API graph 图可视化引擎

云小课 | 区块链关键技术之一:共识算法

华为云开发者联盟

区块链 区块链技术 共识机制 共识算法

netty系列之:在netty中使用protobuf协议

程序那些事

Java Netty 程序那些事

docker入门:vue和可视化界面的部署,另附ngxin配置

小鲍侃java

8月日更

遗留系统演进

Kubernetes 微服务 etcd 架构设计原则 演进式架构

java布道者耗尽20年的功力整理完结java实战第2版文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

游戏“外挂”?—— AI生成游戏最强攻略

华为云开发者联盟

AI 游戏 华为云

开源demo | 快速搭建在线自习室场景

anyRTC开发者

音视频 在线教育 视频直播 在线自习室

Ubuntu Server 20.04 搭建Nacos集群

玏佾

nacos 部署 搭建

SQL 是产品经理必会技能

蒋川

数据库 sql 产品 后端

Rust从0到1-高级特性-Traits 进阶

rust Traits 高级特性

Vue进阶(六十四):iframe更改src后页面未刷新问题解决

No Silver Bullet

Vue iframe 跨域 8月日更

5年程序员问我:什么是断言?

CodeNongXiaoW

测试 后端 接口工具

mock.js的作用

与风逐梦

大前端 后端 Mock

微信业务架构图-外包学生管理系统架构

毛先生

架构实战营

接口管理工具ApiPost使用——(响应结果可视化)

Proud lion

大前端 后端 Postman 开发工具 接口文档

sql task4 集合运算

橙橙橙橙汁丶

面试侃集合 | SynchronousQueue公平模式篇

码农参上

队列 SynchronousQueue 8月日更

多云管理中的多租户解决方案

鲸品堂

多租户 多云管理 实践案例

合约量化系统开发(炒币合约/机器人炒币App)

获客I3O6O643Z97

智能合约 量化机器人 合约量化

MySQL基于GTID复制实现的工作原理

Java MySQL 数据库 面试 后端

redis6安装和可视化工具

4ye

redis 后端 8月日更

干货 | 数据为王,携程国际火车票的 ShardingSphere 之路

SphereEx

数据库 开源

华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?

华为云数据库小助手

华为云 GaussDB GaussDB(for MySQL)

面对不同的业务场景,选择零码还是低码?

华为云开发者联盟

开发者 低代码 零代码 AppCube 业务场景

InnoDB解决幻读的方案——LBCC&MVCC

阿Q说代码

MySQL innodb MVCC 8月日更 LBCC

制作第三方库时,我们的资源到底在哪?

fuyoufang

ios swift 8月日更

如何高效工作,享受品质生活?看看少数派的经验总结吧

博文视点Broadview

牛掰!阿里大佬刷了四年LeetCode才总结出来的数据结构和算法手册

Java~~~

Java 架构 面试 算法 数据结构与算法

JetBrains发布了Kotlin Multiplatform的首个稳定版本_跨端开发_Tim Anderson_InfoQ精选文章