写点什么

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

评论 1 条评论

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

为什么每个程序员都应该了解“康威定律”

soolaugust

编程 架构 设计

技术干货 | 如何在 Library 中使用/依赖 mPaaS?

蚂蚁集团移动开发平台 mPaaS

Android Studio 移动开发 mPaaS

《本人娶刘亦菲的可行性报告》原文

不脱发的程序猿

程序人生

Android 关于CPU类型的so文件兼容问题(ABI)

寻找生命中的美好

android native so库 abi so文件

聚力边缘计算 共建数字中国丨浪潮边缘云ICP Edge 2.0 全新发布

【死磕JVM】什么是JVM调优?

牧小农

JVM jvm调优 JVM基础

JAVA 中 -> 是什么意思?

Sakura

4月日更

云原生开发者须具备的1+N技能,开启第二曲线

华为云开发者联盟

DevOps 云原生 HDC2021 华为云DevCloud 企业数字化

linux高性能服务器编程--高性能服务器程序框架

赖猫

Linux 服务器开发 高性能服务器 C/C++后端

Substrate 合约书之合约语言框架

Patract

rust Substrate polkadot Patract Wasm

xch挖矿APP开发|xch挖矿系统软件开发

系统开发

IT 专业的高校大学生编程技能及就业问卷调研

Yano

问卷调查

开发也可以如此简单!华为云发布两款开发工具

华为云开发者联盟

云原生 HDC2021 编码工具 SmartAssist

刹车失灵,数据的刹车是否也会失灵?

BinTools图尔兹

数据库 运维 dba 数据库管理工具

分布式消息中间件(1):Rabbitmq入门到高可用实战!学会了这个还怕被B站面试官看不起?

北游学Java

Java 分布式 RabbitMQ 中间件

chia奇亚挖矿软件开发|chia奇亚挖矿APP系统开发

系统开发

聪明人的训练(二十六)

Changing Lin

4月日更

SpringCloud整合统一异常处理

悟空聊架构

spring SpringCloud Cloud 异常处理 passjava

洞悉MySQL底层架构:一举拿下腾讯美团滴滴offer,持续更新中

欢喜学安卓

android 程序员 面试 移动开发

系统高可用之健康检查和健康度量那些事

vivo互联网技术

高可用 服务器

百度集团资深副总裁李震宇:Apollo开放平台打造全球最强自动驾驶量产引擎 助力车企造好车

百度大脑

自动驾驶 Apollo

推荐一个还不错的YouTube视频下载软件

科技猫

软件 视频处理 资源分享 视频下载 youtube

剖析MySQL黑盒——MySQL架构设计

学Java关注我

Java 编程 架构 程序人生 计算机

java单元测试代码自动生成

范晓刚

自动化 单元测试

数据驱动的元数据组件

鲸品堂

方法论 架构设计原则 架构设计实战 数据分析方法论

合作伙伴眼中的鸿蒙,专访海雀科技研发总监李尹

Geek_283163

为工地装上大脑,落实企业安全管理责任

百度大脑

百度大脑 工地

腾讯云发布“创新成长快线”,首期向创业者赠送10亿分钟实时音视频时长

腾讯云音视频

音视频

分布式消息中间件(2):Kafka系统学习—集群搭建与使用、副本机制和实时日志统计流程

北游学Java

Java kafka 分布式 中间件

成功入职腾讯大厂 分享我的成功秘籍:10W字复习大纲手册

比伯

Java 架构 程序人生 编程语言 计算机

chia奇亚分币软件开发|chia奇亚分币APP系统开发

系统开发

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