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

2023 年安卓原生开发: 是用 jetpack compose 还是用其他的?

  •  
  •   HaroldFinchNYC · 2023-08-01 01:25:13 +08:00 · 5059 次点击
    这是一个创建于 485 天前的主题,其中的信息可能已经有所发展或是发生改变。

    个人不太喜欢 kotlin ,虽然 jetpack compose 是所谓 declarative ,学习曲线平滑

    现在如果继续用 Java ,用什么呢?谢谢

    44 条回复    2024-01-07 05:47:54 +08:00
    yhvictor
        1
    yhvictor  
       2023-08-01 03:07:00 +08:00
    个人吐槽,声明式编程就没有学习曲线平滑的。
    nicegoing
        2
    nicegoing  
       2023-08-01 07:24:33 +08:00 via iPhone   ❤️ 5
    不怕学习,只怕学的东西没过几年就被抛弃了。老一套很好了,谷歌喜欢把 kpi 的半成品拿出来。过几年说不定 compose 又被新一套取代了。
    winterbells
        3
    winterbells  
       2023-08-01 08:26:49 +08:00 via Android   ❤️ 5
    @nicegoing 谷歌和 gradle 真是绝配,API 想改就改了
    ZGame
        4
    ZGame  
       2023-08-01 08:35:09 +08:00
    @nicegoing jetpack compose 确实是趋势啊, 本质模仿链 就是 react->flutter->jetpack compose 这在前端都被验证可行性了,这有啥好喷的..
    Vindroid
        5
    Vindroid  
       2023-08-01 08:37:07 +08:00
    看环境的,公司大家都用 kotlin 就一起上,没在用,那就继续 java ,又不是不能用
    MrHyde
        6
    MrHyde  
       2023-08-01 08:52:41 +08:00
    @Vindroid 我是 2023 年开始学,在 flutter 和 java 之间摇摆,不想用 kotlin
    kujio
        7
    kujio  
       2023-08-01 08:59:48 +08:00
    jetpack compos 国内用得很少,但是很值得学习,声明式是 GUI 开发趋势,kotlin 也是,函数式、协程 这些都是必学的,有 java 基础的,与其在其他语言学这些特性,我觉得在 kotlin 学这些更容易,
    声明式相对传统有点不好理解,主要还是思维转变,转变过来还是很好理解的。
    timelessg
        8
    timelessg  
       2023-08-01 09:00:10 +08:00 via Android
    作为一个 ios 开发者非常喜欢 compose,比 swiftui 高到不知道哪里,google 这次确实下力气了,向前兼容,提供了很多开箱即用的库,动画写起来也顺畅,写了已经一个来月了几乎没遇到什么坑,有需要吐槽的也是 android 本身的稀烂设计和 compose 无关,比如权限管理。学习的话建议多看看别人是怎么写的,一些技巧文档里还真没有
    yazinnnn
        9
    yazinnnn  
       2023-08-01 09:16:36 +08:00
    java 写不了 compose
    yatoooon
        10
    yatoooon  
       2023-08-01 09:18:56 +08:00
    kotlin compose 用过就回不去了
    HaroldFinchNYC
        11
    HaroldFinchNYC  
    OP
       2023-08-01 09:25:04 +08:00
    x77
        12
    x77  
       2023-08-01 09:46:47 +08:00 via Android
    Android 对 Java 的态度慢慢消极,不过我也不喜欢 Kotlin ,于是跳过,往前还有 Flutter
    fredweili
        13
    fredweili  
       2023-08-01 09:50:27 +08:00
    老早就 kotlin first 了,现在不学没道理
    githmb
        14
    githmb  
       2023-08-01 09:56:31 +08:00
    啊,2023 年了安卓还在用 Java ?这是什么老化石语言
    Esen
        15
    Esen  
       2023-08-01 10:00:47 +08:00
    我都直接不搞了
    HangoX
        16
    HangoX  
       2023-08-01 10:08:18 +08:00
    学习的话,建议直接 xml ,新手友好,文档多,compose 有些场景还是覆盖不到的。
    view 的话用 viewbinding 或者 databinding ,目前最好的解决方案了。你可以学习 compose 作为你的亮点,但是目前还不能做为基础
    meteor957
        17
    meteor957  
       2023-08-01 10:10:07 +08:00
    不想学了,爱谁谁
    meteor957
        18
    meteor957  
       2023-08-01 10:12:22 +08:00
    @nicegoing google 就这操性,跟着它的节奏没有好果子。
    xlsepiphone
        19
    xlsepiphone  
       2023-08-01 10:22:48 +08:00
    @Esen #15 +1 ,躺平舒服。
    CFM880
        20
    CFM880  
       2023-08-01 10:34:33 +08:00
    昨天刚试了试,ComposeUI 可以和原先的 xml 混合用,Kotlin 和 Java 也混着用,最近一个需求,就是 Kotlin 占 90%吧
    janus77
        21
    janus77  
       2023-08-01 10:49:16 +08:00
    如果是自用的小软件,可以用 compose ,就是做不出很漂亮的界面来,老版的 UI 写法已经有很多成熟组件库之类的东西了,很多也就是调调 api 就可以做出漂亮的界面,compose 的话,如果你有复杂交互和漂亮界面的需求,连大佬都不一定能研究出最佳实践。
    如果是商业项目,目前还是建议老版写法
    james2013
        22
    james2013  
       2023-08-01 11:38:00 +08:00
    我觉得 kotlin 很好用,compose 不好用
    superedlimited
        23
    superedlimited  
       2023-08-01 11:41:19 +08:00 via iPhone
    2023 年了,新开发安卓,不爱 kotlin 的理由是啥…是喜欢 java 那种又厚又长的裹脚布吗…
    xieren58
        24
    xieren58  
       2023-08-01 12:21:25 +08:00
    绝对 jetpack compose , 我用两年多了...
    justonelastdance
        25
    justonelastdance  
       2023-08-01 13:23:23 +08:00
    @xieren58 话说 kotlin 可以开发 ios 吗
    john6lq
        26
    john6lq  
       2023-08-01 13:26:46 +08:00 via iPhone
    1. Kotlin 是大势所趋,编写效率及代码整洁度摆在那。
    2. Compose 可灵活定制样式,摆脱 drawable 、layout 文件夹,自适应布局、黑暗模式等。
    listen6256
        27
    listen6256  
       2023-08-01 13:44:42 +08:00
    compose 在老手机上性能差、卡顿,不如 xml 。
    t6gfx4ddv3
        28
    t6gfx4ddv3  
       2023-08-01 14:20:43 +08:00 via Android
    直接 Kotlin + Compose 。

    如果类比前端,从 xml 到 Compose 就好像是从 jQuery 升级到了 React 。在推上看到一开始 Compose 就是要做 Android 上的 React ,貌似还是 java 写的。正式出来后感觉比 React 还要声明式,加上 Kotlin 感觉写 React 都不太顺畅了。

    Compose 上手后根本不想再回去,万金油 Box, Column, Row 可以直接实现 xml 里绝大部分用 XXXLayout 实现的布局,自定义布局也比 xml 那套流程简单不只一点。动画 API 非常好用,加上 graphicsLayer 这个 Modifier ,几十行就可以实现以前几百行数个 Animator 的 View 动画。LazyColumn 等列表类的 API ,对 ListView 、RecyclerView 这些繁琐的组件更是降维打击。

    不足就是目前元素共享动画实现起来很麻烦,几年了也没推出一个好用的 API ;文本选择还不能自定义菜单项;性能比不上 xml ,滚动、动画一些场景下存在明显卡顿,debug 版本的 app 调试一些复杂页面比 ppt 还卡;其他一些小功能还有缺失,比如到现在滚动视图都还要自己画滚动条;还有一些其他小问题,比如函数参数稳定性,社区反响很大,官方却似乎没怎么提过,但是有时候确是优化卡顿的关键。

    不过这些缺点应该会得到解决和改善,除非谷歌作大死。而且 Kotlin 跨平台势头正起,JetBrains 也在出力,未来 Compose 能和 Flutter 比一比也说不定。
    Tolcol
        29
    Tolcol  
       2023-08-01 14:40:27 +08:00
    @Esen #15 老哥转行了吗
    haaro
        30
    haaro  
       2023-08-01 15:34:42 +08:00
    日本很多大厂都在往 compose 转,之前看到 rakuten 招聘直接就是 compose first
    ww940521
        31
    ww940521  
       2023-08-01 15:37:49 +08:00
    建议直接参考 Google 的 nowinandroid 的 demo 项目。
    coobbi
        32
    coobbi  
       2023-08-01 15:51:46 +08:00
    使用过 jetpack compose ,还不成熟,想要实现一些复杂的组件或者想要使用一些成熟的开源组件,往一块拼凑很费劲。
    自己玩耍的项目可以使用 jetpack compose 。有 kpi 要求或者项目有工时要求的慎用。
    xieren58
        33
    xieren58  
       2023-08-01 16:01:57 +08:00
    @apple15634145 可以, 具体可以看 KMM (Kotlin Multiplatform Mobile)相关...
    dreamingclj
        34
    dreamingclj  
       2023-08-01 16:21:20 +08:00
    kotlin 比 java 好用多了
    Esen
        35
    Esen  
       2023-08-01 18:03:04 +08:00
    @timelessg compose 套娃不难受吗
    Esen
        36
    Esen  
       2023-08-01 18:05:04 +08:00
    @xlsepiphone 躺不平啊,年纪大了等着被裁而已,自己打算整副业不搞这一行了,以前觉得自己能写一辈子代码,不会厌倦,现在看见代码就想绕着走
    Esen
        37
    Esen  
       2023-08-01 18:06:10 +08:00
    @Tolcol 还没有,还得挣钱吃饭,只不过搞 framework ,kotlin 基本用不着
    mkoijnbhu
        38
    mkoijnbhu  
       2023-08-01 18:39:31 +08:00
    2023 了, 别用 java+xml 写 Android 了, 写 UI 的话有现成的 xml 组件你直接拿来用还算方便, java 真就别用了
    agagega
        39
    agagega  
       2023-08-01 21:03:24 +08:00 via iPhone
    不懂 Android ,从这个帖子看起来,Compose 在 Android 开发的接受度比 SwiftUI 在 iOS 的接受度明显更高?
    Takuron
        40
    Takuron  
       2023-08-01 22:42:05 +08:00
    能接受 compose 接受不了 kotlin 可还行
    compose 没用过,但 kotlin 确实属于我不喜欢但真香的东西,协程这种东西用了几次九再也不想线程了
    nnegier
        41
    nnegier  
       2023-08-02 06:46:59 +08:00
    我觉得 kotlin 不好全局搜索代码,语法使然
    @Takuron
    92Developer
        42
    92Developer  
       2023-08-02 08:12:02 +08:00 via Android
    如果做独立产品,会什么就用什么,因为推广才是最重要的。如果做公司产品,就看公司要求呗
    HaroldFinchNYC
        43
    HaroldFinchNYC  
    OP
       2023-08-02 10:11:19 +08:00
    @dongbeicxy 做点玩具自己玩玩得了
    no13bus
        44
    no13bus  
       325 天前
    @t6gfx4ddv3 加个好友?学习下 compose ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1228 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.