flutter 达到了接近原生的性能,但公开资料鲜有提及 react-native 有类似表现,是否意味着在性能偏重上,RN 已经被 flutter 远远甩开了?

发布于 1周前 作者 h691938207 来自 Flutter

目前 似乎没有看到 react-native 有关于性能优化方面的新闻、 以及未来计划

是否意味着 如果比较 在乎性能 , 就不能选 react-native 了?

想听听大家的看法

谢谢


flutter 达到了接近原生的性能,但公开资料鲜有提及 react-native 有类似表现,是否意味着在性能偏重上,RN 已经被 flutter 远远甩开了?
96 回复

RN 坐靠 js 生态这一点优势太大. 大部分场景到不了性能瓶颈. 有瓶颈的组件用 native 就好了. 只是这样维护成本高, 小公司不太好搞.

更多关于flutter 达到了接近原生的性能,但公开资料鲜有提及 react-native 有类似表现,是否意味着在性能偏重上,RN 已经被 flutter 远远甩开了?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


性能不是唯一指标,更重要的是团队技术栈和业务场景需求

1. 简单业务场景,RN = Flutter
2. 复杂逻辑场景,RN > Flutter (主要是 RN 的轮子多)
3. 复杂性能场景,RN < Flutter,不过多半还是原生写

另外团队 Web 技术栈,RN >> Flutter ;团队 Android/iOS 技术栈,RN << Flutter 。其他情况需要自己评估

因为现在的 app,无论 rn 还是 flutter 都是 kpi 的产物,最适合开发的其实是 h5,也就是 cordova 方案,所以某种意义上微信小程序用 webview 不用 qeact-native 是对的,webview 相比系统本身还是稳定很多,虽然有 safari 这种人间之屑,而且 h5 开发用的技术也是你最熟悉的,很多公司不选 native,是他招不起那么多 native 程序员,希望大厂帮他们填坑,做一些 plugin 出来。

大厂选这个图的是什么,有那么多 native 开发,尤其是闲鱼这种,技术栈从 native 到 rn 到 weex 到 flutter 换了几茬了,你有提高一点用户体验吗??

#3 屁股歪了还是学你的前端去吧。。每次都跳出来说 cordova 。。
还什么无论 rn 还是 flutter 都是 kpi 的产物,最适合开发的其实是 h5,也就是 cordova 方案。。

你仔细想,app 的黄金期已经过去了,你再折腾那点性能也比不过 native,native 的开发尚且稀烂,你用别说 flutter 了,给你 fukker 都是白扯。app 的竞争力是那点动画么?那是评测家吹牛逼的时候才会说的东西,我用淘宝是因为他东西多,你用拼多多是他有补贴,谁用京东是因为他送货快售后好,哪个也不是因为 app 体验做到极致。

前端这风气真的跟后端差远了,后端(尤其是 java )是有什么不行大家一起改进、完善,最后 spring 生根发芽,长成一棵参天大树,前端呢,看着啥不爽,一言不合推翻重来,到了 flutter 好了,直接弄个 dark 语言,还有那个恶心人的嵌套语法。

吹 flutter 吹的最狠的一个是闲鱼,这个大家都批判我就不说了,还一个我记得是头条?头条要把什么做成 flutter,要我看头条是最适合做小程序的,看几个新闻还要 app 干嘛。

我感觉 RN 的太多轮子都太像半成品了,质量不行

客户端不能这么黑……你看抖音、快手这种有没有 web 端……

他没有 web 端啊,我不看也无所谓,我用的视频网站都有 web 端

Flutter/Dart 吸取了这个教训,确实花了很大精力来规范社区、治理包生态。但是 Flutter 目前确实还早期,轮子比较少 ,综合来看 RN 的可用的轮子更多些

#7 你没见过不代表人家没有。

