Android 开发体验没有 web 开发体验好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nicefrp
V2EX    Android

Android 开发体验没有 web 开发体验好

  •  
  •   nicefrp 105 天前 4650 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近开发安卓原生,用的是 Jetpack compose+kotlin ,最大的问题就是没有 hot reload ,改的东西不能实时预览,好难受啊

    38 条回复    2025-07-12 17:46:58 +08:00
    w568w
        1
    w568w  
       105 天前   1
    Jetpack compose 有实时预览( Live Preview )和热重载( Hot reload )啊。你确定你不是看漏了?或者你说的「热重载」是特指「写完代码后一瞬间更新界面」?
    DeweyReed
        2
    DeweyReed  
       105 天前   1
    完全正确。Live Edit 是个残废,另外 ADB Wifi 也是。
    KMP 的桌面端刚整了个 Compose 的 Hot Reload 。
    XTTX
        3
    XTTX  
       105 天前   1
    体验了一个月的 react-native expo, 已经吐了。各种 style 在压成 apk 后不生效。web 大部分情况下所见即所得。
    Lockroach
        4
    Lockroach  
       105 天前   1
    现在有 preview 的话的话稍微好点,不过开发体验上确实没有 web 好
    Donahue
        5
    Donahue  
       105 天前   1
    确实,之前尝试简单入门过 android 开发/react-native-expo 也玩了一下,都不太行,跟 web 开发的体验比起来有很大差距。
    magicls
        6
    magicls  
       105 天前 via Android   4
    10 年 android 开发表示:调 UI 只是最后一步。逻辑写完之前,所有 View 都先随便摆
    Helsing
        7
    Helsing  
       105 天前 via iPhone   1
    这个确实不好,历史包袱太多,Google 都搞不好
    realkaiway
        8
    realkaiway  
       105 天前   1
    @XTTX 老哥情况属实吗,我刚开始搞
    narmgalaxy
        9
    narmgalaxy  
       105 天前   2
    flutter 热重载还可以
    lisongeee
        10
    lisongeee  
       105 天前   1
    web 前端的热重载叫 hmr (Hot Module Replacement),运行机制基于 js 的 dynamic import

    《改的东西能实时预览》 这个是基于模块边界的局部刷新(无需刷新整体页面或重启进程)

    此外 hmr 要搭配 react/vue 这类 ui 框架才是体验最优,它们会定义一个模块边界(.tsx/.vue) 来实现组件级别的局部刷新,如果是搭配 jquery/原生 js 就是整体刷新页面,体验其实不咋地

    目前最流行的前端构建工具 vite 也能很方便去自定义单个文件 hmr 逻辑 https://cn.vite.dev/guide/api-hmr

    前端的 hmr 体验这块确实是天花板级别
    cybort
        11
    cybort  
       105 天前 via Android   1
    是这样的。堪比手写 css 然后导入进去的感觉
    WngShhng
        12
    WngShhng  
       105 天前   1
    体验越好,门槛越低
    sofukwird
        13
    sofukwird  
       105 天前 via Android   1
    那你用 flutter 呀,flutter 有 hot reload ,虽然在我机器上要 0.7s 比 web 的 0.2s 长但毕竟是有
    aresyang
        14
    aresyang  
       105 天前   1
    手动推 so 才是重工业
    apkapb
        15
    apkapb  
       105 天前   1
    jetpack compose 其实我觉得是已经算好的了;

    最起码我 web 全栈 开发安卓也算容易入门且能做一个算好看、好用的安卓了。

    至于这个刷新问题,只能说,你先多写一点,再预览
    XTTX
        16
    XTTX  
       105 天前   1
    @realkaiway expo 53, react 19, react native xxx 版本,各种各样的坑。 除非你写的是个玩具, 不然会有各式各样的坑。 但是就像上面老哥说的, 门槛越低,AI 会全面替代。
    realkaiway
        17
    realkaiway  
       105 天前 via iPhone   1
    @XTTX 东西倒不复杂,prebuild 也暂时正常,真遇到了这问题再慢慢排查吧,只能忍了,原生我也不会
    XTTX
        18
    XTTX  
       105 天前   1
    @realkaiway emulator 到 手机 Expo development 到 eas 压成 apk, 三个环境 正常情况下都是一致的。上点复杂点的拖拽就各种抽风。
    kldd529
        19
    kldd529  
       105 天前   1
    确实,就算 preview 也是慢半拍,还时不时报错预览不出来,vue vite 就很丝滑
    murmur
        20
    murmur  
       105 天前   1
    @XTTX 那个东西就是 react 而已,style 全要按照安卓的命名写平台版本,哎,坑的 1b ,被 h5 爆杀
    xiaoshan5733
        21
    xiaoshan5733  
       105 天前   1
    我用 expo 开发多端经验是先在 iOS 上开发,全部功能开发完成后再 Android 适配( Android 开发体验很差,模拟器真不想开),目前 iOS 、iPad 、Android 、tvOS 都有开发上线的 app 。
    如果真说有什么卡点,微信支付、支付宝支付这种需要原生 SDK 接入的情况吧,理论上用 expo module 也可以实现,可能要花点时间。
    jamel
        22
    jamel  
       105 天前   1
    idea eap 没有 kmp 插件,气死了,一直在等。又不想回退。

    准备 写个完整的 kmp 项目 包含 ios 、android 、web 、exe 。看看 kmp 到底咋样了
    LUO12826
        23
    LUO12826  
       105 天前   1
    对于带 UI 的开发 难道有比 Web 前端体验更好的么
    yanyao233
        24
    yanyao233  
       104 天前   1
    @XTTX #3 在使用 nativewind 时遇到了大量的样式不生效问题,不过只用 inlineStyle 我暂时还没遇到这些问题
    irisdev
        25
    irisdev  
       104 天前   1
    写界面的论开发体验其他的跟 web 前端都没法比
    nicefrp
        26
    nicefrp  
    OP
       104 天前
    @w568w 有在用 Live Edit ,但相对前端的 HRM ,开发体验还是相差太多了
    @DeweyReed Live Edit 体验还是不太行
    @magicls Android 大佬,现在 Android 开发套装怎么选?例如网络请求库、热更新 Hot Fix 之类的,一些 APP 都会用到的功能,以及他们的技术选型
    @narmgalaxy 前几个月搞 Flutter ,实时预览相对原生好点,但相对 web 还是太差了
    @lisongeee 嗯嗯,是的,hmr 这块前端确实天花板级别
    @sofukwird 不能这样的,这里讨论的是 ndroid 原生的开发体验,怎样提升开发速度,选 Flutter 是另一个话题了
    @LUO12826 目前我发现确实没有,哈哈
    XTTX
        27
    XTTX  
       104 天前   1
    @yanyao233 是的. nativewind 越用越烦。inline 有时候 margin 也不生效。 最吐的还是 expo dev 手机上 和最终的打包完之间的差距。
    halzhang
        28
    halzhang  
       104 天前   1
    确实,Android 开发改完编译运行,耗时都可以抽完一根烟
    yafoo
        29
    yafoo  
       104 天前 via Android   1
    对我这新手来说,安卓开发最大的问题就是编译失败
    zzjun
        30
    zzjun  
       104 天前   1
    Compose 体验已经很好了
    kapaseker
        31
    kapaseker  
       103 天前   1
    按道理 Jetpack compose 是有热重载的,但是这个不是万能的,有资源更新和类更新就不行了,得重新 run 。

    不过对我来讲,UI 我一般都是最后调整的,前期都是先把逻辑写完,UI 上有控件就行了。

    我 14 年开发过一段时间的 Web ,那个时候我是直接用 firefox 的代码段和 chrome 控制台直接调试代码,确实好用。Android 没有。
    Bichat
        32
    Bichat  
       103 天前   1
    想编译快你得用 flutter
    Nanosk
        33
    Nanosk  
       103 天前   1
    之前做 framework 的 ui 开发,每次改完要重新 build img ,然后刷机,那叫一个折磨。。
    unco020511
        34
    unco020511  
       103 天前   1
    那是体验没有那么好吗,是差得远好吧,android 的开发体验就从来没好过
    AoEiuV020JP
        35
    AoEiuV020JP  
       103 天前   1
    确实安卓的开发就给人感觉“不够现代”,明明 compose 已经是很新的技术了,但就是给人老掉牙的感觉,
    nicefrp
        36
    nicefrp  
    OP
       103 天前
    @halzhang 这个暂时没到那步,目前编译速度还行,可能还没有什么功能
    @yafoo 是的,感觉 android 的包管理比 npm 的包还难搞
    @kapaseker 最主要的是不像 web 可以在浏览器调试界面
    @Bichat 有项目上 Flutter 的,目前这个项目不上
    @Nanosk 哈哈哈
    @unco020511 确实
    @AoEiuV020JP 确实的,开发体验太差了,过段时间搞搞原生苹果,体会一下苹果的开发体验
    lumyx
        37
    lumyx  
       98 天前
    ui 部分 all in flutter 吧。除非用到直播 地图 webview 这些 surfaceceView ,某些情况下需要特殊处理。
    top
        38
    top  
       91 天前
    我是 Android 开发,最近在搞 web(React),感觉 cursor+Claude4 写 web 简直快的飞起,几乎不需要自己写代码,完成度极高
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2477 人在线 &nbp; 最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 01:38 PVG 09:38 LAX 18:38 JFK 21:38
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86