开发 app 技术选型问题,各位见多识广的 V2er 来指点指点我吧

2020-12-22 20:36:06 +08:00
 ihgoo

小弟我的 APP 技术栈目前是这样的:

Android:java 和 kotlin (开发了很久,比较熟练)

移动端网页:会 Vue (入手不难,开发了一年多,比较熟练)

Flutter:只是前年体验过一次,开发了个很小的 app 上架了苹果 AppStore

iOS:oc 和 swift 0 经验

缘由:

老板今天把我叫过去说计划准备开发 iOS 的 app 我们公司以前只有 Android 端, 并没有 iOS 端,我在想是去自学下 oc 或者 swift 还是直接上 Flutter 两端统一算了,小弟在前年开发 Flutter 的时候感觉很不成熟,就连 webview 都有坑,上架了 AppStore 后我就没再关注它了。

前年开发的时候感觉如果不遇到什么坑 Flutter 倒是比较简单,如果遇到坑,就怕是爬不出来啊。

oc 和 swift 我倒是是完全没接触过。不知道现学的话,能不能 hold 住。

无论最后到底用啥,估计就只是我自己一人来维护。还有一个比较关注的点是我们目前的 app 对接蓝牙协议比较多,有一些硬件蓝牙设备需要 ble 连接。。。

真的挺纠结的,拿不准主意了,各位见多识广的 V2er 来指点指点我吧!

2546 次点击
所在节点    程序员
20 条回复
Bijiabo
2020-12-22 21:00:30 +08:00
针对你的需求,OC 必须学。为了避坑,建议直接 OC 或者 OC+Swift 来开发。
个人维护和团队一群人踩坑共同承担不一样,尽量减少不确定性吧。
tydl
2020-12-22 21:06:01 +08:00
php 是最好的语言(嚎)
ihgoo
2020-12-22 21:19:12 +08:00
@Bijiabo 其实上 OC 的话,从个人角度来看,我的工作量会加倍,如果用 flutter,可能会省事儿一些呢?

flutter+OC 呢,大部分功能用 flutter,flutter 实现不了的,就用 OC,这种呢?
janxin
2020-12-22 21:23:37 +08:00
没有原生开发又重度依赖系统特性功能的谨慎入坑 flutter,BLE 在 Android 还有一些问题。如果轻业务服务有依赖 webview 也不是不可以,新版本的 webview 还是更新了很多,比如不再是技术预览版本了。

原生肯定是最稳的,反正 android 很熟,双端原生很 Ok,而且我看很多 flutter 的 BLE 多多少少都有问题也是醉了
stardust21
2020-12-22 21:31:05 +08:00
flutter 解决 UI 层的复用比较方便,你这还要开发 BLE,不如直接用原生。
可以尝试下 kotlin native,编译成两端原生代码
ginjedoad
2020-12-22 21:41:54 +08:00
兄弟,前端就用 flutter, 后端用 rust , 就是一阵猛撸就是了。坑不坑的,陷进去再说。
ihgoo
2020-12-22 21:43:55 +08:00
@stardust21 kotlin native 还真是第一次听说。。。去 google 了下,用的人很少哎
HongJay
2020-12-22 21:45:10 +08:00
flutter 就是 ui 啊兄弟
ihgoo
2020-12-22 21:49:24 +08:00
@stardust21 主要是没接触过原生开发 iOS,有点打怵。心里没底。。。
janus77
2020-12-22 21:58:00 +08:00
无论你搞不搞跨端,oc 肯定要学的,因为有些原生功能是跨平台框架没法支持的,比如蓝牙啊 播放器啊 文件选择啊 拍照啊 等等
然后根据你的项目复杂程度选择跨平台的框架,其实最成熟的还是 RN,我也并不是喜欢 RN,只是很多时候他是经历充分调研以后的最佳选择。
flutter 你也可以稍微看下,如果你项目不算复杂的话也可以上
duqing1230123
2020-12-22 22:24:31 +08:00
简单页面用 flutter,加快开发效率。
复杂业务场景页面,如直播等音视频,那就还是原生的体验最好。
Bijiabo
2020-12-22 22:25:40 +08:00
@janus77 @ihgoo 跨端开发我也推荐 RN,至少成熟。
如果是蓝牙相关的开发比较多的话,OC 你是避不开的,只会 Swift 都不够用,iOS 和硬件通讯相关的接口会比较低层,如果追求效率需要多线程优化甚至用 C 来实现一些基础功能,比如数据转换之类。
nicevar
2020-12-23 04:41:57 +08:00
事实就是不管你用 swift 还是 flutter 你都要会 oc,逃不掉的
jones2000
2020-12-23 06:39:30 +08:00
oc 做壳, 内部 webview, 直接用 vue 做页面
ihgoo
2020-12-23 08:19:15 +08:00
@janus77 我感觉 flutter 可以。。。做不了的地方就用原生
sometime
2020-12-23 10:11:24 +08:00
学过 kotlin 还是推荐 Swift 上手理解快些,Swift 也有 CoreBluetooth 可以用,但大多数 demo 资料都是 OC 的
treblex
2020-12-23 10:48:57 +08:00
flutter + 原生插件 应该就行了吧 ,ps:oc 有点难学,swiftui 还挺舒适的
a62527776a
2020-12-23 13:59:10 +08:00
flutter 一把嗦 封装好 channel 就行 业务和 UI 全放 flutter 上
admin003
2020-12-23 17:59:02 +08:00
有蓝牙硬件相关的功能,别用 flutter
loginbygoogle
2020-12-24 09:16:31 +08:00
明显 flutter 嘛,蓝牙相关的功能,如果找不到合适插件,那只能自己写原生代码,之前在 pub 上看到货一个蓝牙插件,你可以搜一搜看看用不用得上

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

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

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

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

© 2021 V2EX