【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

评论 1 条评论

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

嵌入式工程师需要掌握哪些技术?

智趣匠

嵌入式开发

2024年3月文章一览

codists

codists

交易所钱包系统开发

西安链酷科技

交易所开发软件开发

在直播间卖云,云厂商终于“疯了”

自象限

dapp开发流程以及应用

西安链酷科技

DAPP系统开发

参与 PenPad Season 2 获得勋章,海量 Scroll 生态稀缺权益来袭

石头财经

Kyligence 发布企业级 AI 解决方案,Data + AI 落地迈向新阶段

Kyligence

C++ 引用和指针:内存地址、创建方法及应用解析

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

深入解析C++的auto自动类型推导

爱分享

C++11 C++20 C++ C++自动类型推导 C++ auto

Pirf-394

EchoZhou

English

为什么向量数据库在 RAG 中至关重要?

Zilliz

大模型 Zilliz 向量数据库 rag

Last Call!AWS、Shopee、点石科技专家齐聚 Milvus 老友汇 · 线下

Zilliz

开源社区 Meetup Milvus 向量数据库

参与 PenPad Season 2 获得勋章,海量 Scroll 生态稀缺权益来袭

长安区块链

wininet,winhttp,xmlhttprequest,各版本区别

百度搜索:蓝易云

【教程】四种方法将App打包为IPA文件类型

雪奈椰子

小米14 Ultra影像私享会在长春万象城成功举办

Geek_2d6073

《深入浅出计算机网络》PDF

程序员李木子

const 使用总结

爱分享

c++ 性能优化 代码规范 C++11 const

Ubuntu搭建NFS服务

百度搜索:蓝易云

运维工具如此割裂,九招帮你统一纳管

观测云

运维‘

百度Create AI开发者大会剧透丨用好三大AI神器 ,人人都是开发者

herosunly

大模型 百度AI AI神器

nft外包开发团队流程和注意事项

西安链酷科技

NFT开发链游开发

梦想照进现实:我开发了属于自己的体育直播平台

软件开发-梦幻运营部

欢迎加入PenPad Season 2 ,获得勋章以及海量 Scroll 生态权益

股市老人

Doodle Jump — 使用Flutter&Flame开发游戏真不错!

编程的平行世界

flutter android AI 算法 游戏开发

Linux系统gdb调试常用命令

百度搜索:蓝易云

区块链公链搭建终极流程 西安公链搭建技术团队

西安链酷科技

交易所开发 dapp开发 公链开发 区块链软件开发

X314协议发型、币安链协议发币

西安链酷科技

PrismNET丨深入剖析DAPP是什么?有哪些优势?

PrismNET

区块链 dapp Web3.0 PrismNET棱镜协议 PrismNET

精彩回顾 | 「AI 驱动增长,研发数智化升级」分享沙龙成功举办

LigaAI

AWS 技术分享 生成式AI 活动回顾 Amazon Bedrock

欢迎加入PenPad Season 2 ,获得勋章以及海量 Scroll 生态权益

BlockChain先知

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