[技术选型, 混合开发] 原生+h5 对比原生+react native 或者 flutter - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
gogolts
V2EX    程序员

[技术选型, 混合开发] 原生+h5 对比原生+react native 或者 flutter

  •  
  •   gogolts 2024-01-23 15:22:21 +08:00 4146 次点击
    这是一个创建于 695 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:扫地机器人 App 开发,主要是涉及到蓝牙定位能力。目前 App 采用的技术栈是大部分用原生开发,小部分页面用 H5 开发。公司层面主要是想节约成本,叫调研下原生+react native 或是 flutter 。 问题:小公司就我一个前端,vue 和 react 都会写一写,但是没有接触过 react native 和 flutter ,看了看 react native 的官方文档,感觉配置环境都好麻烦。个人是想保持现状原生+h5 来继续搞,疑问是改成原生+react native 或者 flutter 真的收益很高吗,这样的混合开发会不会遇见巨坑啊

    第 1 条附言    2024-01-23 22:40:02 +08:00
    国外项目,不需要考虑小程序,只用考虑 android 和 ios 两端
    26 条回复    2024-01-24 16:03:56 +08:00
    tool2d
        1
    tool2d  
       2024-01-23 15:28:57 +08:00
    收益高不高不知道,项目开发途中换底层大框架,能把人累半死是真的。
    mightybruce
        2
    mightybruce  
       2024-01-23 15:40:09 +08:00
    react native 和 flutter 都是做界面 UI 的, 如果 H5 没有问题, 切换这些没有意义。
    关键组件用原生就可以了

    建议分析是否需要跨端或在多个平台上构建应用程序,包括 iOS ,Android ,Web 和小程序等。
    iOCZS
        3
    iOCZS  
       2024-01-23 15:40:47 +08:00
    可以考虑逐步迁移,原生集成 flutter 或 RN 的形式。
    推倒重来的话,就 flutter 集成原生
    gogolts
        4
    gogolts  
    OP
       2024-01-23 15:42:57 +08:00
    @tool2d 也不是换底层框架吧,是准备把 react native 整合到已有的原生项目中,https://reactnative.dev/docs/integration-with-existing-apps
    gogolts
        5
    gogolts  
    OP
       2024-01-23 16:15:16 +08:00
    @mightybruce 确实是需要跨平台到 ios 和 android, 目前这个 app 关键流程如定位和蓝牙是用的原生实现的,h5 就搞了几个简单的展示页面,没咋试过用 h5 搞蓝牙。领导是觉得养两个原生团队投入比较大,想用 react native 来搞混合开发,看了下 react native 对蓝牙啥的支持应该要比 h5 好些。
    KevinLock
        6
    KevinLock  
       2024-01-23 16:28:45 +08:00
    如果没有 Web 端,小程序端使用的需求,可以考虑 Flutter 。
    如果是重新写就纯 Flutter+原生底层交互,这样最好。
    如果开发周期短就得考虑 Flutter 混合开发的方式了,逐步迁移到 Flutter 里。但这样避免不了会使用 FlutterBoost 这样的框架解决引擎复用、路由跳转等问题,其坑还是蛮多的。
    我司去年一年都在需求迭代中逐步把原生页面迁移到 Flutter 端,确实比较累人。
    RN 没写过,曾经只接触过 Weex ,解决两端 UI 一致性挺费事的,拖拽等需要频繁交互的也还是需要原生来做,而且原生需要的开发量也不少。
    paledream
        7
    paledream  
       2024-01-23 16:35:35 +08:00
    如果从节约成本的角度出发,那就不应该替换掉成熟度高、跨平台好、生态丰富的 H5 ;而是把原生替换成 RN 或 Flutter 吧?
    donotquestion
        8
    donotquestion  
       2024-01-23 16:45:01 +08:00
    我做锁 RN 的,第三方蓝牙框架不好用,做页面和逻辑用 RN 确实省事
    jeesk
        9
    jeesk  
       2024-01-23 16:53:14 +08:00
    肯定 h5 呀. 当然必须得会折腾 ios/android 后端.
    gogolts
        10
    gogolts  
    OP
       2024-01-23 16:54:18 +08:00
    @KevinLock 想请问下为什么要逐步迁移保持统一呢,我们现在人力也不太够,前端就我一个人,开发经验不足很怕搞不定。我这边想的是如果确定了要 RN 集的话,后续需求大部分用 RN 来写,少部分交给原生团队去弄。
    jrtzxh020
        11
    jrtzxh020  
       2024-01-23 17:08:51 +08:00
    蓝牙和定位能力,小程序不是就能实现?
    meteor957
        12
    meteor957  
       2024-01-23 17:20:35 +08:00
    react native
    xieren58
        13
    xieren58  
       2024-01-23 17:23:46 +08:00
    国内的话, 不如小程序得了...
    wakarimasen
        14
    wakarimasen  
       2024-01-24 01:30:32 +08:00 via Android
    Flutter/RN 比 Web 节约成本的结论是如何得出的?
    yemoluo
        15
    yemoluo  
       2024-01-24 09:01:17 +08:00
    写扩展 RN 比 Flutter 简单多了。
    XXWHCA
        16
    XXWHCA  
       2024-01-24 09:39:19 +08:00
    不要慌啊,换了 RN 或者 flutter 也是原生那波人写,你就写些简单页面和前端页面就行了
    okakuyang
        17
    okakuyang  
       2024-01-24 10:00:29 +08:00 via iPhone
    f 和 rn 都是 ui 框架,如果 ui 上没有太大性能瓶颈,就用 web 就行了。换个好点的 web ui 框架,把控件做好点,做的像原生 app 点。rn 和 f 开发起来都不会有 web 方便的。你老板看起来是想开掉 ios 或者安卓其中一个人呢。
    gogolts
        18
    gogolts  
    OP
       2024-01-24 10:02:03 +08:00
    @angrylid 想的是 Flutter/RN 比 Web 更加支持蓝牙和定位这些能力吧,后面遇见需要蓝牙和定位能力的时候可以直接用 Flutter/RN 写。
    gogolts
        19
    gogolts  
    OP
       2024-01-24 10:05:36 +08:00
    @okakuyang 应该是的,老板一直吐槽原生团队资源占用太多了。我自身想法确实是还是 web 接着搞就成了。
    okakuyang
        20
    okakuyang  
       2024-01-24 10:14:01 +08:00 via iPhone
    @gogolts 哈哈,虽然不是想让原生的同事丢掉工作。蓝牙定位应该是已经写好了的代码吧,据我所知蓝牙定位也没有啥优化的空间。你老板是不是想同时开掉两个人了?
    gogolts
        21
    gogolts  
    OP
       2024-01-24 10:54:54 +08:00
    @okakuyang 原生团队 android 和 ios 各四个人,维护两个 App, 其中一个主 App 有 android 和 ios 两端,另一个次 App 只有 android 端。目前我们开发形式是原生+web ,老板想先拿次 App 试一试,逐步迁移到 RN/Flutter, 这样次 App 就能有两端了。后续有了经验再考虑主 App 的事情。
    han3sui
        22
    han3sui  
       2024-01-24 11:28:31 +08:00
    现在模式改成大部分页面用 H5 开发,小部分页面用原生开发不就好了?涉及到原生功能的,H5 通过 jsBridge 调用原生功能
    srect2018
        23
    srect2018  
       2024-01-24 11:36:15 +08:00
    react native 写 ui 页面倒是很快,和 web 一样。如果涉及到安卓和 ios 原生的,没有找到合适的库,就得自己来写原生那部分,然后和页面上进行通信处理。
    okakuyang
        24
    okakuyang  
       2024-01-24 14:10:49 +08:00 via iPhone
    @gogolts 8 个人做 app ,不知道什么体量的 app 啊。
    gogolts
        25
    gogolts  
    OP
       2024-01-24 14:17:04 +08:00
    @okakuyang 一个操控割草机的 App, 主要弄些建图绘制,硬件升级之类的能力,个人感觉功能不是很多
    laoona
        26
    laoona  
       2024-01-24 16:03:56 +08:00
    8 个原生,我是老板,我也想开掉一半人。[狗头保命]
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1272 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 17:13 PVG 01:13 LAX 09:13 JFK 12:13
    Do have faith in what you're doing.
    ubao msn 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