V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
v423
V2EX  ›  程序员

[求助]跨平台(Android&iOS)框架选型

  •  1
     
  •   v423 · 2023-06-06 13:44:03 +08:00 · 3254 次点击
    这是一个创建于 538 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的需求是做个打卡记录 app ,每个任务要跑 3-10 个地点,到达之后通过 app 定位打卡并且拍照、录像进行确认 app 需要支持纯离线运行所以没法用小程序或者 web 处理,录像一分钟本地缓存就满啦 预估单次记录的数据总量在 100 张照片+5 段视频,单个任务上传总量不超过 3g

    技术栈:没写过原生,react 能写业务用的不多,vue 熟悉但是在 uniapp 上被坑过不太想用

    请问常见的跨平台框架,对于处理大量本地照片更友好些呢?

    43 条回复    2023-06-08 14:21:30 +08:00
    wingkwanli888
        1
    wingkwanli888  
       2023-06-06 13:50:10 +08:00 via iPhone   ❤️ 1
    Webview + vant 和原生一样丝滑
    D2h0VL89HMAU417B
        2
    D2h0VL89HMAU417B  
       2023-06-06 13:50:32 +08:00   ❤️ 3
    不写原生就 flutter 吧
    wingkwanli888
        3
    wingkwanli888  
       2023-06-06 13:51:54 +08:00 via iPhone   ❤️ 1
    @wingkwanli888 app 放个 lighthttpd 跑 vant
    elechi
        4
    elechi  
       2023-06-06 13:55:35 +08:00   ❤️ 1
    MAUI
    KT0J
        5
    KT0J  
       2023-06-06 14:04:18 +08:00   ❤️ 1
    不用原生,那就选 flutter 。
    tsanie
        6
    tsanie  
       2023-06-06 14:08:19 +08:00   ❤️ 1
    MAUI
    raykle
        7
    raykle  
       2023-06-06 14:11:23 +08:00   ❤️ 1
    那 React Native 适合你
    AreYou0k
        8
    AreYou0k  
       2023-06-06 14:16:36 +08:00   ❤️ 1
    flutter
    zongren
        9
    zongren  
       2023-06-06 14:58:19 +08:00   ❤️ 1
    webview+react/vue+原生插件
    可靠性和后续维护有保障
    rs9G7IrdOdiNR3h1
        10
    rs9G7IrdOdiNR3h1  
       2023-06-06 16:00:09 +08:00
    @wingkwanli888 现在 APP 不是一般不让套壳了吗?
    isSamle
        11
    isSamle  
       2023-06-06 16:14:34 +08:00   ❤️ 1
    Flutter
    xiqishow
        12
    xiqishow  
       2023-06-06 16:21:49 +08:00   ❤️ 1
    套 h5 手机内存不足的时候 拍照会刷新整个 webview 页面
    sks4728
        13
    sks4728  
       2023-06-06 16:55:26 +08:00   ❤️ 1
    flutter 一把梭, maui 国内地图 sdk 用起来感人。 当然如果是嵌个 H5 用什么都一样
    x77
        14
    x77  
       2023-06-06 16:56:29 +08:00   ❤️ 1
    Flutter 框架,要学一下 Dart 语言,对于前端背景的开发者很容易上手。
    iStar
        15
    iStar  
       2023-06-06 17:46:56 +08:00   ❤️ 1
    同时用 React Native 和 Flutter 的开发过几款 app 的原生背景开发者推荐:Flutter
    xiaoshan5733
        16
    xiaoshan5733  
       2023-06-06 18:10:29 +08:00   ❤️ 2
    如果会前端强烈推荐 react native ,可以体验一下我用纯 react native 开发的跨端 app: https://fanka.fuhaojianshen.com/
    musi
        17
    musi  
       2023-06-06 18:11:36 +08:00   ❤️ 1
    涉及到系统级的 API 还是建议原生
    WebKit
        18
    WebKit  
       2023-06-06 18:44:25 +08:00 via Android   ❤️ 1
    Flutter
    infun
        19
    infun  
       2023-06-06 18:46:01 +08:00   ❤️ 1
    作为测试我想说,flutter 用不好是真的卡
    Vitta
        20
    Vitta  
       2023-06-06 18:51:14 +08:00   ❤️ 1
    Flutter 吧
    RN 听说维护起来很难受, 特别是版本升级的时候。不知道现在什么样了。
    Cordova, ionic 别碰了,丝滑个 jer
    LeoQ689
        21
    LeoQ689  
       2023-06-06 19:06:52 +08:00   ❤️ 1
    Flutter
    leokun
        22
    leokun  
       2023-06-06 21:18:01 +08:00
    @xiaoshan5733 很👍
    AloneHero
        23
    AloneHero  
       2023-06-06 21:45:17 +08:00 via Android
    @iStar 能细说下原因吗
    wingkwanli888
        24
    wingkwanli888  
       2023-06-06 21:53:45 +08:00 via iPhone   ❤️ 1
    @whooami 只要 app 的 UI 能过 Apple 的断网测试就可以了

    就是离线渲染不白屏,我司最近两年的移动端项目都是 vant 写的,app 内嵌本地 web 服务器离线跑 vant
    tanranran
        25
    tanranran  
       2023-06-06 21:55:08 +08:00
    @xiaoshan5733 #16 有一说一,你这个 APP ,没啥复杂的场景
    tanranran
        26
    tanranran  
       2023-06-06 21:55:57 +08:00   ❤️ 1
    涉及到定位打卡并且拍照、录像+ 100 张照片+5 段视频,还是上 flutter 吧,其它可能都不满足的你需求
    gluttony
        27
    gluttony  
       2023-06-06 22:16:36 +08:00   ❤️ 2
    如果用 React Native 的话不要用 Bare React Native ,用 Expo 。React Native 很多第三方库年久失修,特别是包含 native 代码的库,遇到问题时没双端开发经验很麻烦。

    目前甚至按 RN 官方文档生成 Bare React Native 的脚手架项目,gradle.properties 指定的 FLIPPER_VERSION=0.125.0 在添加特定依赖包后会产生编译错误,需要改成 FLIPPER_VERSION=0.128.0 才能修复。对初学者极度不友好。

    Expo 所属公司积极维护生态圈,集成并改进了很多常用第三方库,还算靠谱。
    C603H6r18Q1mSP9N
        28
    C603H6r18Q1mSP9N  
       2023-06-06 23:25:34 +08:00   ❤️ 1
    Flutter 吧
    fox0001
        29
    fox0001  
       2023-06-07 00:13:10 +08:00 via Android   ❤️ 1
    Flutter ,推荐结合 Provider
    dayeye2006199
        30
    dayeye2006199  
       2023-06-07 00:51:24 +08:00   ❤️ 1
    为啥不用 RN 呢?虽然有点老,但是久经考验
    roundgis
        31
    roundgis  
       2023-06-07 01:17:03 +08:00
    @wingkwanli888 web 服务器用什么库?
    wobuhuicode
        32
    wobuhuicode  
       2023-06-07 05:57:39 +08:00 via iPhone   ❤️ 1
    实在看不出你这个 app 有什么性能上的难点。rn 和 flutter 都没问题。定位拍照录像这些都有稳定的第三方库。至于内容上传,自己写个队列上传就好了。处理大量本地图片是指怎么样的处理这个没看懂。是要大量加水印?
    uniy
        33
    uniy  
       2023-06-07 09:33:24 +08:00   ❤️ 1
    无论选择 React Native 或者 Flutter ,理论上讲他们都是 ui 框架,涉及到系统级别的,就要处理桥接问题,比如定位、拍照、录像、存储,这些都要与原生交互。人手不多,技术栈不全,我建议你直接选择原生开发。否则,否则,你就会遇到开发工具,切来切去,开发语言切来切去,ui 适配各种机型......,这些都还是在你都懂的情况下。 总来来说,建议用原生开发。
    rs9G7IrdOdiNR3h1
        34
    rs9G7IrdOdiNR3h1  
       2023-06-07 10:13:54 +08:00
    @wingkwanli888 这样啊,受教了
    lawsiki
        35
    lawsiki  
       2023-06-07 10:29:10 +08:00
    Mark 一下,和我现在准备做的需求挺像的😅
    kalixi
        36
    kalixi  
       2023-06-07 11:34:51 +08:00   ❤️ 1
    想啥啊,肯定 flutter 啊,谁还用 rn 啊
    wupeng756
        37
    wupeng756  
       2023-06-07 11:56:08 +08:00   ❤️ 1
    flutter 也是 ui 框架 建议仅从 UI 的角度,选择 RN 吧,涉及原生的 api 还是少不了要看和写原生的代码
    kayv
        38
    kayv  
       2023-06-07 12:23:36 +08:00
    @wingkwanli888 vant 是有赞的那个框架吗
    wingkwanli888
        39
    wingkwanli888  
       2023-06-07 12:42:15 +08:00 via iPhone
    @kayv 是的
    kayv
        40
    kayv  
       2023-06-07 14:35:08 +08:00
    @wingkwanli888
    >>就是离线渲染不白屏,我司最近两年的移动端项目都是 vant 写的,app 内嵌本地 web 服务器离线跑 vant

    意思是把前端打包拉取到 app 本地,用 app 的 web 服务跑吗?
    kayv
        41
    kayv  
       2023-06-07 14:36:35 +08:00
    @wingkwanli888 感谢老铁回复
    v423
        42
    v423  
    OP
       2023-06-08 14:19:59 +08:00
    @wobuhuicode
    批量图片处理是指可能需要在前端压缩 裁剪 标注 这些是业务那边提出的需求 一期暂时不做
    另外 200m 的视频是最常见的视频体积 超过 1g 的也不少 批量文件和大文件分段上传要是太复杂我就担心没处理好导致 crash
    v423
        43
    v423  
    OP
       2023-06-08 14:21:30 +08:00
    感谢以上的热心回复 flutter 压倒性优势胜出 我去整个 demo 试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3612 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 11:02 · PVG 19:02 · LAX 03:02 · JFK 06:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.