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

2022 年, desktop app 开发(macos, windows, Linux )的跨平台框架是什么?

  •  
  •   xiaochong ·
    zhichenghou · Aug 25, 2022 · 17895 views
    This topic created in 1379 days ago, the information mentioned may be changed or developed.

    本人 JAVA 后端,有一些 react 的前端经验。打算开发一个 mac os 的小工具 app ,想了解下目前的跨平台框架对 desktop 的支持咋样?

    1. fluter
    2. react native
    3. 其他

    关心几点:

    1. 成熟度和活跃性,未来发展
    2. 通用性,能否向 mobile ( ios ,android )和 tv ( tvOs 等)迁移

    能沿用现在技术栈最好,也不很排斥新语言。感谢!

    Supplement 1  ·  Aug 25, 2022
    补充:
    - 个人项目
    - 目前无太复杂音视频功能,比较基本
    Supplement 2  ·  Aug 25, 2022
    目前的推荐情况:
    electron 3
    tauri 4
    flutter 3
    Jetbrains Compose 2
    wails 2
    .NET MAUI 4
    React Native 1
    Supplement 3  ·  Aug 25, 2022
    目前看起来 flutter 的推荐最多。

    还有提到 PWA 的,这个目前成熟了吗?
    124 replies    2023-05-15 11:14:43 +08:00
    1  2  
    debuggerx
        101
    debuggerx  
       Aug 26, 2022
    @murmur 确实是难题,对开发、设计、产品,甚至老板的要求都很高,但也并不是不可能的。事实上不管是从哪个角色的角度,追求跨平台都是很有价值的,“复用”程度越高越节省成本和开发设计的精力,只是很多原因,有些是技术限制,有些是人的水平问题,走了弯路,增加了复杂性反而是徒增兼容的成本。但是抛开需求和项目规模谈方案就是耍流氓,很多情况下,跨平台方案的综合性价比还是要高很多的。
    jdOY
        102
    jdOY  
       Aug 26, 2022
    u3d
    czzt1
        103
    czzt1  
       Aug 26, 2022
    为什么不是 qt 呢?
    likeunix
        104
    likeunix  
       Aug 26, 2022
    total_time(学一个跨平台框架 + 处理平台相关问题) > total_time(学习每个平台的开发框架 + 处理平台相关问题) * 2
    yanue
        105
    yanue  
       Aug 26, 2022
    swiftui
    Vintingb
        106
    Vintingb  
       Aug 26, 2022 via iPhone
    gio
    chenjiangui998
        107
    chenjiangui998  
       Aug 26, 2022
    说 flutter 的都是口嗨的, electron 或者 qt 无疑, 其他都不行, 目前主流都是 electron
    uni
        108
    uni  
       Aug 26, 2022
    @ysc3839 前端娱乐圈里一直有个说法,那就是 rust 是未来的前端进阶必须要会的东西。。。
    wdwwtzy
        109
    wdwwtzy  
       Aug 26, 2022
    MAUI yyds
    AaronWang13
        110
    AaronWang13  
       Aug 26, 2022
    纯桌面 Tauri
    xiaochong
        111
    xiaochong  
    OP
       Aug 26, 2022
    @uni 请问,为什么这么说呢?
    lancelock
        112
    lancelock  
       Aug 26, 2022
    godot
    uni
        113
    uni  
       Aug 26, 2022
    @xiaochong 这里有个回答我觉得应该就是这个说法目前主流的理由了:

    1 ,Webassembly 。这一点不用多说,rust 是 wasm 的一等公民,除了 cpp 在某些方面可以超过之外,rust 在这一领域绝对是最佳选项。
    2 ,最近有点使用其他语言重写前端基础设施的趋势,不管是 swc ,还是 fnm ,parcel 也使用 rust 重写了核心组件 Parcel 2 beta 3 ,还有 esbuild (虽然是用 go 写的)。在 vue 的 rfc 中也有相关的讨论是否可以使用 native 的能力家优化 SFC 的 parsing 性能 SFC with native,还有一个刚开的“坑”,vue-template-parser-rs 。未来 rust 一定会在前端工程化有一席之地的
    3 ,对底层原理会有更深刻的理解,这对于你理解一些 v8 的黑科技还是有帮助的,而且有些优化的方法是通用的,比如当你有大量数据要插入的时候优先申请一片内存,而不是让容器自动分配。
    4 ,使用 napi-rs@太狼 写 node binding ,不再有 node-gyp 重新编译的烦恼

    作者:ReAl
    链接: https://www.zhihu.com/question/481073515/answer/2072291356
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    另外我本人并不是很赞同这个说法
    shijingshijing
        114
    shijingshijing  
       Aug 26, 2022
    首先排除 MAUI
    calvinHxx
        115
    calvinHxx  
       Aug 26, 2022
    专业软件 qt 吧。
    ne6rd
        116
    ne6rd  
       Aug 26, 2022
    electron 和 flutter 都用过。
    electron 生态更成熟,flutter 开发体验更好。
    如果自己的项目,可以先看看需要的功能 flutter 有没有现成的包支持。
    1115746521
        117
    1115746521  
       Aug 26, 2022
    javafx
    Akitora
        118
    Akitora  
       Aug 26, 2022 via Android
    jetpack compose
    tauri
    yinanc
        119
    yinanc  
       Aug 26, 2022
    没人说 webview 吗……
    yinanc
        120
    yinanc  
       Aug 26, 2022
    @yinanc WebView2
    mmdsun
        121
    mmdsun  
       Aug 27, 2022
    tauri 坑多,慎入。
    MAUI 新出的不清楚,不过前身 Xamarin 已经很久了。

    要成熟可靠的推荐 qt 和 electron
    GiantHard
        122
    GiantHard  
       Aug 28, 2022
    > 有一些 react 的前端经验。打算开发一个 mac os 的小工具 app

    叫我说就先用 electron + react 先快速的做一个原型出来,更贴合你现在的技术栈,如果后面感觉有价值进一步升级改造,再来评估这里提到的各种先进技术栈也不迟。
    seakingii
        123
    seakingii  
       Sep 1, 2022
    这两天试用了一个 MAUI,感觉开发体验还行,除了烦人的 XAML 要学一堆的概念,但是感觉还是很不完善的(至少对桌面开发来说),比如以下几个强需求目前好像还不好解决(可能相对侧重移动开发,以及还是刚发布的原因吧):

    全屏显示

    全局监听键盘

    全局监听鼠标

    鼠标上的其它键(前进,后退用)

    打开一个 Window,关闭这个 Window 时直接程序崩溃...

    布局方式难以适应,感觉不如 CSS 那套
    temberature
        124
    temberature  
       May 15, 2023
    ChatGPT:用户是一名 Java 后端开发者,在 React 前端方面有一些经验。他们正计划为 Mac OS 开发一个小型的工具应用,并有兴趣了解目前支持桌面的跨平台框架的状况。他们关心的是成熟度、活跃度、未来发展以及迁移到移动和电视平台的能力。一些推荐的框架包括 Electron 、Tauri 、Flutter 、Jetbrains Compose 、.NET MAUI 和 React Native 。一些用户建议考虑具体要求,如音频和视频,以及潜在的硬件加速需求。Flutter 是最值得推荐的框架,其次是 Electron 和 Jetbrains Compose 。一些用户还提到了 PWA 和基于网络的解决方案。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5602 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 01:38 · PVG 09:38 · LAX 18:38 · JFK 21:38
    ♥ Do have faith in what you're doing.