V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Veneris
V2EX  ›  Android

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

  •  
  •   Veneris · 80 天前 · 3080 次点击
    这是一个创建于 80 天前的主题,其中的信息可能已经有所发展或是发生改变。
    29 条回复    2021-08-02 15:04:12 +08:00
    3dwelcome
        1
    3dwelcome   79 天前
    教育机构狂喜,新技术代表新的培训项目,又能收割一批新的小白学员了。

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

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


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

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

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

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

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

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

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

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

    如果 LayoutInflater 用的全部都是明文 XML,也不至于沦落到今天这个尴尬的下场。
    sunbreak
        20
    sunbreak   79 天前
    @MakHoCheung 不是基于 Swing,是基于 https://github.com/JetBrains/skija/

    但确实保持了和 Swing 、JavaFx 框架的互操作性: https://blog.jetbrains.com/cross-post/jetpack-compose-for-desktop-milestone-2-released/
    MakHoCheung
        21
    MakHoCheung   79 天前
    @sunbreak 我知道它是用 skija 渲染,但是你点进去看 window,还是 swing 的 window 。
    ingramyang
        22
    ingramyang   79 天前 via Android
    没有用,就是 flutter 的复制品。但是 flutter 可以做到一套 UI 代码多平台运行,可 compose 的桌面和移动端 UI 接口都不一样,所以没啥用这东西。
    wobuhuicode
        23
    wobuhuicode   79 天前
    用了 5 年 react-native 都没有一个正式版……
    james2013
        24
    james2013   79 天前
    个人觉得这个功能很垃圾,xml 能够很好的分离逻辑和界面,这个功能又把界面和逻辑搞在 java 里,复制的界面 xml 布局几百行,甚至要分几个 xml 导入,方便管理
    fromzero
        25
    fromzero   78 天前
    @3dwelcome ui 界面和逻辑是否混在一起 取决于你怎么写。 完全可以每个组件完全隔离,传入相应的 逻辑 block 函数。充分组合复用每个小 UI 组件。
    fromzero
        26
    fromzero   78 天前
    @3dwelcome compose 也有 preview 啊
    honjow
        27
    honjow   77 天前 via iPhone
    @james2013 声明式 ui 框架全是代码里写布局,还有代码里写布局不代表 ui 和逻辑不能分离
    sahooz
        28
    sahooz   77 天前 via Android
    如果早出几年并且支持跨平台(至少支持 Android 和 iOS),我会毫不犹豫选它,现在我有 Flutter,没太大动力去搞它了感觉……
    pipilu
        29
    pipilu   76 天前
    声明式 UI,不香吗
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2137 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:45 · PVG 16:45 · LAX 01:45 · JFK 04:45
    ♥ Do have faith in what you're doing.