背景:我们公司是做运维监控,需要接受报警(需要推送消息),目前公司只有前端团队。没有安卓和 ios 开发团队
作为一个 React 前端团队,在 2023 年中这个节点
我个人粗浅的理解,flutter 用 dart 写的,会不会上手难度比 swift 难度更大一些呢,会有些不同环境需要兼容的地方。有没有熟悉移动端开发的老铁指点一二。
1
findex 2023-07-07 14:33:11 +08:00
建议都学,就知道区别了
|
3
AuYuHui 2023-07-07 14:41:46 +08:00
flutter
|
4
KC35 2023-07-07 14:42:39 +08:00
flutter 就行
|
5
daijiePro 2023-07-07 14:42:53 +08:00
如果你学 flutter 的话,其实都要学
|
6
estk 2023-07-07 14:47:39 +08:00
怎么不考虑 Rteac Native ?
|
7
ryan4290 2023-07-07 14:48:13 +08:00
火速转后端,别问,已死
|
8
divilbs 2023-07-07 14:50:33 +08:00
对啊 Rteac 团队为什么不直接 Rteac Native ?
|
9
guguji5 OP @ryan4290 是工作需要啊,我想学!后端刚开始学也就是写 API ,配合 redis kafka 进行数据库 curd ,没啥意思
|
10
guguji5 OP @daijiePro 我也看到相似的论点( https://www.zhihu.com/question/365367503 ),就是学 flutter 原生的东西是绕不开的,如果我一点都不会,碰到就会一脸懵逼,所以是不是先学 swift 和 kotlin 更合适( native )一点呢?
|
11
dj721xHiAvbL11n0 2023-07-07 14:57:00 +08:00
运维监控,移动端顶多就是一些报警通知和一些基本的查看,主要还是靠网页。这个时候,有一个 App 能用就行,我觉得确实像大家说的,干嘛不 React Native
|
12
bryce 2023-07-07 15:09:34 +08:00
看你们业务场景,选 flutter
|
13
murmur 2023-07-07 15:11:22 +08:00
react native 因为处处 native 可以做到 rn 和 native 混写,直接把 native 界面当组件用,这个对于 sdk 开发者很友好
|
14
ciki 2023-07-07 15:20:20 +08:00
flutter 也离不开对原生框架的理解,迟早都要接触
|
15
x77 2023-07-07 15:20:22 +08:00
Flutter ,对于前端来说 Dart 上手不难。
Flutter 打包平台应用时需要调用平台应用的构建程序,对于 Android 、iOS 端,你还需要搭建 Android 、iOS 的开发环境才能打包出它们的应用。 |
16
i979491586 2023-07-07 15:24:01 +08:00
都有 react 前端团队了,为什么不考虑 RN 呢?
|
17
fresco 2023-07-07 15:36:48 +08:00
学原生开发,还是一下学两端,任重而道远
|
18
ytll21 2023-07-07 15:48:19 +08:00
看 APP 的复杂度,除非对性能要求高,或者有什么奇葩需求,或者高难度的 UI 要求,否则 Flutter 够了。
|
19
a132811 2023-07-07 15:50:26 +08:00
可考虑 PWA ,更简单,不用换技术栈。只是国内网络下,需要用代理或第三方推送
https://juejin.cn/post/6844903856007020557#heading-29 |
21
omgr 2023-07-07 16:02:31 +08:00
直接 webview 不就行了…… 手机上小程序之类的做了吧,为啥辛苦去做 native 的 App…… 如果是个人兴趣,推荐 swift ,如果是公司需求,还让你一人两端都上 native ,建议跳槽
|
22
dcsuibian 2023-07-07 16:05:21 +08:00
可以肯定的是,目前就算大公司也撑不起多套代码的成本了,native 可以选,做起来优先否定了吧
|
24
hahastudio 2023-07-07 16:07:35 +08:00
需求:接受报警
发短信或者邮件不行么,或者接微信钉钉之类的? |
25
wa143825 2023-07-07 16:09:26 +08:00
都学,先 flutter ,学会布局和基本功能开发,然后学插件开发,开发插件的时候顺便学学 kotlin 和 Swift ,语言没什么难的,主要就是不同的平台不同的 api 。
|
26
guguji5 OP |
29
guguji5 OP @dcsuibian 我们的内容相对很简单,或者直接嵌入个 webview 就行,有现成的 h5 ,但是希望有个壳,并且希望有推送功能。
|
30
milukun 2023-07-07 16:38:04 +08:00
就开发体验来说,flutter 是更爽一点的。热更新直接在手机、模拟器上预览,不需要等待构建。虽然 swiftUI 也有预览,但是那个是模拟出来的,不是实际运行,而且局限很大。
而且 flutter 和 swiftUI 在界面开发方面,其实没有哪个更难哪个更简单,这种声明式 UI 其实都差不多。 个人建议 flutter 开始,我看前面有人说学 flutter 就要学 swift ,其实并不准确。 例如你要做一个 todo 、记账等,完全纯 flutter 开发上架安卓和 ios 了,除非你要额外添加小组件,这个在 ios 和安卓端都是需要单独原生开发的。 我觉得你还是先评估一下你要做什么,然后再选框架。 |
31
guguji5 OP @milukun 就是
1. 嵌入 webview 2.推送 3. 如果有了新版本希望能自动更新 4.然后希望能上架。(上不了,就先放安卓,让用户自己下载) 您帮看看,先学 kotlin ,还是 flutter |
32
saviourdog 2023-07-07 17:18:46 +08:00
flutter!95%场景下都不会到写原生代码地步,除了原生的一些配置文件要改下
|
33
lululau 2023-07-07 17:20:59 +08:00
跨平台框架只是用来提升效率的,任何一个款平台框架都不能 100% 覆盖原生功能,所以都要学
|
34
superchijinpeng 2023-07-07 17:22:12 +08:00
都学
|
35
coolmint 2023-07-07 17:28:33 +08:00
有兴趣就都学,如果只是想快点开始解决一下手头的问题就 flutter
|
36
suyulingxm 2023-07-07 17:30:04 +08:00
flutter
|
37
chiaf 2023-07-07 17:34:23 +08:00
|
38
arnosolo 2023-07-07 17:34:32 +08:00
Ionic 人表示做应用开发想要达到高级原生开发是一定要学的.
|
39
okakuyang 2023-07-07 17:35:39 +08:00 via iPhone
根本不需要学任何一门,推送独立 ,app 点进去是 webview ,现实网页。原生代码不超过 200 行。
|
42
putaozhenhaochi 2023-07-07 18:47:44 +08:00 via iPhone
做小程序
|
43
dode 2023-07-07 18:55:34 +08:00
微信的消息推送多好呀,客户不用安装 app
|
44
iOCZ 2023-07-07 19:55:45 +08:00
当然是做网页
|
45
anjingdexiaocai 2023-07-07 20:43:55 +08:00 via Android
不要做原生,你的需求 webview 完全够了,没必要折腾。
|
46
dwzrlp 2023-07-07 21:11:11 +08:00
功能简单,需求简单,直接 flutter 就好了,省时间省钱
|
47
zhcode 2023-07-07 21:13:20 +08:00
前端上手 flutter 比较快,dart 跟 js 语法有很多相像的地方
|
48
99s 2023-07-07 22:00:12 +08:00
flutter 曾经花了一个月时间学习,后来还是实在受不了层层嵌套的写法放弃了。如果要选的话还是选 RN 舒服。
|
49
meteor957 2023-07-07 22:02:59 +08:00
dart 不如 js ,flutter 不如 rn
|
50
owen800q 2023-07-07 22:06:12 +08:00
@anjingdexiaocai IOS app 純 webview 沒有任何一個原生介面可以上架 app store?
|
52
xiaoshan5733 2023-07-07 23:57:00 +08:00
op 不想考虑 react native 是不是因为 op 印象中的 react native 很不好,建议 op 了解下 expo ,结合 APP 功能和 op 目前的技术栈我还是极力推荐 react native
|
53
gyt95 2023-07-07 23:59:59 +08:00
非要选还是原生好,最后你的出路会是原生壳套 webview
|
55
bunny189 2023-07-08 00:08:12 +08:00
flutter 就行,嵌套就拆分。
|
56
Bijiabo 2023-07-08 00:26:29 +08:00 via iPhone
远离 Flutter
|
57
AvilCore 2023-07-08 01:28:22 +08:00 via Android
React 团队不用 react native 是为啥,除了 UI 库这俩一模一样根本分不出来,一点点学习都不用
既然很简单就拿 react-native-webview 一套,这不就是半天的事儿 |
58
changwei 2023-07-08 03:36:23 +08:00 1
如果是 react 前端团队并且没有任何原生 app 开发经验建议直接使用 react native + expo 这套方案,几乎不需要任何原生开发经验就能开发跨平台完整 app ,expo 的编译流程也是在其官方的 CI 平台上进行,构建产物传送到应用商店也是 expo 全自动进行,只是送审需要你自己填写版本号和更新记录等等,意味着你本地甚至不需要配置任何 Android SDK 或者 iOS xcode 开发环境,也不需要阅读太多原生 APP 开发文档,非常方便友好。
下面这个 APP 就是我用 react-native 0.71 + expo 48 开发的,里面有原生 View 实现主要界面,也有套 react-native-webview ,也有用 react-native-render-html 直接把 html 渲染到 View 中,也有 expo-linking 直接在内置 chrome 浏览器打开网页等等各种渲染方式,目前除了 react-native-render-html 这套方案可能需要对一些特殊 html 标签进行一些微调和转换以外都没发现太大问题,性能问题暂时没发现(可能是因为我用的都是小米旗舰),最近几个版本的 rn 官方也有更新 JS 引擎以及把 react 升级到 18.2 版本,理论上性能也有一定提升,你可以直接打开下面的链接下载亲自试用一下就知道。 https://play.google.com/store/apps/details?id=tw.edu.ntust.library.app https://apps.apple.com/app/id6444852934 |
59
guguji5 OP @changwei 哇,感谢分享,我之前写过 RN ,几年前了吧,也没涉及到原生的知识就完成了,想学点不一样的。而且当时我就搞了几个页面,加调用摄像头,打包就 100M 了,不想用了,想看看 flutter 和原生的,听说也不太复杂
|
60
guguji5 OP @xiaoshan5733 楼下也有一个详细的评论推荐 expo ,我先简单吧 flutter 浏览一遍,就像第一楼说的,都学一下!才知道哪个更合适。其实现在就我目前的需求,无脑选一个都能搞定。
|
61
silvernoo 2023-07-08 08:49:19 +08:00 2
flutter 足够,你不会有多少机会接触原生代码的,原生任何一端都是庞大体系,学完就废
|
62
xiaoshan5733 2023-07-08 10:45:11 +08:00
https://github.com/wengqianshan/WuKongIMReactNative 这是一个用 react native + expo 开发的聊天 app ,op 可以本地运行一下试试,不需要安装原生环境,只要手机上安装 expo go 扫码即可预览调试
|
63
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 |
64
raykle 2023-07-08 11:22:45 +08:00
@guguji5 #59 打包 100M 是不是没有打 release 包导致的啊,我们的应用业务挺多的,也没超过 100 。。
我觉得楼上 #63 的推荐很合理,可以试试。 其实如果只是为了推送,接入微信也是可以的,或者 PWA 应该是最简单的了吧,看楼主需要什么了。 |
65
andyxic 2023-07-08 14:15:34 +08:00
本人也是 react 前端,刚做完一个 flutter 项目,现在正在用 swiftui 撸 ios 端。从我个人经验来看。flutter 我刷了一遍文档加几个 demo 就上手了,不会就 chatgpt ,完全无压力。如果你只有 js 的语言经验的话, swiftUi 建议后上。
|
66
guguji5 OP expo 的定价好 tm 复杂啊,刚开始我还是得做个 demo 出来,然后才能跟公司讲,并且继续推动。expo 这得先让我自己垫不少钱啊。我决定先搞 flutter 了 🆒
@changwei |
67
guguji5 OP @sunbreak 感谢来自专家的建议,今天我弄了下 flutter ,内嵌 h5 打包 apk 已经成功了,只有 6M 。但是我没弄签名,后边研究一下 1 、推送 2 、签名 3 、ios 打包。RN 就不看了,想探索点不一样的,拓展一下技术面
|
68
guguji5 OP @andyxic 一天! flutter 内嵌 h5 打包好了没签名的 apk 。根据 63 楼大佬的建议,我就不碰原生了先。
|
69
debuggeeker 2023-07-09 13:53:46 +08:00
推送,直接原生!
|
72
abc12334 2023-07-10 08:55:30 +08:00
本人前端,我从今年年初开始写 flutter ,首先说 dart ,可以负责任的说 js 玩的不差的选手,熟练使用 dart 也就 1-3 天(那些高级的语言特性另说,直说简单使用),flutter 的使用 简直是和 react 一毛一样,如果项目不涉及和 native 平台交互,比如:蓝牙 ,相机,视频剪辑啥的,,真是可以无脑使用
|
74
guguji5 OP @changwei 是吗? 我只是粗略的浏览了 https://expo.dev/pricing 。没仔细研究。学到了,感谢
|
75
guguji5 OP @debuggeeker 我不知道我的认知对不对哈。要推送消息,必须先上架不同厂商的应用市场(华为、小米等等),然后通过他们才可以推送
|
76
aahao 2023-07-10 11:43:00 +08:00
看起来你对移动开发很感兴趣,那推荐你学 Flutter ,学的过程自然会接触很多原生的东西。
我是原生开发+Flutter ,不了解 RN ,但如果我是你我会选 RN 。首先你 RN 就是前端的人搞的,让写前端的可以写移动端,其次 Flutter 虽然是现在最强势的跨平台框架但是还不能完全替代 RN ,热更新依然是很多团队选择 RN 的原因。 |
77
guguji5 OP 1. 我这里边内嵌的 h5 ,热更新似乎对我没啥价值。
2. 然后这是一个完全由我兴趣发起的水下项目,从公司层面还没时间卡点,所以我想选一个新鲜一点的东西接触一下 3. 我是这样想的,无论我用 flutter 还是 RN ,改的文件都会涉及到原生的(哪怕只是个 gradle ),既然这样我为何不去直接看原生的呢,本来我想直接去看 kotlin 呢,被本贴的热心群众劝住了 4. 最后,感谢你的回复,flutter 已经打包成功了,接下来我该研究下签名、上架、push 了 @aahao |
78
abc12334 2023-07-15 08:35:37 +08:00
@guguji5 因为我们现在是海外项目推送用的 firebase ,因为有之前代码为基础我也没怎么研究,发现原来的拷过来就能用,国内的极光什么的平台肯定也有类似的功能
|
80
zybzzc 269 天前
@sunbreak
如果要同时支持 native/web/小程序,应该怎么选技术方案呢? 应用类型就是普通的海外旅游电商应用,但是会有地图/导航/相机这些需求。 (不一定是同一个 app 同时要求 3 个端,大多数时候都是 1 到 2 个端,但是只想投入一种技术路线) 我目前了解到的有: 1. uniapp 一把梭。优点是开发速度快,生态相对要丰富,缺点就是开发体验不好,uniapp 黑盒以及貌似 uniapp 在站内的风评也不好(这算吗?都说坑多,但是却少有人说具体的坑)。至于性能,我认为对我们的应用而言应该问题不大。 2. Taro + React Native 。优点是开发体验不错,而且透明。缺点是说坑的人也不少,以及开发速度比 uniapp 慢(我猜的) 3. Flutter + MPFlutter2.0 。优点是开发体验完全一致,应用表现也一致,bug 更少(我猜的)。缺点是上手难度高,团队也不好扩充,另外就是这个 MPFlutter2.0 虽说能商用,但是我还得对它的质量保持怀疑。 这是我简单了解过后得出的结论,不一定准确,可能也还有其它的我未知的方案,希望大佬指点一下。 |
81
kelvinji2009 266 天前
@zybzzc 现在陷入了差不多的纠结之中。
|
82
guguji5 OP @kelvinji2009 我是用 flutter ,感觉挺有意思的,但是这玩意要是还原到 css 那种精美程度,好像很困难。只能是凑合用
|