什么业务场景是 rn、weex、等框架没有办法 hold 住,必须上原生的情况

2021-01-21 16:56:37 +08:00
 Sniper416
3228 次点击
所在节点    程序员
22 条回复
eGlhb2Jhb2Jhbw
2021-01-21 17:00:54 +08:00
什么业务场景是原生没有办法 hold 住,必须上 rn 、weex 、等框架的情况?
Gloomyer
2021-01-21 17:14:21 +08:00
相机 /蓝牙?
vertigo
2021-01-21 17:59:37 +08:00
同事的野心?
ssshooter
2021-01-21 18:01:55 +08:00
流畅的动画
loveToMy1
2021-01-21 18:05:04 +08:00
产品经理或老板的决定 🐶
Jirajine
2021-01-21 18:15:27 +08:00
比如说工具类,和系统深度耦合的应用。
thtznet
2021-01-21 19:01:02 +08:00
国内大部分的流氓应用场景基本都没办法 hold 住,必须原生+奇技淫巧
liut2016
2021-01-21 19:01:55 +08:00
VPN
NonClockworkChen
2021-01-21 19:13:20 +08:00
强依赖 sdk 的,直播之类的
beginor
2021-01-21 21:03:35 +08:00
黑域,存储重定向, 脸谱(Magisk), 好多了
akira
2021-01-21 21:25:33 +08:00
wx 朋友圈
imgbed
2021-01-21 21:53:50 +08:00
视频实时美颜?
nieyujiang
2021-01-21 22:10:55 +08:00
Vpn,音视频编码解码,深度耦合系统功能,调用各种奇怪的底层接口
lihongming
2021-01-22 00:38:03 +08:00
如果你需要考虑广大农村地区、老人、以及低收入人群用的那种 512M 内存的破手机,那就所有场景都不适合,必须上原生。

程序员们用的设备都太好了,包括开发用的电脑,配置太高了,不知道贫下中农的痛苦。
zpxshl
2021-01-22 01:05:30 +08:00
赞同 14 楼。
Bijiabo
2021-01-22 01:31:56 +08:00
@lihongming 赞同。另外补充一下我的观点:
1. Weex 啥场景都 hold 不住,这玩意儿就是个垃圾
2. 对于 RN
2.1 涉及到高频复杂数据交互的不太适合(比如特定物联网领域),会存在队列阻塞问题,JNI 版本还没正式发布,需要原生做一些支持才能扛得住
2.2 需要非 HTTP 、WebSocket 通讯的场景,比如 MQTT 、TCP 、UDP 或其他加密通讯方式,普遍需要原生提供接口封装支持
2.3 需要用到一些仅提供 Native SDK 的服务时,需要上原生,有的服务原生代码要写的挺多的
2.4 音视频相关需求...特定界面还是必须原生
3. 具体业务场景来说,我个人觉得 RN 对于大部分场景都是能 hold 住的,只是成本高低和团队构成问题。如果遇到一个死活不愿意用 RN 的团队... ... 比如上原生
pkupyx
2021-01-22 08:06:19 +08:00
以 0.63 来说的话:
1.音视频直播
2.相机、录音
3.和本地文件(音视频 office 全家桶等等)的读写编辑
4.性能要求比较高的动画特效
5.无法接受 FlatList 滚动过快白屏
6.过多的原生三方依赖,少的话还能自己做 bridge 。

如果今年 JSI 能正式替换完整,性能大概能有个显著提升。
Beats0
2021-01-22 08:17:30 +08:00
就一个 Flatlist,几万条数据渲染再复杂一点,渲染会变得非常慢导致白屏
lagoon
2021-01-22 09:20:14 +08:00
注意,说的是“等”,但回答是“某个”。

不过这些框架,底层实现方式完全不同,所以差别其实挺大的。

从目前感觉来说,没办法的情况有几种:
1 、大量的强硬件相关。楼上几位说相机,这取决于要用相机干嘛。至少我这简单用相机拍照是不用写任何原生代码的(权限配置应该不算吧?)。
2 、必须要用的 sdk 是否有对应版本。说音视频、直播的,有些音视频第三方是有提供某些跨平台框架的版本的。
3 、手机性能,不能是太低配的手机。这个不同方案,对手机性能要求不同。如果底下是“基于 web”,那要求就会高一些。楼上说 512M 内存的手机例子太极端....512M 内存多数的原生 App 也卡的要死吧。
lagoon
2021-01-22 09:29:04 +08:00
补充下吧,其实能不能 hold 住,归为以下几类:

1 、是否有现成封装好的组件。
sdk 也好,音视频也好,就是这个道理。没有,就得自己搞。
有的人可能会把这当作是跨平台 hold 不住的例子,但如果这是 hold 不住的话,Java 和 swift 都 hold 不住了。因为你看那一众 C 语言打包的产物。

2 、是否有高要求。
优化到底层,以 Android 为例,有些公司 TextView 这么低性能的东西是要优化的。
这种层级的优化,那显然是要原生的。

3 、Android Framework 之类开发。

4 、针对极低性能客户。比如针对某些老人机、儿童机。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/747117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX