最近看到几篇类似的讨论:
www.hesudu.com/t/1005711
www.hesudu.com/t/1005903
正好我也面临类似的问题,合理讨论下,先说明下需求:

Win+Mac+移动端 桌面端为主用户群体,移动端会简单一些
工具类产品,除了 GUI 层面的需求外,核心功能会用到原生 OS 的 API ,所以各端必然有小部分核心代码是不一样的
整体 App 属于中等 App ,所以我不严格追求包大小,在我看来桌面端 50M~200M 都属于用户能接受的中等 App 的范畴
App 里绝大部分以界面交互为主,Webview 有但也有限,可能仅仅辅助使用;性能要求也不高;
不希望用户主动安装依赖(之前基于.Net 开发的 Win App 需要用户手动安装依赖的痛苦回忆...)

基于以上需求,感觉 Electron 是最适合的,有没有人提供下不同的思路见解?

我投 flutter 一票

webui.me/ 这个方案挺好的,唯一的问题是浏览器窗口归属浏览器应用,而不是自己这个应用

flutter 是不是也能开发桌面应用

我投 flutter 一票

如果基于我上面说的需求下,能请教下 Flutter 的优势吗?确实怕再踩坑

优缺点和对比已经说烂了,该不认同的还是不会认同,只会一直争下去,实在懒得说了……所以出来投一票表个立场而已。

Electron 开发,多窗口多进程交互麻烦的要死

kmp ,有喜欢的没?

我认为未来是 web 的, 大统一 UI 标准, 迄今为止最全面用的人最多的举个类似的例子, 以前在 nodejs 兴起的时候, 因为 js 程序员的受众巨大, 导致能被 nodejs 重写的插件几乎都被重写了而现在也有这个趋势, 比如开发代码连接蓝牙比较繁琐, 在 nodejs 下使用的是 noble 这个库, 而 w3c bluetooth api 标准发布后, 没多久社区就有人将它包装为标准 api , 使得 nodejs 开发可以与 web 对齐

比如说?有哪些帖子或者文章比对过?

flutter 多线程支持太拉了,要不然我也选 flutter

支持 electron

不支持 electron ,不想要多个浏览器 只要一个就够了

打算用

桌面端,我选 tauri

我也推荐 Electron ,但是有的人就是纠结文件大小

我投 Qt 一票,wxWidgets 一票

支持 electron

我也是看好 web 类的方案,但不知道会不会有比 electron 更优秀的框架

我选 electron ,因为技术栈匹配度高,但是我投 Compose Multiplatform 一票,没什么,单纯希望他们打起来。

avalonia 用 aot 编译,不用再装 .net 了吧?其 hello world 的 aot 产物用压缩包压缩下,也只有 10 兆大小

electron 有一个好处:就是把一些 electron 特有的 API (主要是调用硬件的)直接绑在 window 上,然后用 electron 套一个网页;更新的话直接更新网页,可以避免更新整个 electron ,而且还可以无感强制更新; electron 打包之后再小也有 50m+,用户量大了 cdn 流量也遭不住

作为开发来说,我也推荐 Electron ,甚至 Flutter 我觉得也是可选的。但从用户角度出发,我只想要原生的 App 。

Electron 就是安装包大了点,写个 Hello World 都得几十 M ,其他没啥毛病。

作为用户我不支持 electron ,我可不想在我的电脑上塞 N 多个 Chrome 。

www.hesudu.com/t/938959 www.hesudu.com/t/952400 www.hesudu.com/t/955166 zhuanlan.zhihu.com/p/520770477 medium.com/@maxel333/comparing-desktop-application-development-frameworks-electron-flutter-tauri-react-native-and-fd2712765377

我投 egui

作为用户我只想用原生 app……但是想到我很少为优秀的原生 app 付钱,那么,作为雪花,我不是无辜的

我觉得 electron 能像 Java JRE 一样,出几个稳定版的浏览器包作为运行时就好这下就像安卓的"快应用了"

同时操作系统预装,类似于安卓的 webview

dart 有在考虑改善 github.com/dart-lang/language/pull/3531/files

