写点什么

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:575934

评论 1 条评论

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

Okaleido或杀出NFT重围,你看好它吗?

鳄鱼视界

全新出品!阿里P5工程师~P8架构师晋升路线揭秘

程序员小毕

Java 程序员 面试 架构师 学习路线

uni-app进阶之内嵌应用【day14】

恒山其若陋兮

7月月更

python小知识-rethinking python 生成器

AIWeker

Python python小知识 7月月更

JAVA编程规范之控制语句

源字节1号

后端开发

易观千帆银行用户体验中心成立,助力银行业用户体验升级

易观分析

银行 用户体验

软件研发落地实践,要从设计就开始

华为云开发者联盟

云计算 后端 开发

向量化执行引擎框架 Gluten 宣布正式开源,并亮相 Spark 技术峰会

Kyligence

spark Gluten

音视频开发进阶|第四讲:音频自动增益控制 AGC

ZEGO即构

音视频开发 AGC

nacos注册中心之服务注册

急需上岸的小谢

7月月更

TPC藏宝计划质押系统开发(Dapp)

薇電13242772558

智能合约 dapp

声网传输层协议 AUT 的总结与展望丨Dev for Dev 专栏

声网

传输协议 Dev for Dev

易周金融 | 邮惠万家银行开业;微信公众号叫停四类金融营销宣传

易观分析

金融

Verilog HDL

贾献华

7月月更

值得一看的智能运维AIOps关键核心技术概览!

云智慧AIOps社区

人工智能 机器学习 运维 智能运维 自动化运维

vueCli3.x版本中如何修改打包好的css、js、img文件名

木叶🐱

7月月更

还在羡慕其它平台有跨店满减,其实你也可以!

CRMEB

2022年浙江省等保备案流程指南

行云管家

等保 等保备案

短视频直播系统源码——如何优化满足用户需求?

开源直播系统源码

直播系统源码 开源源码 短视频直播系统源码

李宏毅《机器学习》丨2. Regression(回归)

AXYZdong

机器学习 7月月更

模块七作业 - 王者荣耀商城异地多活架构设计

Elvis FAN

面试官:你确定Redis是单线程的进程吗?

Java永远的神

Java redis 程序员 架构 面试

jdbc自带MySQL连接池实践

FunTester

MySQL数据库优化

五分钟学大数据

MySQL 7月月更

不会吧!钉钉都下载了,你还不知道可以这样玩?

Jianmu

钉钉 持续集成 自动化运维 建木CI 通知

Google上网神器Ghelper

源字节1号

软件开发 小程序开发

不是我说,Nacos和Apollo中的长轮询定时机制,真的太好用了

Java全栈架构师

Java 程序员 面试 微服务 nacos

边无际 Shifu IoT 开源开发框架 助力物联网应用开发加速十倍

亚马逊云科技 (Amazon Web Services)

开源 Kubernetes 物联网 应用开发

云计算和大数据的关系以及区别详细讲解

行云管家

云计算 大大数据

想进大厂拿高薪?掌握Redis的Sentinel哨兵原理将是至关重要的突破口

了不起的程序猿

Java java程序员 Redis 数据结构

动手实践丨手把手教你用STM32做一个智能鱼缸

华为云开发者联盟

物联网 IoT

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