背景:扫地机器人 App 开发,主要是涉及到蓝牙定位能力。目前 App 采用的技术栈是大部分用原生开发,小部分页面用 H5 开发。公司层面主要是想节约成本,叫调研下原生+react native 或是 flutter 。 问题:小公司就我一个前端,vue 和 react 都会写一写,但是没有接触过 react native 和 flutter ,看了看 react native 的官方文档,感觉配置环境都好麻烦。个人是想保持现状原生+h5 来继续搞,疑问是改成原生+react native 或者 flutter 真的收益很高吗,这样的混合开发会不会遇见巨坑啊
1
tool2d 312 天前
收益高不高不知道,项目开发途中换底层大框架,能把人累半死是真的。
|
2
mightybruce 312 天前
react native 和 flutter 都是做界面 UI 的, 如果 H5 没有问题, 切换这些没有意义。
关键组件用原生就可以了 建议分析是否需要跨端或在多个平台上构建应用程序,包括 iOS ,Android ,Web 和小程序等。 |
3
iOCZS 312 天前
可以考虑逐步迁移,原生集成 flutter 或 RN 的形式。
推倒重来的话,就 flutter 集成原生 |
4
gogolts OP @tool2d 也不是换底层框架吧,是准备把 react native 整合到已有的原生项目中,https://reactnative.dev/docs/integration-with-existing-apps
|
5
gogolts OP @mightybruce 确实是需要跨平台到 ios 和 android, 目前这个 app 关键流程如定位和蓝牙是用的原生实现的,h5 就搞了几个简单的展示页面,没咋试过用 h5 搞蓝牙。领导是觉得养两个原生团队投入比较大,想用 react native 来搞混合开发,看了下 react native 对蓝牙啥的支持应该要比 h5 好些。
|
6
KevinLock 312 天前
如果没有 Web 端,小程序端使用的需求,可以考虑 Flutter 。
如果是重新写就纯 Flutter+原生底层交互,这样最好。 如果开发周期短就得考虑 Flutter 混合开发的方式了,逐步迁移到 Flutter 里。但这样避免不了会使用 FlutterBoost 这样的框架解决引擎复用、路由跳转等问题,其坑还是蛮多的。 我司去年一年都在需求迭代中逐步把原生页面迁移到 Flutter 端,确实比较累人。 RN 没写过,曾经只接触过 Weex ,解决两端 UI 一致性挺费事的,拖拽等需要频繁交互的也还是需要原生来做,而且原生需要的开发量也不少。 |
7
paledream 312 天前
如果从节约成本的角度出发,那就不应该替换掉成熟度高、跨平台好、生态丰富的 H5 ;而是把原生替换成 RN 或 Flutter 吧?
|
8
donotquestion 312 天前
我做锁 RN 的,第三方蓝牙框架不好用,做页面和逻辑用 RN 确实省事
|
9
jeesk 312 天前
肯定 h5 呀. 当然必须得会折腾 ios/android 后端.
|
10
gogolts OP @KevinLock 想请问下为什么要逐步迁移保持统一呢,我们现在人力也不太够,前端就我一个人,开发经验不足很怕搞不定。我这边想的是如果确定了要 RN 集的话,后续需求大部分用 RN 来写,少部分交给原生团队去弄。
|
11
jrtzxh020 312 天前
蓝牙和定位能力,小程序不是就能实现?
|
12
meteor957 312 天前
react native
|
13
xieren58 312 天前
国内的话, 不如小程序得了...
|
14
angrylid 312 天前 via Android
Flutter/RN 比 Web 节约成本的结论是如何得出的?
|
15
GTim 312 天前
写扩展 RN 比 Flutter 简单多了。
|
16
XXWHCA 312 天前
不要慌啊,换了 RN 或者 flutter 也是原生那波人写,你就写些简单页面和前端页面就行了
|
17
okakuyang 312 天前 via iPhone
f 和 rn 都是 ui 框架,如果 ui 上没有太大性能瓶颈,就用 web 就行了。换个好点的 web ui 框架,把控件做好点,做的像原生 app 点。rn 和 f 开发起来都不会有 web 方便的。你老板看起来是想开掉 ios 或者安卓其中一个人呢。
|
18
gogolts OP @angrylid 想的是 Flutter/RN 比 Web 更加支持蓝牙和定位这些能力吧,后面遇见需要蓝牙和定位能力的时候可以直接用 Flutter/RN 写。
|
20
okakuyang 312 天前 via iPhone
@gogolts 哈哈,虽然不是想让原生的同事丢掉工作。蓝牙定位应该是已经写好了的代码吧,据我所知蓝牙定位也没有啥优化的空间。你老板是不是想同时开掉两个人了?
|
21
gogolts OP @okakuyang 原生团队 android 和 ios 各四个人,维护两个 App, 其中一个主 App 有 android 和 ios 两端,另一个次 App 只有 android 端。目前我们开发形式是原生+web ,老板想先拿次 App 试一试,逐步迁移到 RN/Flutter, 这样次 App 就能有两端了。后续有了经验再考虑主 App 的事情。
|
22
han3sui 311 天前
现在模式改成大部分页面用 H5 开发,小部分页面用原生开发不就好了?涉及到原生功能的,H5 通过 jsBridge 调用原生功能
|
23
srect2018 311 天前
react native 写 ui 页面倒是很快,和 web 一样。如果涉及到安卓和 ios 原生的,没有找到合适的库,就得自己来写原生那部分,然后和页面上进行通信处理。
|
26
laoona 311 天前
8 个原生,我是老板,我也想开掉一半人。[狗头保命]
|