[求助]跨平台(Android&iOS)框架选型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
v423
V2EX    程序员

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

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

    现在的需求是做个打卡记录 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
    GlobalNPC
        19
    GlobalNPC  
       2023-06-06 18:46:01 +08:00   1
    作为测试我想说,flutter 用不好是真的卡
    Vitta
        20/div>
    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
    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     Solana     3161 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:18 PVG 20:18 LAX 05:18 JFK 08:18
    Do have faith in what you're doing.
    ubao 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