写点什么

跨平台开发框架 Compose Multiplatform 1.0 发布

  • 2021-12-03
  • 本文字数:1117 字

    阅读完需:约 4 分钟

跨平台开发框架Compose Multiplatform 1.0发布

JetBrains 工程师 Sebastian Aigner 在官方博客宣布,Compose Multiplatform(Kotlin 的声明式 UI 框架)已经发布了 1.0 版本,现在可以在生产环境中使用了。此版本主要解决质量和稳定性问题,同时修复关键问题和错误。


Compose Multiplatform 由 Compose for Desktop 和 Compose for Web 组成,通过 Kotlin Multiplatform 支持许多不同的平台。现在,用户可以在桌面上创建 Kotlin 应用程序,也可以使用 Compose for Web 的稳定 DOM API 构建生产质量的动态 Web 体验,并与 Web 上的所有浏览器 API 完全互通。


由于 Compose Multiplatform 是声明式的,代码反映了应用程序的 UI 结构,因此用户不必担心诸如从模型复制数据到视图或开发 UI 刷新逻辑之类的事情。在下面这个例子中,一旦 TextField 的内容被编辑,Text label 的内容将被更新,无需任何额外的代码:


var text by remember { mutableStateOf("Hello, World!") }Column {   Text(text) //text label   TextField(text, {text = it}) //text field}
复制代码


“刚开始使用 Compose Multiplatform 很容易,特别是如果您之前使用过像 React 或 Google Jetpack Compose 这样的声明式 UI 框架。 Compose Multiplatform 使用了许多相同的概念,因此您应该有宾至如归的感觉,”JetBrains 在博客文章中如此写道。


Compose Desktop 使用 Skia,这是一个经过良好优化的图形库,目前被许多对性能敏感的应用程序(包括现代浏览器)使用。这意味着 Compose Multiplatform 支持桌面上的所有主要的硬件加速引擎,例如 DirectX、Metal 和 OpenGL。


它还通过预览工具提供较短的迭代周期,允许用户微调其 UI 的组件/部分,并创建它们的多次迭代,而无需重新构建或重新启动应用程序,从而缩短开发周期。


除了桌面,Compose Multiplatform 提供了一个强大的、声明性的 Kotlin/JS API 来处理 DOM——它具备你在现代 Web 框架中想要和需要的所有功能,包括全面的 DOM API、内置 CSS-in-JS 支持、对 SVG 的支持等。


“总的来说,现在在各种平台(包括 Android,以及使用上兼容 Jetpack Compose)之间共享专业知识和代码要比之前容易得多。”Sebastian Aigner 说道。其表示,在 JetBrains 内部早在今年年初就开始在 Jetbrains Toolbox App 中应用 Compose Multiplatform。这个 App 已经有超过 100 万月活用户,并在 4 个月前完全从 C++ 和 Electron 迁移到 Compose Multiplatform。


要尝试 Compose Multiplatform 快速开始构建面向多个平台的应用程序,可以使用 IntelliJ IDEA 2021.1+ 中的 Kotlin 项目向导。附 Compose Multiplatform 官方入门教程地址:https://github.com/JetBrains/compose-jb/tree/master/tutorials


延展阅读《为什么除了 Flutter 之外,我们还需要另一个跨平台开发框架?》

2021-12-03 18:2111060
用户头像
罗燕珊 AI practitioner | Tech media

发布了 544 篇内容, 共 415.4 次阅读, 收获喜欢 855 次。

关注

评论

发布
暂无评论
发现更多内容

图的学习总结

Nick

数据结构 数据结构与算法

seata-golang 一周年回顾

阿里巴巴云原生

Java 数据库 微服务 云原生 Go 语言

笔记分享--弱网下的极限实时视频通信

攻城先森

音视频 端到端 #弱网 极限视频通信

golang单元测试踩坑系列(一)

geange

单元测试 Go 语言

First Unique Character in a String 的变种问题返回第一个找到符合条件的字符

HoneyMoose

弱网下的极限视频通信学习感悟!

txp

音视频

一房地产数据服务初创公司的面经

HoneyMoose

技术向上,雪坡向下:拼多多的“新帅”与新路

脑极体

精选8道Java集合最常见面试题,进大厂99%都会被问到,限时送!

飞飞JAva

JAVA集合

认识流媒体协议,从RTSP协议解析开始!

明儿

c c++ 协议 Wireshark rtp

奋力前行,感谢有你

IT蜗壳-Tango

IT蜗壳 人气作者 TOP10

北美一工作搜索引擎公司技术岗面经

HoneyMoose

“Windows找不到文件...”,怎么处理?

Emotion

Windows 10 系统 找不到系统文件 错误弹窗 windows找不到文件

【翻译】JVM-技术专题-ZGC学习手册(1)概念定义

码界西柚

翻译 ZGC JVM 基本概念

漫游语音识别技术——带你走进语音识别技术的世界

攻城先森

深度学习 学习 音视频 nlp 语音识别

写作平台一周年-感谢曾经的自己

数据社

InfoQ 写作平台 1 周年 人气作者 TOP10

太简单了!这套java内部类和异常的总结,只学了2个小时就学会了

牛哄哄的java大师

Java

接纳不完美的自己,才能拥有完整的人生|靠谱点评

无量靠谱

关于企业数字化转型的一些思考

石云升

数字化转型 28天写作 4月日更

Dubbo 注册中心

青年IT男

dubbo

WebAssembly + Dapr = 下一代云原生运行时?

阿里巴巴云原生

云计算 容器 开发者 运维 云原生

菩萨心肠 霹雳手段|靠谱点评

无量靠谱

Spring 实战:自定义 Filter 优雅获取请求参数和响应结果

看山

Spring实战

如果你不知道从哪本书开始阅读,那就从这本开始吧

小天同学

读书 好书推荐 读后感 4月日更

你必须明白的新生代垃圾回收:YoungGC

小Q

Java 架构 面试 JVM GC

弱网下的极限实时视频通信

疯狂的驸马

音视频 编码 极限视频通信

客服中心简单分析

zzz

002 ES NGram 分词 + suggest

小林-1025

ES es7

【一定要看哦】转瞬之间的成长,传播知识的梦想(赠予极客邦【1周年】)

码界西柚

程序人生 1 周年盛典 InfoQ 写作平台 1 周年 InfoQ 的朋友们

大数据技术发展的过程

菜菜

话题讨论|三大运营商Q1业绩大增,5G开始收割?

程序员架构进阶

5G 话题讨论 28天写作 4月日更 通信运营商

跨平台开发框架Compose Multiplatform 1.0发布_大前端_罗燕珊_InfoQ精选文章