1
3dwelcome 2021-07-29 16:53:52 +08:00
教育机构狂喜,新技术代表新的培训项目,又能收割一批新的小白学员了。
开发者嘛,管你性能好不好,现在要开发都用三端统一的 UI 解决方案( web,android,ios),单独为安卓开发,又费钱又浪费时间,过了几年,发现自己是用爱给 Google 团队发电。 以前 XML 还能丢给美术,设计一下 UI 界面美感。现在 Compose 这种纯代码声明 UI,找哪个设计师帮你写设计代码?又不是人人都是技术美术,普通理科码农手写 UI 代码,巨丑。 |
2
nicocho 2021-07-29 17:55:30 +08:00
上午刚准备了解下 jetpack , 一篇文章给出的数据如下
构建时间能够 减少 29% XML 行数大幅减少了 76% APK 大小缩减了 41% 方法数减少了 17% |
4
meteor957 2021-07-29 18:54:48 +08:00
早几年估计是个大新闻,现在 Android 开发快要灭绝的情况下,除了卖课的感觉都没啥人关注
|
5
pocarisweat 2021-07-29 19:20:57 +08:00
就算是 Java 也比 Electron 看着顺眼啊,哎
|
6
fescover 2021-07-29 19:35:57 +08:00
哪天支持 ios 就学
|
7
tanranran 2021-07-29 22:01:46 +08:00
基于 canvas 的,性能上会比 xml 好一些,个人猜测,后期会和 flutter 大融合?
|
8
aabbcc112233 2021-07-29 22:06:01 +08:00 via Android 2
@3dwelcome 请问哪个公司 xml 给 UI 来写????
|
9
Michelangelono 2021-07-29 22:10:19 +08:00
@nicocho apk 体积如何做到的减少?毕竟 jetpack 实际是增加了很多依赖。
|
10
coolmint 2021-07-29 22:20:51 +08:00 via iPhone
我在 rc1 的时候把 compose 引入到项目中来,简单重写了一个界面,感觉还是不错的,当然和纯用 compose 构建的项目还是区别比较大的,以后准备用 compose 做更多的页面进一步深度体验
|
11
3dwelcome 2021-07-29 22:27:55 +08:00 via Android
@aabbcc112233 xml 有可视化编辑器,UI 设计师来改个颜色,弄个字体大小和样式总没问题吧。
compose 可就全部都是代码了。 |
12
aabbcc112233 2021-07-29 22:37:32 +08:00 4
@3dwelcome 没听说过 UI 有这个能力,也没听说过哪个公司让 UI 参与 xml 布局
|
13
Yadomin 2021-07-29 22:41:09 +08:00
别的不说,用 Jetpack Compose 重写的 Idea Toolbox 已经烂了
|
14
Yadomin 2021-07-29 22:41:34 +08:00
内存占用比肩 Electron
|
15
maninfog 2021-07-29 22:45:01 +08:00 via iPhone
体验还是不错的,将数据驱动 UI 的思想贯彻到了极致,声明式 UI 有一种用了回不去的感觉。
首先底层还是基于 Skia,还是 canvas 那一套,所以和 view 的互操作性很高,可以渐近的接入。Dialog 看了下底层还是原生的包了下。 最开始担心没有实时 preview 写起来不习惯,后面发现渐渐习惯了也还好,也会尝试着写完一个页面再调试,不再依赖预览。 如果你的设计是 MD,用 Compose 会很舒服,内置丰富的 MD 控件; Compose 处理换肤也是轻而易举,想想使用 view 时,一些换肤框架还要去 hook LayoutInflater 有点头皮发麻… 至于坑的话,个人觉得就是刚出来,还没有状态管理的最佳实践,另外就是页面组织不好的话阅读起来有点困难。 |
16
3dwelcome 2021-07-29 23:22:14 +08:00
@aabbcc112233 XML 是数据描述,是可以和内部工作流一些可视化工具桥接的。最终给 UI 展示的,就是普通 low code 设计软件操作界面。
但是 Compose 的组件都是偏手写代码,很难和工具整合。界面也代码和逻辑都混在一起,不好分离。对 UI 来说,改一点点,都异常困难。 国内的需求本来就是改的多,只有很少团队是完全按照设计稿一次成型的。 |
17
MakHoCheung 2021-07-29 23:26:17 +08:00
@Yadomin 这个不同,compose for desktop 底层还是 基于 Swing,而且还是 alpha 阶段,不急
|
18
0bit 2021-07-29 23:28:41 +08:00
按照折腾 SwiftUI 的教训,尽量还是多等等吧
|
19
3dwelcome 2021-07-29 23:57:18 +08:00
@maninfog "想想使用 view 时,一些换肤框架还要去 hook LayoutInflater 有点头皮发麻"
google 用 xml 的初衷应该是为了界面灵活多变,然而为了性能,最后弄了个谁都看不懂的二进制 XML 格式,还和资源强关联,想改都改不了。活生生把开发者的一些道路给堵死。 如果 LayoutInflater 用的全部都是明文 XML,也不至于沦落到今天这个尴尬的下场。 |
20
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/ |
21
MakHoCheung 2021-07-30 09:09:23 +08:00
@sunbreak 我知道它是用 skija 渲染,但是你点进去看 window,还是 swing 的 window 。
|
22
ingramyang 2021-07-30 09:19:57 +08:00 via Android
没有用,就是 flutter 的复制品。但是 flutter 可以做到一套 UI 代码多平台运行,可 compose 的桌面和移动端 UI 接口都不一样,所以没啥用这东西。
|
23
wobuhuicode 2021-07-30 09:47:12 +08:00
用了 5 年 react-native 都没有一个正式版……
|
24
james2013 2021-07-30 15:16:10 +08:00
个人觉得这个功能很垃圾,xml 能够很好的分离逻辑和界面,这个功能又把界面和逻辑搞在 java 里,复制的界面 xml 布局几百行,甚至要分几个 xml 导入,方便管理
|
25
fromzero 2021-07-30 23:12:37 +08:00
@3dwelcome ui 界面和逻辑是否混在一起 取决于你怎么写。 完全可以每个组件完全隔离,传入相应的 逻辑 block 函数。充分组合复用每个小 UI 组件。
|
28
sahooz 2021-08-01 00:47:00 +08:00 via Android
如果早出几年并且支持跨平台(至少支持 Android 和 iOS),我会毫不犹豫选它,现在我有 Flutter,没太大动力去搞它了感觉……
|
29
pipilu 2021-08-02 15:04:12 +08:00
声明式 UI,不香吗
|