目前 似乎没有看到 react-native 有关于性能优化方面的新闻、 以及未来计划
是否意味着 如果比较 在乎性能 , 就不能选 react-native 了?
想听听大家的看法
谢谢
1
joesonw 2020-07-02 17:29:18 +08:00
RN 坐靠 js 生态这一点优势太大. 大部分场景到不了性能瓶颈. 有瓶颈的组件用 native 就好了. 只是这样维护成本高, 小公司不太好搞.
|
2
sunbreak 2020-07-02 19:39:53 +08:00
性能不是唯一指标,更重要的是团队技术栈和业务场景需求
1. 简单业务场景,RN = Flutter 2. 复杂逻辑场景,RN > Flutter (主要是 RN 的轮子多) 3. 复杂性能场景,RN < Flutter,不过多半还是原生写 另外团队 Web 技术栈,RN >> Flutter ;团队 Android/iOS 技术栈,RN << Flutter 。其他情况需要自己评估 |
3
murmur 2020-07-02 19:59:09 +08:00 2
因为现在的 app,无论 rn 还是 flutter 都是 kpi 的产物,最适合开发的其实是 h5,也就是 cordova 方案,所以某种意义上微信小程序用 webview 不用 qeact-native 是对的,webview 相比系统本身还是稳定很多,虽然有 safari 这种人间之屑,而且 h5 开发用的技术也是你最熟悉的,很多公司不选 native,是他招不起那么多 native 程序员,希望大厂帮他们填坑,做一些 plugin 出来。
大厂选这个图的是什么,有那么多 native 开发,尤其是闲鱼这种,技术栈从 native 到 rn 到 weex 到 flutter 换了几茬了,你有提高一点用户体验吗?? |
4
HongJay 2020-07-02 20:02:06 +08:00 1
@murmur #3 屁股歪了还是学你的前端去吧。。每次都跳出来说 cordova 。。
还什么无论 rn 还是 flutter 都是 kpi 的产物,最适合开发的其实是 h5,也就是 cordova 方案。。 |
5
murmur 2020-07-02 20:08:05 +08:00 8
@HongJay 你仔细想,app 的黄金期已经过去了,你再折腾那点性能也比不过 native,native 的开发尚且稀烂,你用别说 flutter 了,给你 fukker 都是白扯。app 的竞争力是那点动画么?那是评测家吹牛逼的时候才会说的东西,我用淘宝是因为他东西多,你用拼多多是他有补贴,谁用京东是因为他送货快售后好,哪个也不是因为 app 体验做到极致。
前端这风气真的跟后端差远了,后端(尤其是 java )是有什么不行大家一起改进、完善,最后 spring 生根发芽,长成一棵参天大树,前端呢,看着啥不爽,一言不合推翻重来,到了 flutter 好了,直接弄个 dark 语言,还有那个恶心人的嵌套语法。 吹 flutter 吹的最狠的一个是闲鱼,这个大家都批判我就不说了,还一个我记得是头条?头条要把什么做成 flutter,要我看头条是最适合做小程序的,看几个新闻还要 app 干嘛。 |
9
sunbreak 2020-07-02 21:11:51 +08:00
@xi_lin Flutter/Dart 吸取了这个教训,确实花了很大精力来规范社区、治理包生态。但是 Flutter 目前确实还早期,轮子比较少 ,综合来看 RN 的可用的轮子更多些
|
10
xiangyuecn 2020-07-02 21:12:07 +08:00
@lwlizhe #7 你没见过不代表人家没有。
|
11
lwlizhe 2020-07-02 21:12:58 +08:00
@murmur 你也知道它们没 web 端嘛,所以你这吹 web 吹过了,人家抖音快手火了这么久,不出 web 端肯定是 web 实现不了啊,你这说的 webview 相比系统本身还是稳定很多之类的,就好像 web 无敌,native 都是 KPI 项目一样……
|
12
lwlizhe 2020-07-02 21:13:26 +08:00
@xiangyuecn 不是吧,抖音快手有 web 端了?举个例子?
|
14
murmur 2020-07-02 21:16:16 +08:00
@lwlizhe 快手 web 有直播端,抖音快手有 web 的大额充值和后台管理,看来还是惦记用户的钱,毕竟不用被苹果扣税
我想说的是,你真正离不开的例子,就是那种逼你二选一的,哪个不是 native 的, 我能想到的,也就是微信、qq 、支付宝、京东、qq 音乐,而更可怕的是,这些 app 的样子我多少年没看到变化了,已经进入稳定期了,我知道支付宝宣传过他们的 java 端多么努力的提升启动速度,但是这个显然跟 flutter 没一分钱关系 |
15
xiangyuecn 2020-07-02 21:19:42 +08:00
|
16
xiangyuecn 2020-07-02 21:21:16 +08:00
|
17
lshero 2020-07-02 21:29:56 +08:00
@xiangyuecn 分享页和 web 端是两回事吧?
|
18
xiangyuecn 2020-07-02 21:32:27 +08:00
@lshero 你说的对,你说的也不对🤔
|
19
minami 2020-07-02 21:34:40 +08:00 1
g 家开源项目慎用,从来都是把兼容性当狗屎,tensorflow 和 protobuf 这种火得不能再火的项目都敢作死,更何况一个 flutter 。。。
|
20
meteor957 2020-07-02 21:38:20 +08:00
@minami +1 还有 angularjs 到 angular 。Android 还没被 Google 玩死,也是运气好
|
21
love 2020-07-02 21:47:07 +08:00 2
flutter 选 dart 真是个败笔,语法比不过 js 生态还小,只看中一个是自家的这么个自私理由,太小气了
|
23
weixiangzhe 2020-07-02 23:04:28 +08:00 via Android
react 近期也有大版本 android 里的 js 引擎换了,部分实现也要用 interface 代替 jsbrigde
|
24
aabbcc112233 2020-07-02 23:07:39 +08:00
都说 flutter 性能接近原生,为什么我下载了了个 V2LF ( flutter 版本的 v 站客户端),仍然掉帧严重呢?
|
25
aabbcc112233 2020-07-02 23:08:45 +08:00
@love 要是用 kotlin 可能就效果不一样了
|
28
pecopeco 2020-07-03 00:34:40 +08:00 via Android
现在的跨端生态,简单需求随便哪家都行,复杂需求只能 rn,社区轮子够多,轮子作者心情好维护一下,出问题一言难尽,web 就别提了,苹果审核都过不了
|
30
maoxs2 2020-07-03 00:45:53 +08:00 via Android
用 dart+flutter 跨平台的后果就是不停的写基础库,而且遇到 bug 经常 stackoverflow 都找不到,全得自己调试……刚把一个椭圆曲线的 dart 库写完,这开发的我都快哭了
|
33
Tink 2020-07-03 07:25:31 +08:00 via iPhone
前端怎么会有这么多的框架,不能把一个各方面都做强点吗
|
34
Building 2020-07-03 07:58:47 +08:00 via iPhone
多看看苹果为了滑动流畅都做了什么优化和改进,原声尚且这么吃力,Web 想要做到原生的流畅度是不可能的,连 Touch 事件都处理不好。
|
35
murmur 2020-07-03 08:01:21 +08:00 1
@Building 流畅是为了什么,那么多人选择微信小程序,他就放弃了流畅,但是选择了微信的快捷开发和生态
我期望一个框架不是你天天吹牛逼秒天秒地,性能吊锤这个那个,而是你给我提供完善的解决方案 小程序开发体验垃圾,但是本质也是 h5,可以搞定,而且微信提供了一大堆 api,这些 api 基于微信本身,所以也算是稳定,国外一堆框架都是吹牛逼吹的多好,结果国人用的 api 全得自己搞定,或者靠社区维护 |
36
namelosw 2020-07-03 08:28:46 +08:00 3
Dart 是我见过最尴尬的语言…… 我理解本意是走 Go 的亲民(苟且)路线,但是 Go 讲真有很多还挺先进的设计,Dart 啥也没有。等于在 JS 上小修小补,结果还不兼容。
然后 TS 一出来 Dart 就彻底尴尬到不行。 |
37
micean 2020-07-03 08:41:31 +08:00
|
38
ccraohng 2020-07-03 09:01:53 +08:00 via Android
react-native 新的 js 引擎
手势动效方面 可以 用 worklet + reanimated,虽然现在可以用 reanimated v1 版本的 DSL :) |
39
WebKit 2020-07-03 09:06:28 +08:00 via Android
Flutter 现在轮子也不少,而且 Flutter 是可以调用原生控件的。
|
41
loginbygoogle 2020-07-03 10:22:07 +08:00 via iPhone
@murmur 无知
|
42
lwlizhe 2020-07-03 10:24:18 +08:00
@xiangyuecn 你是认真的么……抖音分享页也能算一个完整项目么……第二个快手也不是短视频,是快手直播啊……
|
43
TimLang 2020-07-03 10:25:15 +08:00
说下我们公司情况,我把基于 flutter 的项目框架搭好,然后我们公司 2 年经验的前端,写过 vue, 小程序就能上手开发 flutter 了,你说简单不简单。dart 这语言只要会 js,上手成本几乎为 0 (前提是 js 玩的好)。
flutter 这种开发没什么技术壁垒的 app 简直就是神器,谁用谁知道。 |
44
loginbygoogle 2020-07-03 10:26:43 +08:00 via iPhone
@minami 章口就来
|
45
closedevice 2020-07-03 10:27:04 +08:00
@murmur 啥是 dark 语言???
|
46
closedevice 2020-07-03 10:31:05 +08:00
@aabbcc112233 一个是跨平台 UI 框架,一个是语言,这咋比?换成 kotlin,写不好该卡的的还是卡.flutter 说是性能接近原生是从技术实现来说他具有这种打平原生的能力,但不是说用了 flutter 就能拥有这种能力,最终能不能,还是要看代码质量.
|
47
kx5d62Jn1J9MjoXP 2020-07-03 10:34:47 +08:00 via Android
@joesonw “大部分场景到不了性能瓶颈”
你是卡习惯了吧? |
48
lwlizhe 2020-07-03 10:35:10 +08:00
@murmur 额,你再重新看下我的回复……
我同意你所说的 app 的黄金期已经过去了这句话,所以我也没提这块 我所指的是“webview 相比系统本身还是稳定很多”这种的话…… 另外我也想说,产品体验没提升那是因为本身产品已经足够优秀了,并且吸引了足够的使用用户……你所说的那些 app 哪个不是国民级应用…… 如果处于竞争和扩张这些话,你还说那些话,开发虽然很爽,但是产品和老板怕不是要骂死你…… |
49
yuuko 2020-07-03 10:39:27 +08:00
> flutter 达到了接近原生的性能
这个真的是胡扯。。。。你自己运行下官方最简单的 Listview 列表那个 demo,掉帧严重,你要说我是米 6 手机渣当我没说,当然我说这个不是说 flutter 不好,只是真没达到这个原生性能 |
50
murmur 2020-07-03 10:46:22 +08:00 1
@lwlizhe 我评论一个框架的好坏,不是站在开发者吹牛逼的角度来看
从目前的结果看 作为用户,你没有给我带来更好的体验,尤其是闲鱼你还阉割了我的 web,我吹你 xxx 吹 作为开发者,你带来了新的坑,加班一点也没少,该是双端 debug 还得双端 所以吹的是什么? |
51
murmur 2020-07-03 10:47:54 +08:00
|
52
aabbcc112233 2020-07-03 10:58:44 +08:00
@closedevice 我那两条回复不是连续的,回复的是不同的人。我说的是换成 kotlin 写代码的体验就会好很多,也更利于更多的安卓开发加入 flutter 生态。至于现在 flutter 为什么掉帧我真的不知道,而且还有那么多人在尬吹。
|
53
murmur 2020-07-03 11:03:18 +08:00 1
@ssynhtn
“大部分场景到不了性能瓶颈”的意思是你连基本需求都没解决好,就来谈优化,就比如闲鱼这种,搜索被严重污染,关键词过滤稀烂,动不动就平白无故封号,然后你跟我说你多流畅,流畅的封号流畅的找不到客服么 |
54
lwlizhe 2020-07-03 11:15:08 +08:00
@murmur 我吹什么了……
我再仔细回去把我回复的内容看了下,甚至带好字这个,也只有好像这个词…… 我只是单纯的针对对你踩一捧一的行为,以及环球日报的做法…… 做为用户角度……你也别天天闲鱼闲鱼的,从哪学的环球日报做法,用特指代表所有,要真所有 web 和 app 端都像你说的那样,用户存留量这个早就打公司决策层的脸了 还有做为开发者角度……前端这个概念才兴起多久?你以为前端像后端 java 那样发展了很长时间了?框架好不好自然要试用过才知道,要一直像你说的你带来了新的坑,加班一点也没少,该是双端 debug 还得双端,自然决策层早晚要弃用,就像之前的 RN 一样,flutter 这才多长时间,甚至大公司也是局部混合使用,到你这已经能定性了…… |
55
mxT52CRuqR6o5 2020-07-03 11:19:51 +08:00 via Android
|
56
nicevar 2020-07-03 11:25:29 +08:00
关于 flutter 我只想说闲鱼是所有大厂中最烂的 app, 以前出了 bug 说是实习生写的, 现在几年过去了, 依然出现严重的卡顿现象, 同一个页面多次点击就会加载多次, 返回之后经常出现 item 无法点击, 还有页面空白等一堆问题
|
57
murmur 2020-07-03 11:27:55 +08:00
@lwlizhe 前端才几年就开始自己革自己的命,那不说明前端没有未来,从目前来看,flutter 依然没有解决跨平台开发的问题,而且他想连 native 部分都放弃,让开发者对着他的“画布”debug,这就是 unity 那套啊,那按着这个风气发展下去,3 年后还会有新的框架替代 flutter,然后到时候再把 flutter 也踩一脚?
我为什么总说闲鱼,一个技术好坏都是两面性,很明显 flutter 的问题相当多,闲鱼是属于对着新技术一顿吹捧的人,大家爱学习,拥抱新技术,但是都知道这东西好坏在哪里,闲鱼是个非常有代表性的东西,喜欢面向新技术开发,牛逼吹上天,丝毫不把心思放到改善用户体验上,我话就说这了,那点流畅度能带来什么体验,你的基本盘都没做好。而且这种东西影响很坏,大厂背后有各种顶级 native 程序员,他们有推翻 flutter 自己写一个的能力,他们吹的时候从来不说自己填了多少深坑,但是小厂看到跟着学,你学的来么? |
58
caocong 2020-07-03 11:29:31 +08:00
单纯使用上来说 上手快效率高
做我们公司内部用的一个的 app 我摸了一个月 做了两个月上线 编译调试都挺方便 |
59
lwlizhe 2020-07-03 11:50:04 +08:00
@murmur 先不说别的问题,你确认你了解 flutter ? flutter 想连 native 部分都放弃?先不说你从哪得出来这个结论的,如果按你的逻辑,那谷歌为什么还设计搞出 plugin 这个,为什么要提供 messagechannel ?你确认 native 是能放弃的东西?那你手机相机那帮东西你想怎么调用?
下面再吐槽你这主要问题: 1. “那按着这个风气发展下去,3 年后还会有新的框架替代 flutter,然后到时候再把 flutter 也踩一脚?” 如果新框架确实比 flutter 强,而且迁移成本不高,那就要把 flutter 踩一脚;我不认为一直无视新技术发展,不管性能提高,就是抱着旧框架等死的人,是一个合格的开发…… 2.“我话就说这了,那点流畅度能带来什么体验,你的基本盘都没做好。” 我还是那句话,别搞环球日报做法,用特指代表所有,闲鱼基本盘做不做好我不予评论,但是它基本盘做不做好和 flutter 本身有什么关系?人家只是高调宣传 flutter 而已,更何况,闲鱼又不是全盘使用 flutter,你倒是把闲鱼使用 flutter 卡顿的部分说出来做对比还有点说服力…… 顺便提一下,QQ,微信、书旗、哔哩哔哩等等之类的经过拆包,都已经使用上了 flutter 了,你有感觉么? 3. “而且这种东西影响很坏,大厂背后有各种顶级 native 程序员,他们有推翻 flutter 自己写一个的能力,他们吹的时候从来不说自己填了多少深坑,但是小厂看到跟着学,你学的来么?” 大厂填坑填就填了,难道它还驾着刀到小厂脖子上,逼着小厂用? 我寻思 kotlin 刚开始还是谷歌官推呢,在随后的一段时间内也没见国内大小厂都强行使用 kotlin 啊,这又不是逼你的,flutter 如果足够优秀,那就像现在的 kotlin 一样,自己会发展起来的,大厂帮你填坑了,你还要咋滴? |
61
lwlizhe 2020-07-03 12:00:54 +08:00
@channg 说的也是,我还是太年轻……主要是看不惯这种不管啥情况就踩一捧一的,有些话不说不舒服
明明框架这种东西是根据自身情况选择的,到他这,感觉就是学新框架就是政治错误…… |
62
aabbcc112233 2020-07-03 12:16:35 +08:00 via Android
@lwlizhe 确实,这个号在站里很眼熟了,可爱抬杠了。
|
64
youxiachai 2020-07-03 12:37:25 +08:00
老实说.....学这个能花多少时间..
吵架的时间.我都能写几个 demo... |
65
Comdex 2020-07-03 12:42:12 +08:00
有一说一,需要性能直接上原生,需要轮子效率就用 rn, flutter 目前是挺尬的
|
66
xzg1993 2020-07-03 12:43:15 +08:00
说一句啊,flutter 开发是真香,上手难度很低,不管是前端还是移动端,一个星期就能上手,还有说库少的,真是不需要啥库,,,ui 改动很简单,调用手机硬件的库也有很多。
来自一个上手 2 个月的 flutter 开发。 |
67
v400127 2020-07-03 12:58:52 +08:00 via Android
Flutter 挺香 当然缺点是有的 dart 好用 当然嵌套是有些多 都需要完善过程 不着急
|
68
HeapOverflow 2020-07-03 13:08:54 +08:00
这楼里批判 flutter 至少把 project 拿出来看看啊,不然🦐🐔8⃣️说什么呢
|
69
ayayui 2020-07-03 13:23:29 +08:00
Flutter 好不好先不说,但 Dart 确实垃圾
|
70
lblblong 2020-07-03 13:38:36 +08:00 via Android
flutter 用了差不多一年多,开发体验上来说还是更喜欢 rn,光是 rn 可以在浏览器控制台打印 log 和查看请求就赢了,而且语法上更喜欢 ts 。
|
73
murmur 2020-07-03 14:03:21 +08:00
@HeapOverflow 你说反了,现在是宣传 flutter 的应该先把重量级产品拿出来,在我们眼中,连闲鱼团队(阿里)都折腾成这样,你让小厂如何大胆开整
|
75
cccRaim 2020-07-03 14:50:22 +08:00
dart 类型不对就报错的问题真的贼麻烦
|
78
murmur 2020-07-03 15:08:22 +08:00
|
79
murmur 2020-07-03 15:10:43 +08:00
我再强调以下,cordova 不是 cordova 这个框架,是一种开发思路,native 的框架,用 web 展示需要动态或者复杂样式的部分,同时这部分还可以拿到其他平台上复用
微信小程序选择了 h5,说明在大家都对着 flutter 和 rn 炒的火热的时候,真正落地而且大规模应用的反倒是你们最看不起的 h5 怎么总有人只认为 cordova 就是 cordova |
80
IGJacklove 2020-07-03 15:12:04 +08:00
@nl101531 体验差是产品的锅吧,这和开发和用什么框架关系不是很大.
|
81
g0thic 2020-07-03 15:25:52 +08:00
全新版 react-native 马上要发布了 可以观察一下 如果性能能优化好一点 没理由用 flutter
|
84
wangxiaoaer 2020-07-03 16:07:03 +08:00
借楼问个问题:现在的 hybrid 方案感觉都是大而全,最讨厌的事开发工具之类都要用方案提供的。
我希望的是提供一个原生应用的脚手架 Android/iOS,里面涵盖下面功能即可: 1 精简浏览器(防止系统 webview 版本、性能、兼容性等问题) 2 JS-SDK 提供常用功能如定位、文件、相机、传感器等封装 3 原生和 JS 的双向通信机制 4 原生界面跟 Web 界面集成的机制 这样的话复杂的界面基于脚手架开发,简单应用按照以往的 web 开发模式开发(期间用到 2 和 3 的特性),弄好后按照要求( 4 )打到 APP 中,结束。运行时因为有 1,可以保证在不同机型的一致性(相对而言)。 不知道可不可行?有没有类似方案? |
85
whypool 2020-07-03 16:08:25 +08:00
现在敢说跨平台的,也就小程序走在前面了
|
86
HeapOverflow 2020-07-03 17:40:32 +08:00
别一口一个闲鱼的,闲鱼做的烂管我 p4 ?别只盯着一个 app 说话,照你这个逻辑,如果一个 java 的 app 写的烂那我可以说 native android 是垃圾吗?他做的烂与 flutter 是好是坏有何干系?我是说你如果没有用 flutter 做过一个像样的 project,就没有什么资格在这个废话这么多。
|
87
leekafai 2020-07-04 21:34:31 +08:00 via Android
cordova 真的不是很好的方案,在涉及系统 api 调用的地方,依然缺不了用原生写调用模块,有一些陈年的模块在现在 android 10 这种情况下不一定适用,要是自己亲自下场自己写 module,那还不如直接原生。
|
88
nezumi85757 2020-07-11 10:03:46 +08:00
@xi_lin 首先更要紧的问题是,官方应该先把构建界面这部分给重构,或者提供另一种声明式的写法,不管是 xml 还是 jsx html 都可以,哪怕自己再新造一种描述文档也行
|
89
xi_lin 2020-07-11 13:46:29 +08:00
@nezumi85757 现在不就是 jsx 么?
|
90
nezumi85757 2020-07-11 17:00:54 +08:00
@xi_lin flutter 哪来的 jsx,不都是描述式 widget 嵌套
|
91
xi_lin 2020-07-14 22:14:42 +08:00
@nezumi85757 我在这楼里只回复过一个 rn,所以我以为你在和我说 rn...
|
92
nezumi85757 2020-07-15 11:58:27 +08:00
@xi_lin 那我可能回错人了 0 0
|
93
xinhaiw 2020-08-02 23:50:43 +08:00
u1s1,Flutter 借鉴了很多 RN 的,里面太多思想来自 React 。会一个,另外一个上手特别快。
|
94
gaodeng 2020-08-27 10:28:46 +08:00
@g0thic react-native 新架构 facebook 已经喊了两年多了,不知道今年内能不能搞出来,感觉再这样拖下去,估计 react-native 都凉了。
|
95
CBReno 2021-04-15 09:31:54 +08:00
@TimLang 你们写过前端 那直接用 React Native 不是更好嘛 直接就是 js 为啥还要去学 dart ???
|