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-…

目录
相关文章
|
2月前
|
IDE JavaScript 开发工具
Compose Multiplatform 1.0 发布
Compose Multiplatform 1.0 发布
72 0
|
8月前
|
Java 测试技术 Apache
软件版本GA,RC,alpha,beta,Build 含义
软件版本GA,RC,alpha,beta,Build 含义
66 0
|
存储 API
R -安装组件_1.9.1-beta
R -安装组件_1.9.1-beta
551 0
|
传感器
裸眼 3D 效果 Compose 版本
裸眼 3D 效果 Compose 版本
145 0
裸眼 3D 效果 Compose 版本
AGP 支持正式版 Compose 的最低版本
AGP 支持正式版 Compose 的最低版本
135 0
AGP 支持正式版 Compose 的最低版本
|
Web App开发 Ubuntu Linux
Ubuntu 11.04 beta 2发布!
Ubuntu Linux是一份完整的桌面Linux操作系统,它可免费获得,并带有社团及专业的支持。Ubuntu社团按照Ubuntu宣言里所铭记的思想而组建:软件应免费提供,软件工具应能以人们本地语种的形式可用且不牺牲任何功能,人们应拥有定制及改变他们软件的自由,这包括以任何他们认为适宜的方式。
993 0
|
存储 JSON 数据格式
Helm V3 新版本发布
Helm 作为 Kubernetes 体系的包管理工具,已经逐渐成为了事实上的应用分发标准。根据 2018 年 CNCF 的一项云原生用户调研,超过百分之六十八用户选择 Helm 来作为应用打包交付方式。
20105 0

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    26
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    24
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    22
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    20
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    20
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19