你也知道它们没 web 端嘛,所以你这吹 web 吹过了,人家抖音快手火了这么久,不出 web 端肯定是 web 实现不了啊,你这说的 webview 相比系统本身还是稳定很多之类的,就好像 web 无敌,native 都是 KPI 项目一样……

不是吧,抖音快手有 web 端了?举个例子?

赞同,小黄鱼体验是真差

快手 web 有直播端,抖音快手有 web 的大额充值和后台管理,看来还是惦记用户的钱,毕竟不用被苹果扣税
我想说的是,你真正离不开的例子,就是那种逼你二选一的,哪个不是 native 的,
我能想到的,也就是微信、qq 、支付宝、京东、qq 音乐,而更可怕的是,这些 app 的样子我多少年没看到变化了,已经进入稳定期了,我知道支付宝宣传过他们的 java 端多么努力的提升启动速度,但是这个显然跟 flutter 没一分钱关系

#12 🤔去年采集的,现在有些链接已经失效了

http://v.douyin.com/9eNtLC/

http://www.gifshow.com/s/phHBmXCm

分享页和 web 端是两回事吧?

你说的对,你说的也不对🤔

g 家开源项目慎用,从来都是把兼容性当狗屎,tensorflow 和 protobuf 这种火得不能再火的项目都敢作死,更何况一个 flutter 。。。

+1 还有 angularjs 到 angular 。Android 还没被 Google 玩死,也是运气好

flutter 选 dart 真是个败笔,语法比不过 js 生态还小,只看中一个是自家的这么个自私理由,太小气了

#21 语法比不过 js…,dart 好歹勉强也算是个现代语言

react 近期也有大版本 android 里的 js 引擎换了,部分实现也要用 interface 代替 jsbrigde

都说 flutter 性能接近原生,为什么我下载了了个 V2LF ( flutter 版本的 v 站客户端),仍然掉帧严重呢?

要是用 kotlin 可能就效果不一样了

js 不现代?十年前的 js 啥也不是,现在的 js 各方面都是顶级的

典型的码农思维

现在的跨端生态,简单需求随便哪家都行,复杂需求只能 rn,社区轮子够多,轮子作者心情好维护一下,出问题一言难尽,web 就别提了,苹果审核都过不了

#26 es6 之后当然不错啊,各方面顶级??说得 ts 吧…

用 dart+flutter 跨平台的后果就是不停的写基础库,而且遇到 bug 经常 stackoverflow 都找不到,全得自己调试……刚把一个椭圆曲线的 dart 库写完,这开发的我都快哭了

ts 不是 js 生态圈的?另外 ts 只是多了个类型检查,语法是一致的。

前端怎么会有这么多的框架,不能把一个各方面都做强点吗

多看看苹果为了滑动流畅都做了什么优化和改进,原声尚且这么吃力,Web 想要做到原生的流畅度是不可能的,连 Touch 事件都处理不好。

流畅是为了什么,那么多人选择微信小程序,他就放弃了流畅,但是选择了微信的快捷开发和生态

我期望一个框架不是你天天吹牛逼秒天秒地,性能吊锤这个那个,而是你给我提供完善的解决方案

小程序开发体验垃圾,但是本质也是 h5,可以搞定,而且微信提供了一大堆 api,这些 api 基于微信本身,所以也算是稳定,国外一堆框架都是吹牛逼吹的多好,结果国人用的 api 全得自己搞定,或者靠社区维护

Dart 是我见过最尴尬的语言…… 我理解本意是走 Go 的亲民(苟且)路线,但是 Go 讲真有很多还挺先进的设计,Dart 啥也没有。等于在 JS 上小修小补,结果还不兼容。

然后 TS 一出来 Dart 就彻底尴尬到不行。



微信小程序(服务号)能做到真跨平台,解决了版本统一的问题,减少了各种商店审查的时间,还能把国内安卓的推送休眠解决,小公司没有理由用 native 或者 flutter

