9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

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

评论 1 条评论

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

为什么学Go(一)

soolaugust

Go 语言

spring-boot-route(十五)整合RocketMQ

Java旅途

Java RocketMQ Spring Boot

1分钟将vscode撸成小霸王

gamedilong

vscode 大前端

java安全编码指南之:锁的双重检测

程序那些事

java安全编码 java安全编码指南 java代码规范 java代码安全

蚁架构师首推SpringBoot套餐(原理+实战+面试)

小Q

Java 学习 架构 微服务 SpringBoot 2

手把手带你玩转 openEuler | 如何安装 openEuler

openEuler

Linux 开源 操作系统 openEuler

TensorFlow 篇 | TensorFlow Serving API

Alex

tensorflow keras model serving tensorflow serving api

惊险的B站Java后端岗面试之旅,复盘面试经历及面试真题

Java架构之路

Java 程序员 面试 编程语言

详细分析定制企业应用的价格

Philips

敏捷开发 快速开发

[Go 并发编程实战课]02.Mutex 源代码

Quincy

Go 语言

解释一下==和equals的区别,你以为就这么简单?那你就草率了

小Q

Java 学习 架构 面试 基础

LAXCUS大数据集群操作系统:一个分布式分时共享E级系统软件(一)

陈泽云

人工智能 云计算 大数据 基础设施 国产操作系统

[Go并发编程实战课]01.Mutex学习笔记

Quincy

Go 语言

LeetCode题解:145. 二叉树的后序遍历,栈,JavaScript,详细注释

Lee Chen

大前端 LeetCode

手把手带你玩转 openEuler | 初识 openEuler

openEuler

Linux 开源 操作系统

vidyo在数字化办公中提供了什么便利?

dwqcmo

音视频 集成架构 解决方案 智能硬件

教育场景方案升级| 打通业务前后端,少量开发快速上线(一):互动小班

ZEGO即构

在线教育 低代码

4年Java经验,备战两月成功拿到美团、京东、字节offer

Java架构之路

Java 程序员 面试 编程语言

架构师训练营第四周作业

四夕晖

Java零基础到进阶宝典!从小白到大神,金九银十面试这届斩获23K月薪

Java架构追梦

Java 学习 架构 面试 核心知识点

WebSocket从入门到精通,半小时就够!

JackJiang

html5 网络编程 websocket 即时通讯

生态共赢-anyRTC创业扶持计划

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

TNFE-Weekly[第七十五周已更新]

莹姐🙈

小程序 大前端 周报

视频会议的应用

anyRTC开发者

ios 音视频 WebRTC 直播 安卓

【全球案例】ESL 游戏公司如何通过 Jira 定制化解决方案连接全球团队

Atlassian

项目管理 敏捷 Atlassian Jira

只要十步,你就可以应用表达式树来优化动态调用

newbe36524

C# netcore ASP.NET Core

技术解析 | 云游戏在未来如何实现?

腾讯云音视频

开发 游戏 视频

搞开发,写SQL就够了

棒锤🐮

sql mybatis springboot Web框架 Rocket API

英特尔聚焦全栈量子研究:发布多项重磅量子计算研究成果

E科讯

2020年第三季度《全国移动App 风险监测评估报告》

InfoQ_11eaedef67e9

App 移动安全 个人隐私安全

月薪60k的Java开发在阿里是什么级别?对技术能力有哪些要求?

Java架构之路

Java 阿里巴巴 程序员 面试 编程语言

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