2023 年了,应该学 flutter 还是原生 Swift kotlin(本人前端)

2023-07-07 14:28:36 +08:00
 guguji5

背景:我们公司是做运维监控,需要接受报警(需要推送消息),目前公司只有前端团队。没有安卓和 ios 开发团队

作为一个 React 前端团队,在 2023 年中这个节点

  1. 是学 flutter ,一下可以打包出来 andriod ios 两端呢?
  2. 还是学习 Swift ,直接上原生呢?(我在 twitter 上看到从习惯了 react 写 swift 挺自然的)当日安卓还得学另一套

我个人粗浅的理解,flutter 用 dart 写的,会不会上手难度比 swift 难度更大一些呢,会有些不同环境需要兼容的地方。有没有熟悉移动端开发的老铁指点一二。

10643 次点击
所在节点    程序员
83 条回复
silvernoo
2023-07-08 08:49:19 +08:00
flutter 足够,你不会有多少机会接触原生代码的,原生任何一端都是庞大体系,学完就废
xiaoshan5733
2023-07-08 10:45:11 +08:00
https://github.com/wengqianshan/WuKongIMReactNative 这是一个用 react native + expo 开发的聊天 app ,op 可以本地运行一下试试,不需要安装原生环境,只要手机上安装 expo go 扫码即可预览调试
sunbreak
2023-07-08 10:46:57 +08:00
@guguji5 没有银弹,看团队、看项目、看框架发展潜力

1. 有 React 、JS/TS 团队,首选 ReactNative (其实还有 Ionic ,不过国内太小众)
2. 有客户端开发经验,首选 Flutter
3. SwiftUI 和 Kotlin/MMP (或者 Compose )目前都不成熟,长期发展不明,除非资深客户端开发,否则强烈不推荐

你目前的情况 RN 最好,如果你喜欢学习新的知识,选 Flutter 也行(长远看跨平台更容易):
1. 你这个项目简单,两个框架包体积、性能差距不大( Fabric 之后 RN 可以媲美 Flutter )
2. 多少都会需要一些客户端的知识(打包、bridge 代码、plugin 组件),GPT 搞定就行(我们日常 Shell 脚本也不会特地去学习)