react-native 新的 js 引擎
手势动效方面 可以 用 worklet + reanimated,虽然现在可以用 reanimated v1 版本的 DSL :)

Flutter 现在轮子也不少,而且 Flutter 是可以调用原生控件的。

限制太多。很多功能小程序做不了

你是认真的么……抖音分享页也能算一个完整项目么……第二个快手也不是短视频,是快手直播啊……

说下我们公司情况,我把基于 flutter 的项目框架搭好,然后我们公司 2 年经验的前端,写过 vue, 小程序就能上手开发 flutter 了,你说简单不简单。dart 这语言只要会 js,上手成本几乎为 0 (前提是 js 玩的好)。

flutter 这种开发没什么技术壁垒的 app 简直就是神器,谁用谁知道。

啥是 dark 语言???

一个是跨平台 UI 框架,一个是语言,这咋比?换成 kotlin,写不好该卡的的还是卡.flutter 说是性能接近原生是从技术实现来说他具有这种打平原生的能力,但不是说用了 flutter 就能拥有这种能力,最终能不能,还是要看代码质量.

“大部分场景到不了性能瓶颈”
你是卡习惯了吧?

额,你再重新看下我的回复……

我同意你所说的 app 的黄金期已经过去了这句话,所以我也没提这块

我所指的是“webview 相比系统本身还是稳定很多”这种的话……

另外我也想说,产品体验没提升那是因为本身产品已经足够优秀了,并且吸引了足够的使用用户……你所说的那些 app 哪个不是国民级应用……

如果处于竞争和扩张这些话,你还说那些话,开发虽然很爽,但是产品和老板怕不是要骂死你……

> flutter 达到了接近原生的性能

这个真的是胡扯。。。。你自己运行下官方最简单的 Listview 列表那个 demo,掉帧严重,你要说我是米 6 手机渣当我没说,当然我说这个不是说 flutter 不好,只是真没达到这个原生性能

我评论一个框架的好坏,不是站在开发者吹牛逼的角度来看

从目前的结果看

作为用户,你没有给我带来更好的体验,尤其是闲鱼你还阉割了我的 web,我吹你 xxx 吹
作为开发者,你带来了新的坑,加班一点也没少,该是双端 debug 还得双端

所以吹的是什么?




还有别的么?有话好好说,摆出一副高傲的姿态就走了?

我那两条回复不是连续的,回复的是不同的人。我说的是换成 kotlin 写代码的体验就会好很多,也更利于更多的安卓开发加入 flutter 生态。至于现在 flutter 为什么掉帧我真的不知道,而且还有那么多人在尬吹。



“大部分场景到不了性能瓶颈”的意思是你连基本需求都没解决好,就来谈优化,就比如闲鱼这种,搜索被严重污染,关键词过滤稀烂,动不动就平白无故封号,然后你跟我说你多流畅,流畅的封号流畅的找不到客服么

我吹什么了……

我再仔细回去把我回复的内容看了下,甚至带好字这个,也只有好像这个词……

我只是单纯的针对对你踩一捧一的行为,以及环球日报的做法……

做为用户角度……你也别天天闲鱼闲鱼的,从哪学的环球日报做法,用特指代表所有,要真所有 web 和 app 端都像你说的那样,用户存留量这个早就打公司决策层的脸了

还有做为开发者角度……前端这个概念才兴起多久?你以为前端像后端 java 那样发展了很长时间了?框架好不好自然要试用过才知道,要一直像你说的你带来了新的坑,加班一点也没少,该是双端 debug 还得双端,自然决策层早晚要弃用,就像之前的 RN 一样,flutter 这才多长时间,甚至大公司也是局部混合使用,到你这已经能定性了……


是的,一点都不接近
不是说分别用旗舰手机跑一个最简单的 demo 都能满帧就叫性能接近了
要说性能的话,RN 是有把性能优化到等同于 native 的空间的

