写点什么

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

评论 1 条评论

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

在线HTML转PERL工具

入门小站

工具

linux之同时监控多个日志文件变化

入门小站

Linux

科技成就伟大游戏 | 2022 亚马逊云科技游戏开发者大会

亚马逊云科技 (Amazon Web Services)

开发者 亚马逊云

深入剖析 | HeartBeat方案的标准设计

九叔(高翔龙)

架构 dubbo 源码解析 HeartBeat 心跳设计

对话ACE第三期:数据库技术生态应如何构建

OceanBase 数据库

oceanbase

ConcurrentLinkedQueue

急需上岸的小谢

6月月更

彰显个性│博客园的自定义主题

主题 可视化看板 6月月更

天猫精灵的自定义语音技能创建流程

汪子熙

人工智能 机器学习 机器人 机器人流程自动化 6月月更

常遇到读多写少,教你用ReadWriteLock实现一个通用的缓存中心

华为云开发者联盟

缓存 高并发 开发 ReadWriteLock

水果FL Studio最新20.9中文破解版下载

茶色酒

水果FL Studio

在线数字转成人民币大写

入门小站

工具

MixNet解析以及pytorch源码

AI浩

人工智能 6月月更

ObserverPattern-观察者模式

梁歪歪 ♚

设计模式

应用实践|Lifewit 数据平台基于Apache Doris的建设实践

SelectDB

数据库 数据仓库 apache doris SelectDB

云图说丨应用宕机怎么办?MAS帮您实现业务无缝切换

华为云开发者联盟

云计算 MAS 宕机 多云高可用服务

leetcode 547. Number of Provinces 省份数量(中等)

okokabcd

LeetCode 搜索

对不起,我错了,这代码不好写

捉虫大师

Java Go sentinel 6月月更

StrategyPattern-策略模式

梁歪歪 ♚

设计模式

Agora Web UIKit:快速构建视频通话或直播

devpoint

React 直播技术 视频通话

【愚公系列】2022年06月 二十三种设计模式(十九)-观察者模式(Observer Pattern)

愚公搬代码

6月月更

那些年,我们在Apache SeaTunnel 2.1.0部署中踩过的坑【含源码分析】

Apache SeaTunnel

Apache 大数据 开源 workflow Seatunnel

MSVC编译动态库

Loken

音视频 5月月更

儿童节,和 AI 一起通关 “超级马里奥兄弟”

华为云开发者联盟

字节跳动一站式数据治理解决方案及平台架构

字节跳动数据平台

数据治理 元数据

TemplateMethodPattern-模板方法模式

梁歪歪 ♚

设计模式

磁盘I/O性能测试工具

穿过生命散发芬芳

6月月更 磁盘测试工具

InfoQ 极客传媒 15 周年庆征文|深入理解 ELK 中 Logstash 的底层原理 + 填坑指南

悟空聊架构

运维 Logstash ELK 6月月更 InfoQ极客传媒15周年庆

安势信息加入Linux基金会OpenChain项目,助力软件供应链安全

安势信息

Linux 开源 DevSecOps SCA 开源软件

特别的儿童节,OceanBase 送上一份特别的惊喜

OceanBase 数据库

oceanbase

2022 核心服务动手训练营

亚马逊云科技 (Amazon Web Services)

Amazon 亚马逊云

换个角度带你学C语言的基本数据类型

华为云开发者联盟

开发 C语言 数据类型位数

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