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

2021 年 12 月 7 日 InfoQ

作者 | 罗燕珊  

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 之外,我们还需要另一个跨平台开发框架?

https://www.infoq.cn/article/qmeK2NDH8ZP2sbBGwFoE

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

计算机架构史上的一次伟大失败,多数人都不知道

滴滴启动美股退市;阿里股价跌回2017年;Linus吐槽桌面版Linux:乱改核心,程序兼容性太糟糕 | Q资讯

这个重要开源项目全靠一位低调的“怪老头”维护!他和比尔盖茨一样撑起了计算机世界

独家专访腾讯云CTO王慧星:云技术变革上下二十年



 活动推荐

InfoQ 100 位优质创作者签约计划第二季火热进行中!欢迎各位同学踊跃报名~ 签约豪华大礼包、专属身份标志、百万流量扶持等好礼,等您来拿!


点个在看少个 bug 👇

登录查看更多
0

相关内容

Kotlin 是一种运行于 Java 虚拟机上的静态类型编程语言。
【硬核书】Linux核心编程|Linux Kernel Programming,741页pdf
专知会员服务
78+阅读 · 2021年3月26日
【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
30+阅读 · 2020年12月17日
专知会员服务
28+阅读 · 2020年10月2日
TensorFlowLite:端侧机器学习框架
专知会员服务
32+阅读 · 2020年8月27日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
使用 Jetpack Compose 提升 Play 商店的用户体验
谷歌开发者
0+阅读 · 2022年3月31日
实战 | 在应用中使用 Compose Material 3
谷歌开发者
0+阅读 · 2022年2月21日
新版本系统适配: Android 12 中的兼容性变更
谷歌开发者
0+阅读 · 2022年1月13日
欢迎体验 | Wear OS 版 Compose 开发者预览版
谷歌开发者
0+阅读 · 2021年12月15日
Flutter 2.8 正式发布
谷歌开发者
0+阅读 · 2021年12月15日
六年后才推出首个正式版,Typora 1.0 详细评测
少数派
0+阅读 · 2021年12月13日
正式版 API 确定 | Android 12L Beta 1 发布
谷歌开发者
0+阅读 · 2021年12月9日
Kotlin Multiplatform 实战记 | QCon
InfoQ
0+阅读 · 2021年11月13日
使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间
谷歌开发者
0+阅读 · 2021年10月8日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
A Comprehensive Survey on Transfer Learning
Arxiv
121+阅读 · 2019年11月7日
VIP会员
相关资讯
使用 Jetpack Compose 提升 Play 商店的用户体验
谷歌开发者
0+阅读 · 2022年3月31日
实战 | 在应用中使用 Compose Material 3
谷歌开发者
0+阅读 · 2022年2月21日
新版本系统适配: Android 12 中的兼容性变更
谷歌开发者
0+阅读 · 2022年1月13日
欢迎体验 | Wear OS 版 Compose 开发者预览版
谷歌开发者
0+阅读 · 2021年12月15日
Flutter 2.8 正式发布
谷歌开发者
0+阅读 · 2021年12月15日
六年后才推出首个正式版,Typora 1.0 详细评测
少数派
0+阅读 · 2021年12月13日
正式版 API 确定 | Android 12L Beta 1 发布
谷歌开发者
0+阅读 · 2021年12月9日
Kotlin Multiplatform 实战记 | QCon
InfoQ
0+阅读 · 2021年11月13日
使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间
谷歌开发者
0+阅读 · 2021年10月8日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员