我推荐 core + webui 。这样 java 也好 python 也好,或者其他什么语言都是打包一个环境 然后该干的活后台干,前台交给浏览器。如果需要 UI 实现某些特性,单独用特定平台的 webview 技术来做维护

从用户角度来看,electron 就是一坨屎。v2er 也挺有意思的,app 占空间大就狂喷,轮到自己成为开发者时又不在乎大小了。

electron 太过笨重,实际上绝大多数应用都只需要一个单窗口,所以我更推荐 PWA 或者轻量级 web 桌面框架至于用户体验,我认为除了真正程序上的 benchmark ,更多与用户交互也是强相关的。最近在做一个开源项目, github.com/work7z/LafTools ,计划也是用轻量级 web 实现,曾经无数次想用 native UI ,但框架少库少,让我实在不敢赌

现在 Electron 支持移动端了吗?以前我记得是不支持的

作为用户反感 Electron.

在写 python 脚本调 chatgpt 接口的时候,想做一个简单的对话窗口。看了一下 pyqt,tk 文档,看着烦。直接用 pyqt 的 webview ,再写一个 jsbridge 让 浏览器 js 和 python 能够通信,就这么用着了。

我投 Tauri 一票

不都是套壳浏览器吗?

试试这个 github.com/mikke89/RmlUi

我对 flutter 本身没有什么负面看法,但是我觉得 Dart 是真的丑,我接受不了

写一个跨平台的 GUI 库需要的工作量太大了,所以要不用浏览器,要不用放弃跨平台吧。

这个问题没有最优解,只有适合和不适合自己或公司的技术栈,因为以上所以的技术栈都能完成对应需求,当然也有自己的优点和坑。对于 flutter 来说,桌面端的支持不并是很完善,比如多窗口等等都没有完善的支持,很多功能都是第三方插件支持的,而且,官方并将桌面的的优先级放到比较低的位置。所以如果采用 flutter 开发桌面端,必定会踩很多坑,不过这都不是什么大问题,一般都有解决方案,如果没有解决方案,自己也可以通过插件完善。自己之前尝试用 flutter 写写桌面端,感觉还行,参考: github.com/buf1024/hiqradio

开发推荐 electron 。虽然我正在写 electron 客户端,但是电脑上 electron 的客户端能不装我就不装

我差一点就上了 flutter 的船了,直到它的开发工具和 Chrome 绑定。

相比臃肿和 dart 而言,我选择臃肿,毕竟以后臃肿有可能会被集成至操作系统

我用 webview 自己封装

Qt ,看了半天好像没人用

除了苹果用户还有人介意 electron 的尺寸么,tb 级硬盘不是想装几个 chrome 装几个,32g 内存愿意开几个就开几个

这个很有趣呀,我倒觉得 UI 统一放在浏览器中挺好的

作为开发,我选 Electron ,作为用户,Electron 的应用我尽量不装

这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。就我个人来说,并不在用啥技术,老板给钱就行

这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。就我个人来说,并不在用意啥技术,老板给钱就行

不可否认 electron 等前端技术写客户端是一个大趋势,好多人不喜欢 electron 的原罪就是一个软件带一个 chromium 内核在硬盘上。很多人认为会有文件重复,但如果系统支持写时复制( Copy-on-Write ),相同的文件在底层只会保存一份。虽然可能内核版本不同,不同文件也有不少,但多少会让现状有所改善。MacOS 的 APFS 支持 cow ,反观 Windows 的 NTFS 不支持所以会占用大量存储空间,但 Mac 和 PC 的硬盘价格也差距悬殊...DISM++ 有个硬链接合并的功能可以合并重复文件,但它主要是针对系统做优化的。还是希望 Windows 能早日原生支持那些高级文件系统吧。(要是 Windows 12 能用上我就立马从 Windows 10 钉子户升级😶)现在好像只有一个社区开源的驱动 WinBtrfs 让 Windows 能用上支持 cow 和透明压缩的 btrfs 文件系统,但目前对系统盘使用 btrfs 文件系统的支持也不是很完善。

wails ,写了好几个工具了

