2024 年 rn 和 flutter 怎么选

36 天前
 weiwenhao

我是后端程序员,想独立开发一个 app ,简单的类似记账的 app 。

翻了了一下之前的帖子,站 flutter 的比较多。

但是前几个月 google 裁员了一部分 flutter 的人员,这会影响选择么。

2517 次点击
所在节点    前端开发
45 条回复
Mcx
35 天前
rn 上次启动一直不太顺利,flutter 直接就能以网页方式进行调试开发,但是成品装在手机上只有 60fps
NewTab12138
35 天前
@rocmax 微信,企业微信这种开发了这么多年的 app ,核心功能都是原生开发,怎么可能替换成 flutter ,肯定是周边功能用 flutter 实现啊,动动脑子
theprimone
35 天前
不知道 Taro 怎么样,很久以前用过,不是说支持转 React.Native ,另外鸿蒙也在路上,不过支持如此多端的转换,难度挺大的样子 😂
NewTab12138
35 天前
@rocmax 你再看看小米汽车 app ,算最近两年的新 app 了,你看他里面多少模块用 flutter 实现的
yaodong0126
35 天前
闲鱼拉中拉
rocmax
35 天前
@NewTab12138 不主力用 flutter 是怎么证明大厂都喜欢用 flutter 呢,逻辑是不是有点问题?

对不起,我不是小米汽车用户,这个 app 用户量有 10w 吗?
倒是搜出个帖子 https://global.v2ex.com/t/1029987
我只能说都上 unity 了,还有啥必要用 flutter 呢。。。
gouflv
35 天前
flutter 的 shaocase 就这?
zy0829
35 天前
一直听说 flutter 性能比 RN 好,这个有实践过的哥们谈谈吗。另外我之前一直使用的是 uniapp 像是地图交互,微信登录,手机号一键登录,各种国内支付,等等都有现成的插件,像 RN 跟 flutter 在这方面可以很方便的完成吗
ynxh
35 天前
无脑 flutter ,不管是性能还是开发体验,舒服的一批
taozhiw
35 天前
可以都试着用一下,简单写个 Demo 感受下不同。我觉得个人开发没有必要考虑技术栈会不会弃坑,至少近几年这两个都不会弃坑,就算弃坑了社区也能撑一段时间,万一做大做强了砸钱换原生🤣。我也用 Flutter 比较长时间了,没有大坑,而且开发体验很好,做个记账 APP 问题不大。
n3r0
35 天前
我也写了一个偏向存钱的记账 App ,用 Flutter 写的,三天上线,一周一更新。
体验我觉得还行,可以参考一下😂

https://z.article.cool/
NewTab12138
35 天前
@rocmax 首先你说的是似乎除了 Google 自家以外好像也没太多大厂在用。。。
没有大厂在用吗,国内大厂在用的太多了。
其次大量使用的问题,像微信,企业微信开发 n 年,不可能大量使用 flutter ,但是像美团商家版这些 app ,很多模块基本都是 flutter 开发的,大厂 n 个 app ,每个团队技术栈都不一样,选择也不同。
至于小米汽车使用 unity ,app 想要展示 3d 车机这种效果,肯定得上 unity ,这样体验才是最好的。至于 app 好不好用,天天网上那么多人还说微信难用。
minoic
35 天前
@Mcx 高刷新率应该得用外部库设置一下 https://pub.dev/packages/flutter_displaymode
ala2008
35 天前
简单的,uniapp 也是不错的选择,还可以直接发小程序
leegoo
35 天前
你是做过 java 的,因为 flutter 是用 dart 语言写的,你可以对比一下 dart 语法,你会发现语法很相似。
什么性能、刷新率这些我觉得都是没必要个人开发者需要关心的。
tanranran
35 天前
@zy0829 flutter 都能满足
kindjeff
35 天前
叠个甲,下面都是我作为一个后端开发,对 react 和 react native 不熟悉导致的;但对我来说真的非常不符合直觉,和同样是新手的 flutter 写起来的感觉真的天差地别。

1. 说 react native 获得原生级的动画体验我觉得就有点怪(除非说的是写原生代码):例如透明度变化的时候可以传 `native: true` 但是 height 变化的时候不行只能靠 js core 。连一个动画都要分的这么清楚很难讲开发体验好。

2. 再说状态管理,我之前写 rn 用的是 redux ,很多状态管理的逻辑都要跟着数据库更新的逻辑;当时 expo 文档里是 sqlite 和 sqlite/next 库,我想 next 是下一代,我求快求稳那肯定先用 sqlite 。结果写了半天发现这个 sqlite 明明已经是要 deprecated 了,和很多库都不能联动,文档也对不上。由于新旧同时存在,问 GPT 效果也很差。

3. 再加之为了单线程性能考虑 sqlite 我需要写成异步,而 redux 操作是同步;而 redux 推荐在状态操作的时候只写状态相关的代码以免出错没有更新状态。这意味着我要么把数据库操作分散在各个组件代码里,要么给 redux 的状态更新再包一层实现所有状态操作和数据库操作。

4. 更多例子说明我的困境,比如 useContext 的时候变量是引用类型,是值变化就触发组件刷新还是需要引用变化?两个不同的库里都有同名组件,看起来功能也一样我应该用哪个?这种问题对熟悉 react 的人来说或许不是什么问题,但对新手来说一天遇到十几次但找不到「最佳实践」真的是一种灾难。
kindjeff
35 天前
@XCFOX flutter 有的呀,GetX 就是颗粒度可以做到很细的,一个值更新以后对应用到这个值的 Obx 组件就更新了,不会像 react 一样刷新整个函数。
rocmax
35 天前
@NewTab12138 “抛开原因不谈,你就说大厂用没用吧?”是这个意思吗?

小米汽车 app 为了展示 3D 效果就直接干进去 50M 的 unity 包,你跟我说这样体验才是最好的? flutter 有 skia/Impeller 展示不了个 3D 效果,还是 unity 画不了个 UI 界面?这个做法分明就是为了用现成的 API 导入了根本不必要的库。上面 @XCFOX 说得好,flutter 因为有渲染层,所以长处就在复杂动画和游戏。但是真到了游戏领域那肯定还是要用 Unity 。

跨平台开发无非两个目的:1.共享开发团队 2.共享代码和组件。小厂资源有限采用跨平台方案多是因为第一点,大厂基本上是看中第二点。比如微软以及亚马逊的一众 app 是 web android ios 各平台都有的(甚至 desktop ,不过 Electron 有点拉),用 RN 可以共享很多代码。至于 flutter web 嘛。。。

微信导入 flutter 的原因网上有说可能是为了小程序。我认为既然已经有团队在维护各平台的 native app ,一般情况没有在其中塞 flutter 的必要性,框架运行也要吃资源的啊,把 app 搞成缝合怪除了刷 kpi 我想不出其他的理由。微信是难用,但是这个锅不该 flutter 背。美团我看了看好像 RN 和 flutter 都在用,可能是像你说的各团队自己决定。至于闲鱼呢只能说给他机会他不中用啊。
NewTab12138
35 天前
@rocmax 我已经向你证明了,多个大厂都不同程度的使用了 flutter ,你怎么还这么犟,还有 flutter 到底能不能展现 3d 效果,你先去学一下 flutter 吧,我用 flutter 5 年了,国内外从没见过谁能做出媲美 unity 的 3d 效果,不要说媲美了,连十分之一的效果都达不到,flutter 社区都是用 unity 的三方库来实现 3d 效果

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

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

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

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

© 2021 V2EX