我是后端程序员,想独立开发一个 app ,简单的类似记账的 app 。
翻了了一下之前的帖子,站 flutter 的比较多。
但是前几个月 google 裁员了一部分 flutter 的人员,这会影响选择么。
1
zchengb 92 天前
作为 Javaer ,两个框架都体验了一下,感觉还是 RN 比较适合我,但是每次调试、启动真的都很漫长,Flutter 的套娃式写法个人感觉上手有一定门槛,但是调试和启动是真滴快,有点类似于现阶段的油车和电车的区别
另外我个人还感觉 RN 开发出来的 APP 略微有点掉帧 不知道其他人有没有同感 还是我的错觉? |
2
zhcode 92 天前
|
3
WildCat 92 天前
都不选,选 web
|
4
kindjeff 92 天前
后端? flutter 秒了,便利、直觉、自带电池、最佳实践多。
rn 生态混乱,expo 和裸 rn 库乱成一锅粥; react 不符合(我的)直觉的地方超多;最佳实践少,网上教程基本上能把东西糊出来就完事。 |
5
XCFOX 92 天前 15
React Native 和 Flutter 的思路很不一样。
React Native 秉承 React + web 的理念,使用 React + JavaScript 运行时借助各平台原生组件呈现视图。 React Native 的优势是:可以轻松使用系统原生视图、获得原生级的用户体验和动画流畅度,使用 js ,能够轻松热更新; React Native 的缺点是:在各个平台呈现的视图不一致; Flutter 使用自己的绘图引擎,在各个平台上自绘视图,运行机制更接近游戏引擎。 Flutter 的优势是能够自制复杂的视图控,;在所有平台上获得一致的视图; Flutter 的缺点是:Flutter 的绘图引擎( Skia 、Impeller )比不过原生的动画流畅性和交互体验,这方面有太多的 issues 了:动画反馈会延迟 1~3 帧,无法使用 Android 12 的滚动回弹动画,滑动和翻页时有明显的掉帧,严重的着色器编译时卡顿( https://docs.flutter.dev/perf/shader ) ;难以在 Flutter 视图内嵌入原生组件 另外近些年前端的开发理念一直比较领先,React 虽然稍微落后 vue3 、solidjs 、qwik ,但比起 Flutter 还是领先一个大版本的。Flutter 使用嵌套地狱写视图,React 有 jsx ; React 状态管理的 zustand 、jotai 、valti 一个比一个简单易用,Flutter 连 hook 都没有。 对于不需要复杂的绘图操作的 APP ,也就是普通 新闻、聊天 APP 的话,应该首选 RN + expo ;如果你要开发具有复杂视图的 APP ,比如游戏、谷歌地球、高德地图、Wonderous ,应该首选 Flutter 。 具体到楼主的 记账 APP ,肯定首先 React Native 。 建议体验一下 V2EX 的 Flutter 客户端和 React Native 客户端,Flutter 版本滑动、翻页的时候存在明显卡顿,RN 的体验明显好得多。 https://github.com/guozhigq/flutter_v2ex https://github.com/liaoliao666/v2ex |
7
GooMS 92 天前 via Android
Rn 那几个老问题一直都在挂着
|
8
rocmax 92 天前
who is using react native:
https://reactnative.dev/showcase Flutter apps in production https://flutter.dev/showcase |
9
rocmax 92 天前 1
接上条,这几年 flutter 人气挺高的,但我去看看 APP 列表,似乎除了 Google 自家以外好像也没太多大厂在用。。。
据 youtube 上的调查说欧美是 RN 为主,印度市场 Flutter 为主,国内似乎也是 flutter 多点? RN 经过几年重构,性能瓶颈已经解决,expo 开发体验也非常好,可以试试。开发完 RN 还可以无缝转 react/next 做前端。 Flutter 就得学 dart ,然而除了 flutter 其他地方也没见用 dart 的。我个人意见当初 Flutter 采用 ts 的话现在 RN 坟头草 2 尺高了。 |
10
0001110001011 92 天前
flutter 卡的跟个逼一样,多少年了。还没优化好。 瞎折腾,列表卡的想摔手机,优化不动,
|
11
enchilada2020 92 天前 via Android
@XCFOX React 开发理念落后其他同类库怎么讲?
|
12
fox0001 92 天前 via Android
flutter ,阿里有成功案例
|
13
june4 92 天前
进 RN 退 web ,flutter 还有换语言这个巨坑
|
14
june4 92 天前 1
@enchilada2020 现在除 react 之外的框架都玩响应式 signal 机制了,我自己也从 react 转 solidjs ,不转 vue 因为我更喜欢 jsx ,且 solidjs api 和 react 接近。react 的视图函数重复运行这个底层机制我想不是 web 前端未来发展方向。
|
17
daysv 92 天前
无脑 rn 吧,flutter 就没看到什么成功案例
|
18
paranoiagu 92 天前 via Android
不考虑兼容纯血鸿蒙吗?
|
19
NewTab12138 92 天前
@rocmax 国内大厂都在用啊,微信,企业微信,字节,美团都不算大厂? 只是他们没有大量使用而已
|
20
rocmax 92 天前 via Android 1
@NewTab12138 没大量使用说个 p 啊,主力用 native ,边边角角用点 flutter 搞 kpi 呗。
|
21
Mcx 92 天前
rn 上次启动一直不太顺利,flutter 直接就能以网页方式进行调试开发,但是成品装在手机上只有 60fps
|
22
NewTab12138 92 天前
@rocmax 微信,企业微信这种开发了这么多年的 app ,核心功能都是原生开发,怎么可能替换成 flutter ,肯定是周边功能用 flutter 实现啊,动动脑子
|
23
theprimone 92 天前
不知道 Taro 怎么样,很久以前用过,不是说支持转 React.Native ,另外鸿蒙也在路上,不过支持如此多端的转换,难度挺大的样子 😂
|
24
NewTab12138 92 天前
@rocmax 你再看看小米汽车 app ,算最近两年的新 app 了,你看他里面多少模块用 flutter 实现的
|
25
yaodong0126 92 天前
闲鱼拉中拉
|
26
rocmax 92 天前
@NewTab12138 不主力用 flutter 是怎么证明大厂都喜欢用 flutter 呢,逻辑是不是有点问题?
对不起,我不是小米汽车用户,这个 app 用户量有 10w 吗? 倒是搜出个帖子 https://global.v2ex.com/t/1029987 我只能说都上 unity 了,还有啥必要用 flutter 呢。。。 |
27
gouflv 92 天前 via iPhone
flutter 的 shaocase 就这?
|
28
zy0829 92 天前
一直听说 flutter 性能比 RN 好,这个有实践过的哥们谈谈吗。另外我之前一直使用的是 uniapp 像是地图交互,微信登录,手机号一键登录,各种国内支付,等等都有现成的插件,像 RN 跟 flutter 在这方面可以很方便的完成吗
|
29
ynxh 92 天前
无脑 flutter ,不管是性能还是开发体验,舒服的一批
|
30
taozhiw 92 天前
可以都试着用一下,简单写个 Demo 感受下不同。我觉得个人开发没有必要考虑技术栈会不会弃坑,至少近几年这两个都不会弃坑,就算弃坑了社区也能撑一段时间,万一做大做强了砸钱换原生🤣。我也用 Flutter 比较长时间了,没有大坑,而且开发体验很好,做个记账 APP 问题不大。
|
31
n3r0 92 天前
我也写了一个偏向存钱的记账 App ,用 Flutter 写的,三天上线,一周一更新。
体验我觉得还行,可以参考一下😂 https://z.article.cool/ |
32
NewTab12138 92 天前
@rocmax 首先你说的是似乎除了 Google 自家以外好像也没太多大厂在用。。。
没有大厂在用吗,国内大厂在用的太多了。 其次大量使用的问题,像微信,企业微信开发 n 年,不可能大量使用 flutter ,但是像美团商家版这些 app ,很多模块基本都是 flutter 开发的,大厂 n 个 app ,每个团队技术栈都不一样,选择也不同。 至于小米汽车使用 unity ,app 想要展示 3d 车机这种效果,肯定得上 unity ,这样体验才是最好的。至于 app 好不好用,天天网上那么多人还说微信难用。 |
33
minoic 92 天前
@Mcx 高刷新率应该得用外部库设置一下 https://pub.dev/packages/flutter_displaymode
|
34
ala2008 92 天前
简单的,uniapp 也是不错的选择,还可以直接发小程序
|
35
leegoo 91 天前
你是做过 java 的,因为 flutter 是用 dart 语言写的,你可以对比一下 dart 语法,你会发现语法很相似。
什么性能、刷新率这些我觉得都是没必要个人开发者需要关心的。 |
37
kindjeff 91 天前
叠个甲,下面都是我作为一个后端开发,对 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 的人来说或许不是什么问题,但对新手来说一天遇到十几次但找不到「最佳实践」真的是一种灾难。 |
38
kindjeff 91 天前
@XCFOX flutter 有的呀,GetX 就是颗粒度可以做到很细的,一个值更新以后对应用到这个值的 Obx 组件就更新了,不会像 react 一样刷新整个函数。
|
39
rocmax 91 天前
@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 都在用,可能是像你说的各团队自己决定。至于闲鱼呢只能说给他机会他不中用啊。 |
40
NewTab12138 91 天前
@rocmax 我已经向你证明了,多个大厂都不同程度的使用了 flutter ,你怎么还这么犟,还有 flutter 到底能不能展现 3d 效果,你先去学一下 flutter 吧,我用 flutter 5 年了,国内外从没见过谁能做出媲美 unity 的 3d 效果,不要说媲美了,连十分之一的效果都达不到,flutter 社区都是用 unity 的三方库来实现 3d 效果
|
41
rocmax 91 天前 via Android
@NewTab12138 有没有一种可能 3d 要求高的 app 可以直接用 unity 开发呢?这种情况下用 flutter 的必要性在哪里?一个 app 里塞两个渲染引擎,一个负责 3d 一个负责 ui 不觉得搞笑吗?
|
42
fox0001 91 天前
@NewTab12138 #19 算了吧,有些事情、有些人,就没必要较真了。技术只适合应用在适合的地方,不适合争个一二或者吵架。flutter 有那么大厂在用,已经证明了其地位。至于项目用不用,或者用啥,每个项目都有不同的情况。
|
43
rocmax 91 天前
@fox0001 要局限在 op 的开发场景 Flutter 和 RN 都是 1000%足够用的。这不就是讨论哪里是 flutter 最合适的地方嘛,有理可以说理,没必要抱团取暖吧。
话说阿里的成功案例是啥呢?或者不局限在阿里,能不能给几个 flutter 开发的 app 的成功案例来参考一下?上面出现的微信,小米汽车,闲鱼实在是没啥说服力。 |
44
jiuzhougege 91 天前
rn 实在是受不了,模拟器和真机表现不一样的问题,有一些细节上的差异,甚至会影响功能,有些功能模拟器好好的,真机死活不能用或者卡死;(用的 expo )
flutter 就没有这个包袱了,我得感觉是 flutter app 运行更流畅,相比 RN |
45
jiuzhougege 91 天前
@n3r0 大佬开源不?
|
46
a2956853935 3 天前
考虑学之前,先去 BOSS 上搜搜 RN 或者 Flutter 的招聘需求吧
|