关于 flutter 我只想说闲鱼是所有大厂中最烂的 app, 以前出了 bug 说是实习生写的, 现在几年过去了, 依然出现严重的卡顿现象, 同一个页面多次点击就会加载多次, 返回之后经常出现 item 无法点击, 还有页面空白等一堆问题

前端才几年就开始自己革自己的命,那不说明前端没有未来,从目前来看,flutter 依然没有解决跨平台开发的问题,而且他想连 native 部分都放弃,让开发者对着他的“画布”debug,这就是 unity 那套啊,那按着这个风气发展下去,3 年后还会有新的框架替代 flutter,然后到时候再把 flutter 也踩一脚?

我为什么总说闲鱼,一个技术好坏都是两面性,很明显 flutter 的问题相当多,闲鱼是属于对着新技术一顿吹捧的人,大家爱学习,拥抱新技术,但是都知道这东西好坏在哪里,闲鱼是个非常有代表性的东西,喜欢面向新技术开发,牛逼吹上天,丝毫不把心思放到改善用户体验上,我话就说这了,那点流畅度能带来什么体验,你的基本盘都没做好。而且这种东西影响很坏,大厂背后有各种顶级 native 程序员,他们有推翻 flutter 自己写一个的能力,他们吹的时候从来不说自己填了多少深坑,但是小厂看到跟着学,你学的来么?

单纯使用上来说 上手快效率高
做我们公司内部用的一个的 app 我摸了一个月 做了两个月上线 编译调试都挺方便

先不说别的问题,你确认你了解 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 一样,自己会发展起来的,大厂帮你填坑了,你还要咋滴?

#59 别跟他杠了 我都服了这个人了

说的也是,我还是太年轻……主要是看不惯这种不管啥情况就踩一捧一的,有些话不说不舒服
明明框架这种东西是根据自身情况选择的,到他这,感觉就是学新框架就是政治错误……

确实,这个号在站里很眼熟了,可爱抬杠了。


×学框架是政治错误
√前端风气不正
√某些人对 flutter 吹捧过高

老实说…学这个能花多少时间…
吵架的时间.我都能写几个 demo…

有一说一,需要性能直接上原生,需要轮子效率就用 rn, flutter 目前是挺尬的

说一句啊,flutter 开发是真香,上手难度很低,不管是前端还是移动端,一个星期就能上手,还有说库少的,真是不需要啥库,,,ui 改动很简单,调用手机硬件的库也有很多。

来自一个上手 2 个月的 flutter 开发。

Flutter 挺香 当然缺点是有的 dart 好用 当然嵌套是有些多 都需要完善过程 不着急

这楼里批判 flutter 至少把 project 拿出来看看啊,不然🦐🐔8⃣️说什么呢

Flutter 好不好先不说,但 Dart 确实垃圾

flutter 用了差不多一年多,开发体验上来说还是更喜欢 rn,光是 rn 可以在浏览器控制台打印 log 和查看请求就赢了,而且语法上更喜欢 ts 。

这人不仅无脑推 cordova,还无脑黑苹果,习惯就好

你有脑子么,有看我写的东西么,我无脑推 cordova?微信小程序选 h5 开发也是无脑么?

你说反了,现在是宣传 flutter 的应该先把重量级产品拿出来,在我们眼中,连闲鱼团队(阿里)都折腾成这样,你让小厂如何大胆开整

,才发现老早就拉黑了这人

dart 类型不对就报错的问题真的贼麻烦

求你以后只做 H5 或者 Cordova 吧。
反正我们已经放弃 Cordova 了。

弱类型写傻了吗

你随便啊,小程序那么多人在做,生态这么火热,你不选择象征性的拥抱一下我也管不到

反正我现在除了大厂拳头 APP,能用小程序都用小程序,的却手机上不值得装一大堆没用的 app

我再强调以下,cordova 不是 cordova 这个框架,是一种开发思路,native 的框架,用 web 展示需要动态或者复杂样式的部分,同时这部分还可以拿到其他平台上复用

