V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gogolts
V2EX  ›  程序员

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

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

    背景:扫地机器人 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
    国内的话, 不如小程序得了...
    angrylid
        14
    angrylid  
       2024-01-24 01:30:32 +08:00 via Android
    Flutter/RN 比 Web 节约成本的结论是如何得出的?
    GTim
        15
    GTim  
       2024-01-24 09:01:17 +08:00
    写扩展 RN 比 Flutter 简单多了。
    XXWHCA
        16
    XXWHCA  
       364 天前
    不要慌啊,换了 RN 或者 flutter 也是原生那波人写,你就写些简单页面和前端页面就行了
    okakuyang
        17
    okakuyang  
       364 天前 via iPhone
    f 和 rn 都是 ui 框架,如果 ui 上没有太大性能瓶颈,就用 web 就行了。换个好点的 web ui 框架,把控件做好点,做的像原生 app 点。rn 和 f 开发起来都不会有 web 方便的。你老板看起来是想开掉 ios 或者安卓其中一个人呢。
    gogolts
        18
    gogolts  
    OP
       364 天前
    @angrylid 想的是 Flutter/RN 比 Web 更加支持蓝牙和定位这些能力吧,后面遇见需要蓝牙和定位能力的时候可以直接用 Flutter/RN 写。
    gogolts
        19
    gogolts  
    OP
       364 天前
    @okakuyang 应该是的,老板一直吐槽原生团队资源占用太多了。我自身想法确实是还是 web 接着搞就成了。
    okakuyang
        20
    okakuyang  
       364 天前 via iPhone
    @gogolts 哈哈,虽然不是想让原生的同事丢掉工作。蓝牙定位应该是已经写好了的代码吧,据我所知蓝牙定位也没有啥优化的空间。你老板是不是想同时开掉两个人了?
    gogolts
        21
    gogolts  
    OP
       364 天前
    @okakuyang 原生团队 android 和 ios 各四个人,维护两个 App, 其中一个主 App 有 android 和 ios 两端,另一个次 App 只有 android 端。目前我们开发形式是原生+web ,老板想先拿次 App 试一试,逐步迁移到 RN/Flutter, 这样次 App 就能有两端了。后续有了经验再考虑主 App 的事情。
    han3sui
        22
    han3sui  
       364 天前
    现在模式改成大部分页面用 H5 开发,小部分页面用原生开发不就好了?涉及到原生功能的,H5 通过 jsBridge 调用原生功能
    srect2018
        23
    srect2018  
       364 天前
    react native 写 ui 页面倒是很快,和 web 一样。如果涉及到安卓和 ios 原生的,没有找到合适的库,就得自己来写原生那部分,然后和页面上进行通信处理。
    okakuyang
        24
    okakuyang  
       364 天前 via iPhone
    @gogolts 8 个人做 app ,不知道什么体量的 app 啊。
    gogolts
        25
    gogolts  
    OP
       364 天前
    @okakuyang 一个操控割草机的 App, 主要弄些建图绘制,硬件升级之类的能力,个人感觉功能不是很多
    laoona
        26
    laoona  
       364 天前
    8 个原生,我是老板,我也想开掉一半人。[狗头保命]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5133 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 01:29 · PVG 09:29 · LAX 17:29 · JFK 20:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.