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

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

  •  
  •   xiaochong ·
    zhichenghou · 2022-08-25 11:18:30 +08:00 · 14680 次点击
    这是一个创建于 805 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    1. fluter
    2. react native
    3. 其他

    关心几点:

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

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

    第 1 条附言  ·  2022-08-25 11:53:09 +08:00
    补充:
    - 个人项目
    - 目前无太复杂音视频功能,比较基本
    第 2 条附言  ·  2022-08-25 14:51:16 +08:00
    目前的推荐情况:
    electron 3
    tauri 4
    flutter 3
    Jetbrains Compose 2
    wails 2
    .NET MAUI 4
    React Native 1
    第 3 条附言  ·  2022-08-25 18:42:31 +08:00
    目前看起来 flutter 的推荐最多。

    还有提到 PWA 的,这个目前成熟了吗?
    124 条回复    2023-05-15 11:14:43 +08:00
    1  2  
    debuggerx
        101
    debuggerx  
       2022-08-26 10:27:25 +08:00
    @murmur 确实是难题,对开发、设计、产品,甚至老板的要求都很高,但也并不是不可能的。事实上不管是从哪个角色的角度,追求跨平台都是很有价值的,“复用”程度越高越节省成本和开发设计的精力,只是很多原因,有些是技术限制,有些是人的水平问题,走了弯路,增加了复杂性反而是徒增兼容的成本。但是抛开需求和项目规模谈方案就是耍流氓,很多情况下,跨平台方案的综合性价比还是要高很多的。
    jdOY
        102
    jdOY  
       2022-08-26 10:36:01 +08:00
    u3d
    czzt1
        103
    czzt1  
       2022-08-26 10:48:52 +08:00
    为什么不是 qt 呢?
    likeunix
        104
    likeunix  
       2022-08-26 11:25:40 +08:00
    total_time(学一个跨平台框架 + 处理平台相关问题) > total_time(学习每个平台的开发框架 + 处理平台相关问题) * 2
    yanue
        105
    yanue  
       2022-08-26 12:37:58 +08:00
    swiftui
    Vintingb
        106
    Vintingb  
       2022-08-26 12:47:59 +08:00 via iPhone
    gio
    chenjiangui998
        107
    chenjiangui998  
       2022-08-26 13:06:29 +08:00
    说 flutter 的都是口嗨的, electron 或者 qt 无疑, 其他都不行, 目前主流都是 electron
    uni
        108
    uni  
       2022-08-26 13:10:02 +08:00
    @ysc3839 前端娱乐圈里一直有个说法,那就是 rust 是未来的前端进阶必须要会的东西。。。
    wdwwtzy
        109
    wdwwtzy  
       2022-08-26 14:20:00 +08:00
    MAUI yyds
    AaronWang13
        110
    AaronWang13  
       2022-08-26 14:52:58 +08:00
    纯桌面 Tauri
    xiaochong
        111
    xiaochong  
    OP
       2022-08-26 15:08:31 +08:00
    @uni 请问,为什么这么说呢?
    lancelock
        112
    lancelock  
       2022-08-26 16:55:08 +08:00
    godot
    uni
        113
    uni  
       2022-08-26 18:27:12 +08:00
    @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  
       2022-08-26 18:33:35 +08:00
    首先排除 MAUI
    calvinHxx
        115
    calvinHxx  
       2022-08-26 18:43:05 +08:00
    专业软件 qt 吧。
    ne6rd
        116
    ne6rd  
       2022-08-26 18:43:09 +08:00
    electron 和 flutter 都用过。
    electron 生态更成熟,flutter 开发体验更好。
    如果自己的项目,可以先看看需要的功能 flutter 有没有现成的包支持。
    1115746521
        117
    1115746521  
       2022-08-26 18:45:20 +08:00
    javafx
    Akitora
        118
    Akitora  
       2022-08-26 19:06:35 +08:00 via Android
    jetpack compose
    tauri
    yinanc
        119
    yinanc  
       2022-08-26 19:38:02 +08:00
    没人说 webview 吗……
    yinanc
        120
    yinanc  
       2022-08-26 19:40:46 +08:00
    @yinanc WebView2
    mmdsun
        121
    mmdsun  
       2022-08-27 00:43:58 +08:00
    tauri 坑多,慎入。
    MAUI 新出的不清楚,不过前身 Xamarin 已经很久了。

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

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

    全屏显示

    全局监听键盘

    全局监听鼠标

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

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

    布局方式难以适应,感觉不如 CSS 那套
    temberature
        124
    temberature  
       2023-05-15 11:14:43 +08:00
    ChatGPT:用户是一名 Java 后端开发者,在 React 前端方面有一些经验。他们正计划为 Mac OS 开发一个小型的工具应用,并有兴趣了解目前支持桌面的跨平台框架的状况。他们关心的是成熟度、活跃度、未来发展以及迁移到移动和电视平台的能力。一些推荐的框架包括 Electron 、Tauri 、Flutter 、Jetbrains Compose 、.NET MAUI 和 React Native 。一些用户建议考虑具体要求,如音频和视频,以及潜在的硬件加速需求。Flutter 是最值得推荐的框架,其次是 Electron 和 Jetbrains Compose 。一些用户还提到了 PWA 和基于网络的解决方案。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3362 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:22 · PVG 19:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.