微信小程序选择了 h5,说明在大家都对着 flutter 和 rn 炒的火热的时候,真正落地而且大规模应用的反倒是你们最看不起的 h5

怎么总有人只认为 cordova 就是 cordova

体验差是产品的锅吧,这和开发和用什么框架关系不是很大.

全新版 react-native 马上要发布了 可以观察一下 如果性能能优化好一点 没理由用 flutter

谁告诉你我们不做小程序呢?

Cordova 就是 Cordova 啊,混合开发是混合开发。Cordova 代表不了混合开发哦。

借楼问个问题:现在的 hybrid 方案感觉都是大而全,最讨厌的事开发工具之类都要用方案提供的。

我希望的是提供一个原生应用的脚手架 Android/iOS,里面涵盖下面功能即可:

1 精简浏览器(防止系统 webview 版本、性能、兼容性等问题)
2 JS-SDK 提供常用功能如定位、文件、相机、传感器等封装
3 原生和 JS 的双向通信机制
4 原生界面跟 Web 界面集成的机制

这样的话复杂的界面基于脚手架开发,简单应用按照以往的 web 开发模式开发(期间用到 2 和 3 的特性),弄好后按照要求( 4 )打到 APP 中,结束。运行时因为有 1,可以保证在不同机型的一致性(相对而言)。

不知道可不可行?有没有类似方案?

现在敢说跨平台的,也就小程序走在前面了

别一口一个闲鱼的,闲鱼做的烂管我 p4 ?别只盯着一个 app 说话,照你这个逻辑,如果一个 java 的 app 写的烂那我可以说 native android 是垃圾吗?他做的烂与 flutter 是好是坏有何干系?我是说你如果没有用 flutter 做过一个像样的 project,就没有什么资格在这个废话这么多。

cordova 真的不是很好的方案,在涉及系统 api 调用的地方,依然缺不了用原生写调用模块,有一些陈年的模块在现在 android 10 这种情况下不一定适用,要是自己亲自下场自己写 module,那还不如直接原生。

首先更要紧的问题是,官方应该先把构建界面这部分给重构,或者提供另一种声明式的写法,不管是 xml 还是 jsx html 都可以,哪怕自己再新造一种描述文档也行

现在不就是 jsx 么?

flutter 哪来的 jsx,不都是描述式 widget 嵌套

我在这楼里只回复过一个 rn,所以我以为你在和我说 rn…

那我可能回错人了 0 0

u1s1,Flutter 借鉴了很多 RN 的,里面太多思想来自 React 。会一个,另外一个上手特别快。

react-native 新架构 facebook 已经喊了两年多了,不知道今年内能不能搞出来,感觉再这样拖下去,估计 react-native 都凉了。

你们写过前端 那直接用 React Native 不是更好嘛 直接就是 js 为啥还要去学 dart ???

关于Flutter与React Native在性能方面的比较,确实存在一些差异,但并不意味着React Native在性能上被Flutter远远甩开。

Flutter通过其高效的渲染引擎Skia和Dart语言的即时编译模式,提供了接近原生应用的性能,特别是在动画和图形密集型应用中表现更佳。这种优势得益于其“无桥接”的架构,减少了中间层的开销。

然而,React Native也通过不断优化和改进,提供了接近原生应用的性能体验。它使用JavaScript编写业务逻辑,并通过Bridge与原生平台通信,虽然这增加了一定的开销,但Facebook的持续投入和社区的广泛支持使得React Native在稳定性和性能上都有了显著提升。

此外,React Native受益于庞大的React社区,拥有丰富的第三方库和组件,便于快速开发。同时,它也支持与原生代码的集成,为开发者提供了更多的灵活性和选择。

因此,在选择Flutter或React Native时,需要根据项目需求、团队技能和生态偏好进行综合考虑。两者都有各自的优势和适用场景,没有绝对的优劣之分。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!