V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
whywei8
V2EX  ›  程序员

2024 年了,跨平台开发框架有啥推荐的吗

  •  
  •   whywei8 · 2024-04-02 07:30:14 +08:00 · 6487 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要求支持 WIN ,MAC ,安卓,坑少点就行。 想着开发一次,处处能运行的,或少量修改就行运行的。 那些独立开发者多平台开发用的啥框架呀。

    49 条回复    2025-02-16 15:21:50 +08:00
    5I4v7N4CPSlF03tx
        1
    5I4v7N4CPSlF03tx  
       2024-04-02 07:40:36 +08:00 via Android
    win mac 安卓,坑少,处处运行,少修改

    就是你了,html ,js ,css 一把梭

    放弃吧,跨平台哪家都不少坑
    geekjoehome
        2
    geekjoehome  
       2024-04-02 07:41:47 +08:00
    Kotlin Multiplatform
    facebook47
        3
    facebook47  
       2024-04-02 07:50:07 +08:00 via Android
    Web
    e7
        4
    e7  
       2024-04-02 08:06:57 +08:00
    2 次能不能接受,electron+flutter
    shinyzhu
        5
    shinyzhu  
       2024-04-02 08:16:44 +08:00
    最近在看 Web Assembly 。
    jgh004
        6
    jgh004  
       2024-04-02 08:18:08 +08:00   ❤️ 1
    阿瓦龙
    twing37
        7
    twing37  
       2024-04-02 08:18:59 +08:00
    你的技术栈是什么,就往哪边靠.
    bianhui
        8
    bianhui  
       2024-04-02 08:19:06 +08:00
    uniapp ?
    lllllliu
        9
    lllllliu  
       2024-04-02 08:58:09 +08:00
    Flutter
    macaodoll
        10
    macaodoll  
       2024-04-02 08:59:56 +08:00 via Android
    javaswing 套壳 chrome
    ynxh
        11
    ynxh  
       2024-04-02 09:06:43 +08:00
    electron+flutter
    subframe75361
        12
    subframe75361  
       2024-04-02 09:15:12 +08:00 via Android
    tauri 能跑,就看你敢不敢上生产
    Imindzzz
        13
    Imindzzz  
       2024-04-02 09:15:49 +08:00 via Android
    跨移动和 pc ?那要搞两个项目,
    移动用 React native,
    PC 用 electron+ react
    因为 UI 是 React 写的,两个项目可以用同一份代码( ui 搞成一个 npm 包)
    lstz
        14
    lstz  
       2024-04-02 09:15:55 +08:00 via Android
    如果你是公司项目,求稳还是上 electron
    laters
        15
    laters  
       2024-04-02 09:24:44 +08:00   ❤️ 1
    移动端 flutter
    PC electron
    sxms77777
        16
    sxms77777  
       2024-04-02 09:29:42 +08:00
    KMM
    songunity
        17
    songunity  
       2024-04-02 09:31:34 +08:00
    unity
    zzzmh
        18
    zzzmh  
       2024-04-02 09:44:49 +08:00
    开发 3 遍,妹开玩笑,也许这才是最优解
    Curtion
        19
    Curtion  
       2024-04-02 09:53:39 +08:00
    既支持电脑端也支持手机端,还要同一个技术栈. 那么有 C#的.NET MAUI, Dart 的 Flutter, JS 的 Webview, Kotlin 的 KMP, 当然还有 Rust 的 Tauri v2,但是正式版还没有发布可以先观望. 使用什么取决于你的技术栈是什么, 性能要求是怎么样的
    janus77
        20
    janus77  
       2024-04-02 10:04:58 +08:00   ❤️ 2
    应该只有 flutter 能用,不是坑多少的问题,是可用的只有这一个。。。其他的要么还在实验性阶段,要么支持平台不够多,或者某一个平台支持还在实验性阶段
    jlkm2010
        21
    jlkm2010  
       2024-04-02 10:07:18 +08:00
    当下的话,两个选择:
    1. web 那套
    2. flutter
    loshine1992
        22
    loshine1992  
       2024-04-02 10:14:32 +08:00
    只有 Flutter
    leegoo
        23
    leegoo  
       2024-04-02 10:23:38 +08:00
    flutter 挺好的,插件很丰富,对于 android 和 ios 不熟悉的人也可以快速开发,
    但是如果需要网页功能(我指的是管理后台)的话,flutter 目前开发效率比较低,用 vue(我只用过这个哈)效率会高很多。
    既然做独立开发,那么开发效率是需要考虑的
    sxx97
        24
    sxx97  
       2024-04-02 10:34:48 +08:00
    试试 Dioxus🤓
    lujiaxing
        25
    lujiaxing  
       2024-04-02 10:52:09 +08:00 via Android
    Electron + Cordova
    hugebug
        26
    hugebug  
       2024-04-02 10:55:47 +08:00
    @subframe75361 android 跟 ios 我都没跑起来 用的 v2
    ajaxgoldfish
        27
    ajaxgoldfish  
       2024-04-02 11:05:34 +08:00 via Android
    不要觉得套 web view 就是 low ,目前仍是最优解。
    wangtian2020
        28
    wangtian2020  
       2024-04-02 11:17:12 +08:00
    https://quasar.dev/start/quick-start
    quasar 框架就是设定上一个框架一套代码 electron 和 cordova 都能跑
    electron 跑 PC 端,自己写 cordova 插件调用安卓原生 API 。保证你绝对不会遇到任何不能解决的坑,因为都是调用的系统原生 API 想怎么改就怎么改
    leehome
        29
    leehome  
       2024-04-02 11:17:35 +08:00
    electron + flutter
    kaminic
        30
    kaminic  
       2024-04-02 11:18:11 +08:00
    我们使用 flutter 做过两个跨平台产品
    一个是简化版 pptx 编辑器,支持 web 、pc 和移动端
    一个是 卡拉 OK 产品,支持 pc 和移动端

    可用性上完全没有问题,没有遇到不可解决的坑

    只有一个在 PC 上动画抖动的问题,提交 issues 被确认了,但是解决时间遥遥无期,我们修改引擎临时方案解决的
    whywei8
        31
    whywei8  
    OP
       364 天前
    看来看去,还是至少 要写两遍 electron + flutter 也就是 PC ,移动端。
    qianji201712
        32
    qianji201712  
       364 天前
    Flutter 目前 Android iOS Win Mac 都同时发布
    beginor
        33
    beginor  
       364 天前 via Android
    .Net + Avalonia
    ARIInV2
        34
    ARIInV2  
       364 天前
    RN
    NewTab12138
        35
    NewTab12138  
       364 天前
    移动端直接 flutter ,pc 看需求,简单的可以 flutter 一把梭
    laters
        36
    laters  
       364 天前
    @whywei8 如果简单的 flutter 可以直接撸 桌面端, 但 web 最好还是 vue 这种
    whywei8
        37
    whywei8  
    OP
       364 天前
    @beginor 太小众了吧
    whywei8
        38
    whywei8  
    OP
       364 天前
    @twing37 主要是如果能一次开发。多平台发布 技术栈这个可以学新的。
    whywei8
        39
    whywei8  
    OP
       364 天前
    @qianji201712 好的,谢谢,看到最多回复的 是 Flutter 。
    piscesq329a
        40
    piscesq329a  
       286 天前
    KMP 怎么样,大家有实践过吗?
    benG
        41
    benG  
       198 天前
    怎么都没有提到 ArkUI-X ?我来补充一下:华为跨平台方案 ArkUI-X 初探 https://github.com/DZby1990/ArkUI-X-Survey-Repoet
    akaHenry
        42
    akaHenry  
       161 天前
    我比较关注的方案:

    1. Tauri 2.0, 支持 desktop(macOS, Windows, Linux) + mobile ( iOS, Android) 跨平台, 偏前端方案。

    2. 鸿蒙 ArkTS + ArkUI + ArkUI-X(跨平台),支持 moible ( iOS, Android, 鸿蒙 5.0 ),偏前端方案。

    3. Kotlin + Kotlin Multiplatform(KMP + KMM),支持 desktop + mobile 跨平台,能力完备,偏原生方案。

    4. C# + Unity , 支持 mobile ( iOS, Android), 偏游戏开发,不适合常规 app UI 交互。

    -------------------------------------------------------------------------------------------

    不推荐的方案:

    1. Flutter ,相比上述方案,有明显短板.(原因很多,不赘述,flutter 是我唯一觉得投资失败的技术栈, 收益极低)

    2. Electron ,有争议,用的人很多,但我个人不喜欢。( Tauri 解决不了的,换其他,我也不用)

    2. Qt 类( PyQt 等),跨端的平台多,开发效率和兼容性,都跟不上,能接受 qt ,大概可以看看 Kotlin 方案。

    3. 其他未提到的: React Native, Wails(go+js), NiceGui(python+js).

    -------------------------------------------------------------------------------------------

    技术方案投资,关注点 & 指标:

    1. 好爹(爹不行,后继乏力,爹不靠谱,不兼容升级太多,都别用)

    2. 技术品味 & 技术先进性(性能合格,开发效率够高,易于复用 & 易于迁移 or 移植他领域)

    3. 符合市场发展趋势(注意是市场, 市场, 市场!)

    4. 生态完备度(插件库够多,易于移植/白嫖其他生态,易于造轮子)

    -------------------------------------------------------------------------------------------

    拿这些指标,反复检验如上技术栈,评估符合自己需求的技术,做技术投资 & 技术储备。

    选对方向,早做投资,早吃红利。
    skymanv2
        43
    skymanv2  
       140 天前
    @akaHenry 你的答案比较全,比较好,请问你最后选择了什么方案呢?
    akaHenry
        44
    akaHenry  
       138 天前
    @skymanv2 #43

    新增一个方案 flet:

    https://github.com/flet-dev/flet


    我是在使用多个方案: Tauri, Flet, ArkTS+ArkUI-X, Kotlin.

    根据具体场景, 选择适合的方案.

    Tauri: 嫖 rust + js 库时使用. 搭配 vue.js 快速糊 GUI 小工具.

    Flet: = Python+Flutter. 单纯的 Flutter 不建议使用, 没有太大优势. 但是 flet, 可以用. 这个是白嫖 flutter 的绘图能力, 100% python 代码写应用. 利用 flutter 的能力, 糊个漂亮的 gui 还是很轻松的. python 库也最多, 最方便.

    ArkTS: 技术储备, 为华为鸿蒙开发原生应用首选. 配合 ArkUI-X 跨平台能力也是完备的. 本身大量"借鉴/抄" flutter + kotlin 等特性, 熟悉 flutter, 上手也很快.


    Kotlin: 备胎方案, 以上方案不满足的时候, 考虑. (本身跨平台能力也完备, 至少 Desktop 生态比较弱)
    skymanv2
        45
    skymanv2  
       137 天前
    @akaHenry 感谢,我也决定用 Tauri 和 ArkUI-X
    vectorization
        46
    vectorization  
       70 天前
    我来补充一些跨平台框架需要评估的点:

    1. 动态化:
    Flutter 是可以跨平台的,但是没有官方的动态化方案,业界动态化方案很多,但是基本处于自用,对外只有宣传 PR 的效果,腾讯有个 conch 的高性能动态化方案,应该是市面上屈指可数的基于虚拟机指令的动态化方案。
    https://shiply.tds.qq.com/docs/doc?id=4012359582

    2. 持续部署:
    动态化的下一步就是实现持续部署,也叫热更新。这需要一个强大的客户端资源发布平台,市面上几乎没有选择,腾讯的 Shiply 平台对跨平台产物热发布支持的不错,能够差量更新和灰度发布。

    大部分团队只实现了跨平台开发节省人力,但是动态化和持续部署受限于团队规模,没有经历持续投入,这块可以看看成熟的大厂解决方案。
    vectorization
        47
    vectorization  
       70 天前
    @vectorization 补充一个 Shiply 平台链接: https://shiply.tds.qq.com/
    lijie33402
        48
    lijie33402  
       58 天前
    @akaHenry 请问下 arkui-x 现在成熟吗?是不是还属于 ppt 阶段
    akaHenry
        49
    akaHenry  
       44 天前
    @lijie33402 #48

    官方提供多个 arkui-x 的 demo, 包括多页面, 日常的 电商, 新闻类 App 的模板页的示例.

    我编译 + 安装到 Android 手机, 实测效果, 体验挺流畅.

    我并没有用 arkui-x 开发比较大的 App, 无法给你一手体验.


    不过, 这算华为主推的跨平台解决方案, 原因:

    1. 华为也要适配自己老的 Android 设备, 跨平台是自身刚需.

    2. 吸引其他平台的 App 能够更多迁移到 鸿蒙 next 上, 有足够的动机, 来兼容其他平台.

    3. 新增 app 开发, 不会有开发者会为了他一个平台, 单独搞一套.(市场份额决定)


    综上推理, 可以分析, arkui-x 不会是个 KPI 方案, 反而是决定能否吸引到开发者的决定成败的方案.

    我个人不认为是 PPT 方案. (官方文档非常详细)

    一家之言, 仅供参考.

    如果是从 0 到 1 的新项目, 可以尝鲜.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 05:06 · PVG 13:06 · LAX 22:06 · JFK 01:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.