Jetpack Compose 1.0 发布了,移动端与桌面端分别体验如何?

2021-07-29 16:11:38 +08:00
 Veneris
7601 次点击
所在节点    Android
29 条回复
3dwelcome
2021-07-29 16:53:52 +08:00
教育机构狂喜,新技术代表新的培训项目,又能收割一批新的小白学员了。

开发者嘛,管你性能好不好,现在要开发都用三端统一的 UI 解决方案( web,android,ios),单独为安卓开发,又费钱又浪费时间,过了几年,发现自己是用爱给 Google 团队发电。

以前 XML 还能丢给美术,设计一下 UI 界面美感。现在 Compose 这种纯代码声明 UI,找哪个设计师帮你写设计代码?又不是人人都是技术美术,普通理科码农手写 UI 代码,巨丑。
nicocho
2021-07-29 17:55:30 +08:00
上午刚准备了解下 jetpack , 一篇文章给出的数据如下


构建时间能够 减少 29%
XML 行数大幅减少了 76%
APK 大小缩减了 41%
方法数减少了 17%
Cloud9527
2021-07-29 18:10:32 +08:00
@3dwelcome 基本没有培训 Android 的了。。。我认识一些开发还没用这个
meteor957
2021-07-29 18:54:48 +08:00
早几年估计是个大新闻,现在 Android 开发快要灭绝的情况下,除了卖课的感觉都没啥人关注
pocarisweat
2021-07-29 19:20:57 +08:00
就算是 Java 也比 Electron 看着顺眼啊,哎
fescover
2021-07-29 19:35:57 +08:00
哪天支持 ios 就学
tanranran
2021-07-29 22:01:46 +08:00
基于 canvas 的,性能上会比 xml 好一些,个人猜测,后期会和 flutter 大融合?
aabbcc112233
2021-07-29 22:06:01 +08:00
@3dwelcome 请问哪个公司 xml 给 UI 来写????
Michelangelono
2021-07-29 22:10:19 +08:00
@nicocho apk 体积如何做到的减少?毕竟 jetpack 实际是增加了很多依赖。
coolmint
2021-07-29 22:20:51 +08:00
我在 rc1 的时候把 compose 引入到项目中来,简单重写了一个界面,感觉还是不错的,当然和纯用 compose 构建的项目还是区别比较大的,以后准备用 compose 做更多的页面进一步深度体验
3dwelcome
2021-07-29 22:27:55 +08:00
@aabbcc112233 xml 有可视化编辑器,UI 设计师来改个颜色,弄个字体大小和样式总没问题吧。
compose 可就全部都是代码了。
aabbcc112233
2021-07-29 22:37:32 +08:00
@3dwelcome 没听说过 UI 有这个能力,也没听说过哪个公司让 UI 参与 xml 布局
Yadomin
2021-07-29 22:41:09 +08:00
别的不说,用 Jetpack Compose 重写的 Idea Toolbox 已经烂了
Yadomin
2021-07-29 22:41:34 +08:00
内存占用比肩 Electron
maninfog
2021-07-29 22:45:01 +08:00
体验还是不错的,将数据驱动 UI 的思想贯彻到了极致,声明式 UI 有一种用了回不去的感觉。

首先底层还是基于 Skia,还是 canvas 那一套,所以和 view 的互操作性很高,可以渐近的接入。Dialog 看了下底层还是原生的包了下。

最开始担心没有实时 preview 写起来不习惯,后面发现渐渐习惯了也还好,也会尝试着写完一个页面再调试,不再依赖预览。

如果你的设计是 MD,用 Compose 会很舒服,内置丰富的 MD 控件; Compose 处理换肤也是轻而易举,想想使用 view 时,一些换肤框架还要去 hook LayoutInflater 有点头皮发麻…

至于坑的话,个人觉得就是刚出来,还没有状态管理的最佳实践,另外就是页面组织不好的话阅读起来有点困难。
3dwelcome
2021-07-29 23:22:14 +08:00
@aabbcc112233 XML 是数据描述,是可以和内部工作流一些可视化工具桥接的。最终给 UI 展示的,就是普通 low code 设计软件操作界面。

但是 Compose 的组件都是偏手写代码,很难和工具整合。界面也代码和逻辑都混在一起,不好分离。对 UI 来说,改一点点,都异常困难。

国内的需求本来就是改的多,只有很少团队是完全按照设计稿一次成型的。
MakHoCheung
2021-07-29 23:26:17 +08:00
@Yadomin 这个不同,compose for desktop 底层还是 基于 Swing,而且还是 alpha 阶段,不急
0bit
2021-07-29 23:28:41 +08:00
按照折腾 SwiftUI 的教训,尽量还是多等等吧
3dwelcome
2021-07-29 23:57:18 +08:00
@maninfog "想想使用 view 时,一些换肤框架还要去 hook LayoutInflater 有点头皮发麻"

google 用 xml 的初衷应该是为了界面灵活多变,然而为了性能,最后弄了个谁都看不懂的二进制 XML 格式,还和资源强关联,想改都改不了。活生生把开发者的一些道路给堵死。

如果 LayoutInflater 用的全部都是明文 XML,也不至于沦落到今天这个尴尬的下场。
sunbreak
2021-07-30 07:37:37 +08:00
@MakHoCheung 不是基于 Swing,是基于 https://github.com/JetBrains/skija/

但确实保持了和 Swing 、JavaFx 框架的互操作性: https://blog.jetbrains.com/cross-post/jetpack-compose-for-desktop-milestone-2-released/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX