开发 app 技术选型问题,各位见多识广的 V2er 来指点指点我吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ihgoo
V2EX    程序员

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

  •  
  •   ihgoo 2020-12-22 20:36:06 +08:00 3221 次点击
    这是一个创建于 1762 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟我的 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 来指点指点我吧!

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

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

    原生肯定是最稳的,反正 android 很熟,双端原生很 Ok,而且我看很多 flutter 的 BLE 多多少少都有问题也是醉了
    stardust21
        5
    stardust21  
       2020-12-22 21:31:05 +08:00
    flutter 解决 UI 层的复用比较方便,你这还要开发 BLE,不如直接用原生。
    可以尝试下 kotlin native,编译成两端原生代码
    ginjedoad
        6
    ginjedoad  
       2020-12-22 21:41:54 +08:00
    兄弟,前端就用 flutter, 后端用 rust , 就是一阵猛撸就是了。坑不坑,陷进去再说。
    ihgoo
        7
    ihgoo  
    OP
       2020-12-22 21:43:55 +08:00
    @stardust21 kotlin native 还真是第一次听说。。。去 google 了下,用的人很少哎
    HongJay
        8
    HongJay  
       2020-12-22 21:45:10 +08:00
    flutter 就是 ui 啊兄弟
    ihgoo
        9
    ihgoo  
    OP
       2020-12-22 21:49:24 +08:00
    @stardust21 主要是没接触过原生开发 iOS,有点打怵。心里没底。。。
    rb6221
        10
    rb6221  
       2020-12-22 21:58:00 +08:00   1
    无论你搞不搞跨端,oc 肯定要学的,因为有些原生功能是跨平台框架没法支持的,比如蓝牙啊 播放器啊 文件选择啊 拍照啊 等等
    然后根据你的项目复杂程度选择跨平台的框架,其实最成熟的还是 RN,我也并不是喜欢 RN,只是很多时候他是经历充分调研以后的最佳选择。
    flutter 你也可以稍微看下,如果你项目不算复杂的话也可以上
    duqing1230123
        11
    duqing1230123  
       2020-12-22 22:24:31 +08:00
    简单页面用 flutter,加快开发效率。
    复杂业务场景页面,如直播等音视频,那就还是原生的体验最好。
    Bijiabo
        12
    Bijiabo  
       2020-12-22 22:25:40 +08:00
    @janus77 @ihgoo 跨端开发我也推荐 RN,至少成熟。
    如果是蓝牙相关的开发比较多的话,OC 你是避不开的,只会 Swift 都不够用,iOS 和硬件通讯相关的接口会比较低层,如果追求效率需要多线程优化甚至用 C 来实现一些基础功能,比如数据转换之类。
    nicevar
        13
    nicevar  
       2020-12-23 04:41:57 +08:00 via Android
    事实就是不管你用 swift 还是 flutter 你都要会 oc,逃不掉的
    jones2000
        14
    jones2000  
       2020-12-23 06:39:30 +08:00
    oc 做壳, 内部 webview, 直接用 vue 做页面
    ihgoo
        15
    ihgoo  
    OP
       2020-12-23 08:19:15 +08:00
    @janus77 我感觉 flutter 可以。。。做不了的地方就用原生
    sometime
        16
    sometime  
       2020-12-23 10:11:24 +08:00
    学过 kotlin 还是推荐 Swift 上手理解快些,Swift 也有 CoreBluetooth 可以用,但大多数 demo 资料都是 OC 的
    treblex
        17
    treblex  
       2020-12-23 10:48:57 +08:00
    flutter + 原生插件 应该就行了吧 ,ps:oc 有点难学,swiftui 还挺舒适的
    a62527776a
        18
    a62527776a  
       2020-12-23 13:59:10 +08:00
    flutter 一把嗦 封装好 channel 就行 业务和 UI 全放 flutter 上
    admin003
        19
    admin003  
       2020-12-23 17:59:02 +08:00
    有蓝牙硬件相关的功能,别用 flutter
    loginbygoogle
        20
    loginbygoogle  
       2020-12-24 09:16:31 +08:00 via iPhone
    明显 flutter 嘛,蓝牙相关的功能,如果找不到合适插件,那只能自己写原生代码,之前在 pub 上看到货一个蓝牙插件,你可以搜一搜看看用不用得上
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     809 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:56 PVG 04:56 LAX 13:56 JFK 16:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86