利益相关:原 MIUI 开发,现跨端技术专家,Flutter 和 RN committer
raykle
2023-07-08 11:22:45 +08:00
@guguji5 #59 打包 100M 是不是没有打 release 包导致的啊,我们的应用业务挺多的,也没超过 100 。。
我觉得楼上 #63 的推荐很合理,可以试试。
其实如果只是为了推送,接入微信也是可以的,或者 PWA 应该是最简单的了吧,看楼主需要什么了。
andyxic
2023-07-08 14:15:34 +08:00
本人也是 react 前端,刚做完一个 flutter 项目,现在正在用 swiftui 撸 ios 端。从我个人经验来看。flutter 我刷了一遍文档加几个 demo 就上手了,不会就 chatgpt ,完全无压力。如果你只有 js 的语言经验的话, swiftUi 建议后上。
guguji5
2023-07-08 17:27:32 +08:00
expo 的定价好 tm 复杂啊,刚开始我还是得做个 demo 出来,然后才能跟公司讲,并且继续推动。expo 这得先让我自己垫不少钱啊。我决定先搞 flutter 了 🆒
@changwei
guguji5
2023-07-08 17:31:44 +08:00
@sunbreak 感谢来自专家的建议,今天我弄了下 flutter ,内嵌 h5 打包 apk 已经成功了,只有 6M 。但是我没弄签名,后边研究一下 1 、推送 2 、签名 3 、ios 打包。RN 就不看了,想探索点不一样的,拓展一下技术面
guguji5
2023-07-08 17:33:47 +08:00
@andyxic 一天! flutter 内嵌 h5 打包好了没签名的 apk 。根据 63 楼大佬的建议,我就不碰原生了先。
debuggeeker
2023-07-09 13:53:46 +08:00
推送,直接原生!
changwei
2023-07-09 17:40:07 +08:00
@guguji5 expo 开发我从头到尾没花过一分钱啊,你是什么地方需要花钱呢?
GreatAuk
2023-07-09 22:54:47 +08:00
@guguji5 #27 第一次听人说 React Native low 的,哈哈
abc12334
2023-07-10 08:55:30 +08:00
本人前端,我从今年年初开始写 flutter ,首先说 dart ,可以负责任的说 js 玩的不差的选手,熟练使用 dart 也就 1-3 天(那些高级的语言特性另说,直说简单使用),flutter 的使用 简直是和 react 一毛一样,如果项目不涉及和 native 平台交互,比如:蓝牙 ,相机,视频剪辑啥的,,真是可以无脑使用
guguji5
2023-07-10 10:27:24 +08:00
@abc12334 推送呢?可以无脑吗
guguji5
2023-07-10 10:31:18 +08:00
@changwei 是吗? 我只是粗略的浏览了 https://expo.dev/pricing 。没仔细研究。学到了,感谢
guguji5
2023-07-10 10:37:37 +08:00
@debuggeeker 我不知道我的认知对不对哈。要推送消息,必须先上架不同厂商的应用市场(华为、小米等等),然后通过他们才可以推送
aahao
2023-07-10 11:43:00 +08:00
看起来你对移动开发很感兴趣,那推荐你学 Flutter ,学的过程自然会接触很多原生的东西。
我是原生开发+Flutter ,不了解 RN ,但如果我是你我会选 RN 。首先你 RN 就是前端的人搞的,让写前端的可以写移动端,其次 Flutter 虽然是现在最强势的跨平台框架但是还不能完全替代 RN ,热更新依然是很多团队选择 RN 的原因。
guguji5
2023-07-10 15:20:53 +08:00
1. 我这里边内嵌的 h5 ,热更新似乎对我没啥价值。
2. 然后这是一个完全由我兴趣发起的水下项目,从公司层面还没时间卡点,所以我想选一个新鲜一点的东西接触一下
3. 我是这样想的,无论我用 flutter 还是 RN ,改的文件都会涉及到原生的(哪怕只是个 gradle ),既然这样我为何不去直接看原生的呢,本来我想直接去看 kotlin 呢,被本贴的热心群众劝住了
4. 最后,感谢你的回复,flutter 已经打包成功了,接下来我该研究下签名、上架、push 了 @aahao
abc12334
2023-07-15 08:35:37 +08:00
@guguji5 因为我们现在是海外项目推送用的 firebase ,因为有之前代码为基础我也没怎么研究,发现原来的拷过来就能用,国内的极光什么的平台肯定也有类似的功能
guguji5
2023-07-15 10:22:35 +08:00
@abc12334 对,我就在研究极光推送,但是好像还得上架才能使用推送功能,所以我又研究起了上架。
zybzzc
2024-02-19 15:40:41 +08:00
@sunbreak
如果要同时支持 native/web/小程序,应该怎么选技术方案呢?
应用类型就是普通的海外旅游电商应用,但是会有地图/导航/相机这些需求。
(不一定是同一个 app 同时要求 3 个端,大多数时候都是 1 到 2 个端,但是只想投入一种技术路线)

我目前了解到的有:
1. uniapp 一把梭。优点是开发速度快,生态相对要丰富,缺点就是开发体验不好,uniapp 黑盒以及貌似 uniapp 在站内的风评也不好(这算吗?都说坑多,但是却少有人说具体的坑)。至于性能,我认为对我们的应用而言应该问题不大。
2. Taro + React Native 。优点是开发体验不错,而且透明。缺点是说坑的人也不少,以及开发速度比 uniapp 慢(我猜的)
3. Flutter + MPFlutter2.0 。优点是开发体验完全一致,应用表现也一致,bug 更少(我猜的)。缺点是上手难度高,团队也不好扩充,另外就是这个 MPFlutter2.0 虽说能商用,但是我还得对它的质量保持怀疑。

这是我简单了解过后得出的结论,不一定准确,可能也还有其它的我未知的方案,希望大佬指点一下。

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

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

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

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

© 2021 V2EX