Compose Multiplatform 发布 Beta 版本

简介: Compose Multiplatform 发布 Beta 版本

近日,JetBrains 公司发布了 Compose Multiplatform 的 Beta 版本,这距离此前 Alpha 版本的发布才过去两个多月。

这个版本中包含了许多新的改进,在桌面端与Web端分别增加了新的 API ,并对已有的部分 APIs 进行了稳定。Beta 版的发布意味着距离 1.0 正式版更近了一步。

Jetpack Compose 是 Android 最新推出的声明式 UI 工具包。JetBrains 受到 Jetpack Compose 的启发,相继发布了 Compose Desktop 以及 Compose Web 项目,试图依托 Kotlin 语言跨平台的特性将声明式开发方式扩展到更多平台。

image.png

JetBrains 于今年8月将 Android,Desktop 以及 Web 等多个平台的 Compose 版本整合为 Compose Multiplatform 项目,未来开发者在 Kotlin Multiplatform 项目中可以使用同一套 Artifacts 开发 UI 。

Compose Multiplatform 项目推进速度很快,其正式版本最快可于今年内与大家见面。项目之所以快速推进是因为 Jetpack Compose 在设计之初就考虑了未来在更多平台中应用的场景。

image.png

翻看 Jetpack Compose 项目源码可以发现项目采用了 Kotlin Multiplatform 的工程结构,代码中充斥了 actual / expect 关键字,这是 Kotlin Multiplatform 的重要关键字,支持项目在多个平台的适配和落地。

image.png

Compose 的技术栈分层合理,各层都能够单独复用。处于底层的 compose-runtime 主要负责视图树的管理,这些逻辑与平台无关,任何平台都可以基于 runtime 构建自己的声明式 UI 框架;而 compose-ui-core 中负责的渲染部分基于 JetBrains 的跨平台 Skia 库实现(Skiko),此部分不依赖特定平台,也可以在 Desktop 甚至 iOS 侧使用;compose-ui-fundation 以及 compose-ui-material 中的很多布局或者基础组件在设计上也充分考虑了通用性,可以在 Desktop 等其他平台使用。可见,虽然 Jetpack Compose 作为 Android 的 Native UI 框架诞生,但是其骨子里已经具备了跨平台的潜力,Compose Multiplatform 的出现算得上是水到渠成。

JetBrains 之外的其他一些公司和组织也在进行着 Compose 跨平台方面的探索,前不久 Jack Wharton 就曾在其博客宣称他近期一直致力于将 Compose 运行在包括 iOS 在内的更多平台。

image.png

Compose 不追求 API 在各平台的绝对一致,不同平台可以结合自身特性打造独有的 DSL,但是它们在开发范式以及底层原理上保持统一。Compose 凭借先进的开发思想及良好的可移植性,有潜力成为未来包括桌面端在内的 UI 通用解决方案,也许一个 Native 版 React 即将来临。

官网:www.jetbrains.com/lp/compose-…

目录
相关文章
|
存储 缓存 编译器
探索 Jetpack Compose 内核:深入 SlotTable 系统
探索 Jetpack Compose 内核:深入 SlotTable 系统
445 1
|
Swift iOS开发
iOS @available 和 #available 的用法
iOS @available 和 #available 的用法
648 0
|
4月前
|
编解码 Java 开发工具
【HarmonyOS Next之旅】DevEco Studio的安装与环境配置
本教程详细介绍了使用DevEco Studio进行OpenHarmony开发的全流程,包括下载与安装、环境配置、项目准备及实用技巧。首先,以Windows环境为例,说明了DevEco Studio的运行要求、下载和安装步骤;接着,通过设置环境变量和配置SDK完成开发环境搭建;然后,讲解了项目创建、预览器和虚拟机的使用方法;最后,分享了中文插件安装和简化工程目录栏等小技巧,帮助开发者高效上手OpenHarmony开发。
457 0
|
6月前
|
算法
面试场景题:如何设计一个抢红包随机算法
本文详细解析了抢红包随机算法的设计与实现,涵盖三种解法:随机分配法、二倍均值法和线段切割法。随机分配法通过逐次随机分配金额确保总额不变,但易导致两极分化;二倍均值法优化了金额分布,使每次抢到的金额更均衡;线段切割法则将总金额视为线段,通过随机切割点生成子金额,手气最佳金额可能更高。代码示例清晰,结果对比直观,为面试中类似算法题提供了全面思路。
1085 16
|
4月前
|
存储 开发框架 数据管理
【HarmonyOS Next之旅】ArkTS语法(一)
【HarmonyOS之旅】ArkTS语法(一)
324 12
|
5月前
|
安全 前端开发 Android开发
拥抱国产化:转转APP的鸿蒙NEXT端开发尝鲜之旅
本文将要分享的是转转APP在开发全新鸿蒙NEXT端所遇到的一些问题,对比了鸿蒙开发和 Android、iOS 的不同,总结了这次开发过程中的一些经验等等。希望能带给你启发。
124 0
|
9月前
|
SQL 关系型数据库 MySQL
阿里云DTS踩坑经验分享系列|DTS SelectDB链路最佳实践
大数据时代背景下,高效的数据流转与实时分析能力对于企业的竞争力至关重要。阿里云数据传输服务DTS与SelectDB联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL/PostgreSQL、RDS MySQL/PostgreSQL、PolarDB for MySQL/PostgreSQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
438 3
|
JavaScript 前端开发 API
js全屏,监听页面是否全屏
js全屏,监听页面是否全屏
202 4
|
消息中间件 大数据 Kafka
Kafka与大数据:消息队列在大数据架构中的关键角色
【4月更文挑战第7天】Apache Kafka是高性能的分布式消息队列,常用于大数据架构,作为实时数据管道汇聚各类数据,并确保数据有序传递。它同时也是数据分发枢纽,支持多消费者订阅,简化系统集成。Kafka作为流处理平台的一部分,允许实时数据处理,满足实时业务需求。在数据湖建设中,它是数据入湖的关键,负责数据汇集与整理。此外,Kafka提供弹性伸缩和容错保障,适用于微服务间的通信,并在数据治理与审计中发挥作用。总之,Kafka是现代大数据体系中的重要基础设施,助力企业高效利用数据。
639 1
端口被占用?两步解决端口占用问题
端口被占用?两步解决端口占用问题
1314 0