Kotlin 声明式 UI 框架 Compose Multiplatform 1.0 正式上线!
在桌面上,您可以快速高效地创建具有精美用户界面的 Kotlin 应用。
在 Web 上,您可以使用 Compose for Web 的稳定 DOM API 构建生产级动态 Web 体验,并实现与所有浏览器 API 的完全互操作。 未来版本将提供对 Material UI 微件的支持。
总体而言,现在各平台间(包括 Android,使用与 Google 的 Jetpack Compose 的兼容)的专业知识和代码共享都得到了大幅简化。
接下来我们将逐一介绍这些亮点。
桌面版 Kotlin UI
在很长一段时间内,如果您想为 Kotlin 桌面应用程序构建用户界面,您都必须使用传统的 Java UI 框架,因为没有任何 Kotlin 库支持桌面的现代化 UI 开发风格。 这一状况将被 Compose Multiplatform 改变。 我们这就来探索新的框架会如何改善为 Kotlin 应用编写 UI 的体验。
构建用户界面的声明式方法
Compose Multiplatform 为声明式,代码反映了应用的 UI 结构,让您无需担心将数据从模型复制到视图或开发 UI 刷新逻辑之类的事情。 全能高效的框架将让 UI 开发成为一种享受。 在这个示例中,当TextField
的内容被编辑后,Text
标签的内容将被更新,无需任何额外代码:
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 使用了许多相同的概念,应该会让您倍感亲切。
React
https://zh-hans.reactjs.org/
Jetpack Compose
https://developer.android.com/jetpack/compose
通过硬件加速实现出色的运行时性能
现代化用户界面对性能相当敏感,因此我们花了大量精力来提高 Compose Multiplatform 的速度。 它使用的图形库 Skia 经过了良好优化,已被性能敏感的应用程序广泛采用,包括新型浏览器。 这意味着 Compose Multiplatform 支持桌面上的所有主流硬件加速引擎,例如 DirectX、Metal 和 OpenGL。 对于硬件加速不可用的环境,Compose 也提供了优化的软件渲染程序。
Skia
https://skia.org/
通过预览工具缩短迭代周期
在 UI 开发中,最耗时的任务之一是为了取得完美显示效果而重建应用程序。Compose Multiplatform IDEA 插件将简化这一过程。 它的内置实时预览功能可供微调 UI 的组件/部件和创建多个迭代,而无需重建或重新启动应用程序。 这将大幅缩短开发周期。
插件
https://plugins.jetbrains.com/plugin/16541-compose-multiplatform-ide-support
通过自动应用程序打包
信心满满地交付桌面应用
将应用程序带给用户,不仅需要妥善的开发,也需要合适的打包。 在这一领域,Compose Multiplatform 也可以发挥作用。Gradle 插件支持将应用程序打包为 msi
、dmg
和 deb
格式,包括 MacOS 的签名和公证。
将应用程序打包
https://github.com/JetBrains/compose-jb/tree/master/tutorials/Native_distributions_and_local_execution
MacOS 的签名和公证
https://github.com/JetBrains/compose-jb/blob/master/tutorials/Signing_and_notarization_on_macOS/README.md
Android 上 Jetpack Compose 与
Java UI 框架的互操作性
Jetpack Compose 是 Google 为构建原生 UI 打造的 Android 现代化工具包,在移动开发者中越来越受欢迎。 如果您以前使用过它,那么 Compose Multiplatform 对您来说会非常容易上手,因为这两个框架共享了大部分 API。如果桌面应用程序已经具有使用典型 Java UI 框架构建的用户界面,则无需从头重新编写代码即可与 Compose Multiplatform 一起使用。 通过出色的互操作性,您可以将使用 Compose 编写的 UI 组件添加到现有 Java UI 中。 您还可以将现有 Java 控件添加到使用 Compose Multiplatform 构建的任何新应用。
使用 Compose Multiplatform 向导
快速上手
Compose Multiplatform 上手过程从未如此简单。 在 IntelliJ IDEA 2021.1 以上版本中,只需几下点击即可创建一个简单的 Compose Multiplatform 项目。
IntelliJ IDEA
https://www.jetbrains.com/zh-cn/idea/
我们还准备了大量教程来帮助您熟悉 Compose Multiplatform 的桌面目标。
大量教程
https://github.com/JetBrains/compose-jb/tree/master/tutorials
Compose for Web
除了桌面之外,Compose Multiplatform 还为处理 DOM 提供了强大的声明式 Kotlin/JS API。
DOM
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
它具有现代化 Web 框架中您想要和需要的所有功能,包括全面的 DOM API、内置 CSS-in-JS 支持、对 SVG 的支持、类型化输入等。Compose Multiplatform 的 Web 目标以纯 Kotlin 编写,并充分利用了语言的类型系统和习语。 这让您可以使用您在其他 Kotlin 目标中可能已经熟悉的开发工作流。
多平台支持
使用 Compose Multiplatform,您并不会受限于以桌面和 Web 平台(均已直接支持)为目标。 您还可以使用 Google 开发的著名 UI 框架 Jetpack Compose 以 Android 为目标。 这两个框架共享公共 API 与核心,因此具有完美的互操作性。 这意味着您不必重新编写常见 UI 和状态管理代码。 只需编写一次,然后根据需要在各个平台上重用即可。
如果您要将现有 Android 应用程序带到桌面或 Web,Compose Multiplatform 可以帮助您轻松实现。 它允许您从单个 Kotlin 项目管理应用程序的所有目标。
要使用 Compose 快速开始构建面向多个平台的应用,您可以使用 IntelliJ IDEA 2021.1 以上版本中的 Kotlin 项目向导。
即使当前不需要开发多平台应用程序,您在一个平台上的知识和专长在另一个平台上也会发挥作用。
自测试版以来发生了什么变化?
在 Compose Multiplatform 1.0 中,我们最关注的是确保框架可实际用于生产应用程序。 因此,此版本主要解决质量和稳定性问题,同时修正关键问题和错误。
真实生产经验
虽然 Compose Multiplatform 本月才正式上线,但它先前已用于部分生产应用程序。 例如,在 JetBrains,我们早在 2021 年初就开始在 Jetbrains Toolbox App (https://www.jetbrains.com/zh-cn/toolbox-app/) 中采用 Compose Multiplatform。 这个用于 JetBrains IDE 的管理应用程序每月有超过 1,000,000 名活跃用户,在 4 个月前完全从 C++ 和 Electron 迁移到了 Compose Multiplatform。
总结
通过 Compose Multiplatform,Kotlin 开发者能够以强大的框架为桌面和 Web 应用程序创建精美的 UI。
现在是尝试 Compose Multiplatform 的最佳时机! 最简单的入门方法是查看官方教程。 使用 IntelliJ IDEA 2021.1 以上版本的内置 Kotlin 项目向导,您可以轻松开始创建第一个 Compose Multiplatform 项目并以 Kotlin 构建声明式用户界面。
官方教程
https://github.com/JetBrains/compose-jb/tree/master/tutorials
我们希望您喜欢它!
本文英文原作者:Sebastian Aigner
戳“阅读原文” 了解更多
本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Security Profiles Operator 发布 v0.4.0
作者:Jakub Hrozek、Juan Antonio Osorio、Paulo Gomes、Sascha Grunert 安全分析文件操作器(Security Profiles Operator,SPO[1])是 out-of-tree Kubernetes 的一种改进,可以使 seccomp、SELinux 和 AppArmor 分析文件的管理更容易、更方便。我们很高兴地宣布,我们最近发布了 v0.4.0,其中包含了大量的新特性、修复和可用性改进。 有什么新鲜事 从操作器的上一个 v0.3.0 版本到现在已经有一段时间了。在过去的半年里,我们在 290 次提交中添加了新的特性,调整了现有的特性,并重新编写了我们的文档。 其中一个亮点是,我们现在能够使用操作器的日志丰富器记录 seccomp 和 SELinux 分析文件。这允许我们减少在节点上运行 auditd 或 syslog(作为回退)时记录概要文件所需的依赖关系。通过使用 ProfileRecording CRD 及其相应的标签选择器,操作器中的所有分析文件记录都以相同的方式工作。日志丰富器本身也可以用来收集关于节点的 se...
- 下一篇
语音合成(TTS)技术在有道词典笔中的应用实践
youdao 背景介绍 ydtech 自 2017 年 10 月推出有道翻译蛋开始,网易有道已先后推出了二十余款智能学习硬件产品,包括有道翻译王、有道口袋打印机、有道超级词典、有道词典笔、有道听力宝等。 其中,有道词典笔开创了智能词典笔品类,连续两年获天猫、京东销量第一,并广受用户好评。 在近期有道词典笔的全新软件升级中(关联阅读:全新软件升级!真的很有料),有两个重要的优化,分别是: 发音接近真人,告别机械式 发音准确度提升,正确朗读多音词 >>>应用效果: 首先,我们进一步升级了发音系统,使中英发音尽可能接近真人。 为了给用户带来更好的体验,有道 AI 团队选取了多种真人发音素材,从来自公司内部、真实用户和 native speakers 等人群中选取足够大的样本发放调查问卷,从发音准确度、音色喜爱度等方面进行打分,并和专业的发音进行比较,最终选取了目前版本中的音色。 一个彩蛋 在我们选取的发音中,不乏一些明星语音,小伙伴们可以猜猜她是谁? (答案在文末揭晓) 在语言学习场景中,机械式的发音不仅让人觉得枯燥乏味,而且会影响口语学习的效果。 最自然、最理想的交互 莫...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果