• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ihgoo
V2EX  ›  程序员

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

  •  
  •   ihgoo · Dec 22, 2020 · 3625 views
    This topic created in 1996 days ago, the information mentioned may be changed or developed.

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

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

    原生肯定是最稳的,反正 android 很熟,双端原生很 Ok,而且我看很多 flutter 的 BLE 多多少少都有问题也是醉了
    stardust21
        5
    stardust21  
       Dec 22, 2020
    flutter 解决 UI 层的复用比较方便,你这还要开发 BLE,不如直接用原生。
    可以尝试下 kotlin native,编译成两端原生代码
    ginjedoad
        6
    ginjedoad  
       Dec 22, 2020
    兄弟,前端就用 flutter, 后端用 rust , 就是一阵猛撸就是了。坑不坑的,陷进去再说。
    ihgoo
        7
    ihgoo  
    OP
       Dec 22, 2020
    @stardust21 kotlin native 还真是第一次听说。。。去 google 了下,用的人很少哎
    HongJay
        8
    HongJay  
       Dec 22, 2020
    flutter 就是 ui 啊兄弟
    ihgoo
        9
    ihgoo  
    OP
       Dec 22, 2020
    @stardust21 主要是没接触过原生开发 iOS,有点打怵。心里没底。。。
    rb6221
        10
    rb6221  
       Dec 22, 2020   ❤️ 1
    无论你搞不搞跨端,oc 肯定要学的,因为有些原生功能是跨平台框架没法支持的,比如蓝牙啊 播放器啊 文件选择啊 拍照啊 等等
    然后根据你的项目复杂程度选择跨平台的框架,其实最成熟的还是 RN,我也并不是喜欢 RN,只是很多时候他是经历充分调研以后的最佳选择。
    flutter 你也可以稍微看下,如果你项目不算复杂的话也可以上
    duqing1230123
        11
    duqing1230123  
       Dec 22, 2020
    简单页面用 flutter,加快开发效率。
    复杂业务场景页面,如直播等音视频,那就还是原生的体验最好。
    Bijiabo
        12
    Bijiabo  
       Dec 22, 2020
    @janus77 @ihgoo 跨端开发我也推荐 RN,至少成熟。
    如果是蓝牙相关的开发比较多的话,OC 你是避不开的,只会 Swift 都不够用,iOS 和硬件通讯相关的接口会比较低层,如果追求效率需要多线程优化甚至用 C 来实现一些基础功能,比如数据转换之类。
    nicevar
        13
    nicevar  
       Dec 23, 2020 via Android
    事实就是不管你用 swift 还是 flutter 你都要会 oc,逃不掉的
    jones2000
        14
    jones2000  
       Dec 23, 2020
    oc 做壳, 内部 webview, 直接用 vue 做页面
    ihgoo
        15
    ihgoo  
    OP
       Dec 23, 2020
    @janus77 我感觉 flutter 可以。。。做不了的地方就用原生
    sometime
        16
    sometime  
       Dec 23, 2020
    学过 kotlin 还是推荐 Swift 上手理解快些,Swift 也有 CoreBluetooth 可以用,但大多数 demo 资料都是 OC 的
    treblex
        17
    treblex  
       Dec 23, 2020
    flutter + 原生插件 应该就行了吧 ,ps:oc 有点难学,swiftui 还挺舒适的
    a62527776a
        18
    a62527776a  
       Dec 23, 2020
    flutter 一把嗦 封装好 channel 就行 业务和 UI 全放 flutter 上
    admin003
        19
    admin003  
       Dec 23, 2020
    有蓝牙硬件相关的功能,别用 flutter
    loginbygoogle
        20
    loginbygoogle  
       Dec 24, 2020 via iPhone
    明显 flutter 嘛,蓝牙相关的功能,如果找不到合适插件,那只能自己写原生代码,之前在 pub 上看到货一个蓝牙插件,你可以搜一搜看看用不用得上
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5511 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 01:22 · PVG 09:22 · LAX 18:22 · JFK 21:22
    ♥ Do have faith in what you're doing.