话说 QT 为啥没人提啊,我们给桌面端推 Flutter ,结果被 QT 打败了……结论上是 flutter 在桌面端还是有几个挺致命的问题的,QT 大家都不选的原因是啥?

我近半年用得比较多的是 wails ,刚好最近写了篇关于基于 webview 的 app 框架的一些个人观点。打算过两天发 v 站上给大家多一个参考

没有我 electron ,那些 Linux 能有跨平台应用(狗头

作为用户,我很讨厌 electron ,能有其他非 electron 替代品的 app 都会优先考虑。我自己平时做些工具就 Avalonton 和 Qt 。.net 是可以不需要用户安装环境的,就是可执行文件大些,但是远比 electron 更小更优。

打错了,是 Avalonia

[ [译] macOS 上 Flutter Desktop 与 Electron 的性能对比]( juejin.cn/post/7018450473292136456)虽然比较老的测试了,但是 Electron 对比 flutter 的资源占用差距可能比一些人以为的还要大。

我的 PC 端 ui 开发推荐列表:1 、老电脑,配置低,推荐:Delphi 、Qt2 、轻量级应用,比如:数据编辑、Oa 应用等,推荐:C#、Qt 、electron (不熟,应该算 web 类的吧)3 、偏底层控制类应用,推荐:Qt最后,windows 平台推荐 C#,跨平台应用推荐 Qt (软硬通吃,横跨 windows 、linux 、mac 、android 、ios ,c++底座)客户端开发基本全包了。

在 windows 平台下使用.Net 开发软件还是比较舒服的,打包后已经把运行时包都含进去了,比较都是微软自己的东西,兼容性基本不是问题,无论 C#/VB.NET/VC++都行。

用 Electron 写的 Postman 性能跟渣一样,又慢又费内存又占空间,对比 Paw 秒开高下立判,mac 上的 Steam 也非常烂,一个游戏启动器就能占用内存 1.5G除了给开发者省事一无是处的东西。

QT 难啊,C++对比 ts\dart 难了多少,开发者数量也少至少一个量级吧?PyQt 倒是简单了,但是运行效率到打包产物尺寸,跟 Electron 差不多了。再来 QtWidgets 开发效率低,QtQuick 推广差资料少,Qt 项目打包部署解决依赖问题也比 Electron 和 flutter 这些麻烦,所以很多 Qt 项目适合定制系统和设备上运行,真想跨平台还得多花些精力。

在 windows 平台下使用.Net 开发软件还是比较舒服的,打包后已经把运行时包都含进去了,比较都是微软自己的东西,兼容性基本不是问题,无论 C#/VB.NET/VC++都行。

web 太成熟了,不选择 eletron 的原因可能是不喜欢糊 web 那套东西,喜欢更现代“gui”的开发体验

Qt + 1

#54 Windows 其实支持一个新的文件系统,叫 ReFS ,它也支持 CoW 的。不过它好像只有在 Pro 和 Server 版本的 Windows 才能用,而且一直没怎么推广,并不知道是什么原因。不过你有兴趣或许可以试试。但我不认为文件系统级的 CoW 能解决多份 Electron 内核存在硬盘上的问题,毕竟每个版本的差异还是挺大的,以及这需要文件系统实时或定期 dedup 才行,毕竟这些文件不是复制的。----------我作为用户倒不太在意 Electron 的硬盘占用问题,只是觉得它的内存占用率有点令人难受,以及讨厌写得差的 Electron 应用的迟钝、笨重感(特别是 Microsoft Teams )。开发方面,我正在学习 Qt ,并且也投它一票,它大概是目前各方面都比较平衡的一个选项了。不过未来我会期待 Compose Multiplatform.

此问题无解,我投大家自己熟悉的

这不是很正常的么,屁股决定脑袋,难道你是个圣人天天为别人着想

不好意思,我不是开发者,我是用户。

当你们还在争论的时候, 我已经用 javafx ( openjfx ) 交付客户端挣到钱了。推荐熟悉 java 的人用。

因为没类似软件用,我面向 chatgpt 写了个很简单的 lazarus 程序,找到了当年 delphi 的感觉,据说这货还能在 android 上用.

GLib/GTK + Vala(C# 原生版)写跨平台应用挺好的呀袋鼠数据库工具就是用 GLib/GTK + Vala 写出来的,它已经是一个和 GIMP / Inkscape 比肩的一线大项目了,欢迎各位考察这个技术栈。

www.datatable.online/zh/blog/001-why-choose-vala.html

卖菜的不吃自家菜我怀疑你们有些开发者 面向浏览器编程的软件 自己都不会用。

#2 这么一说,mac 上把网页保存为 app 的功能还挺有前瞻性的

wails 每个应用会在 c 盘生成一个程序名.exe 的文件夹搞的和病毒似的,这个有解决方法吗?

相反我投一个反票,electron 大大降低了产品的成功概率,因为现在的小白用户都学精了,会尽量避免选择 e 系全家桶作为一个 electron 用户,有些软件只有 electron 版本,不得不捏着鼻子用,包括 joplin 钉钉 vscode 等,除了这些必需软件,我不会安装任何 electron 开发的东西,因为 electron 到目前为止都存在卡死问题,没有任何一个团队能优化该问题所以在我看来 如果你用其他方案开发,可能只是节奏慢点,但用 electron 开发,基本就定了死刑了

我支持 Electron

开发我选 electron ,使用我选原生。

我咋没遇到这个问题,展开讲讲?

请教一个问题。vscode 优化的这么好,调教过的 electron 代码有没有可能贡献到 electron 上面?这样大家都能享受丝滑的 electron 了。

想多了,小白根本不知道你用啥做开发的好吧。只有那些数码圈小白才在意这个。

现在是 2024 年 不是 2014 年举个例子,某笔记软件更新为 electron 之后性能严重下滑,网上也有用户询问为什么突然变卡了,但这只是冰山一角,如果你有幸加入过他们的用户群,就会发现早有用户总结出了变卡的版本号,变卡的原因( electron ),这些人都不是专业开发者,但他们已经开始注意并分析这个问题了(说实话我刚看到的时候也很惊讶,小白用户居然也知道 electron 和原生的区别了)这些信息在老用户中间不断飞速传播,以至于不少老用户拒绝使用新版本-过了 2 3 年了还在坚守老版本如果开发者对“小白”的固有印象再不升级,迟早会被淘汰

口碑就是从不在乎开始败掉的

Linux 用户支持 electron ,但是 chrome 上游早点支持 wayland 输入法...

QT 的主要优势在于过滤了傻逼。大牛用 QT 搞得好,用 electron 搞得又快又好。不过话说回来,electron 的主要问题不是太占内存么,有事没事开 tm 一堆渲染进程。

web 的性能问题是不是可以,将核心处理用 C/C++来解决,同时还可以隐藏代码实现,两全齐美

即使是你用 electron 开发,但大多数普通用户根本不会知道你用什么开发。大多数时候,GUI 并不会要求性能。所以,我个人来说是支持 electron 的。

借楼问下,QT 有好用的 UI 库吗?自己不太会写 QSS (搞出来的太丑了)

最好是支持 C++ 的

建议 v 站搞个投票功能

不得不说,v 站用户好多见识少的,这么多楼了竟然没有推荐.NET 的,现在的.NET 的 GUI ,可以跨平台,并且 aot 编译,无需运行时,启动速度快,占用内存少

.net MAUI 呀,不仅支持 Windows Linux macOS ,还支持 android 和 iOS 。这是我用 MAUI 开发的项目,AI 超元域: github.com/win4r/AISuperDomain

web 在构建页面这一块,又快又好,所以不复杂的需求,我会选择 web ,使用 Tauri 打包一下。如果是对渲染性能、数据处理性能、系统底层交互、资源占用敏感的场景,就还是选择各平台个性化的方案了,但是往往开发速度就不像 web 页面那般快了

几十年来,web 一直都不是最优秀的 GUI 技术,但却是生命力最强的。

我会从 Tauri 和 Electron 之间二选一。简单 UI 选 Tauri 减少应用体积,复杂 UI 选 Electron 避免花时间在跨 Webview 。

Slack, Discord, Microsoft Teams, 1Password 都是 Electron ,是我 React ecosystem 用惯了也是首选 Electron 。