最近看到几篇类似的讨论: https://www.v2ex.com/t/1005711 https://www.v2ex.com/t/1005903
正好我也面临类似的问题,合理讨论下,先说明下需求:
基于以上需求,感觉 Electron 是最适合的,有没有人提供下不同的思路见解?
1
shuax 321 天前 29
我投 flutter 一票
|
2
xausky 321 天前
https://webui.me/ 这个方案挺好的,唯一的问题是浏览器窗口归属浏览器应用,而不是自己这个应用
|
3
sunjiayao 321 天前
flutter 是不是也能开发桌面应用
|
4
debuggerx 321 天前 2
我投 flutter 一票
|
7
ramoudev 321 天前
Electron 开发,多窗口多进程交互麻烦的要死
|
8
nielinjie 321 天前 1
kmp ,有喜欢的没?
|
9
clue 321 天前 5
我认为未来是 web 的, 大统一 UI 标准, 迄今为止最全面用的人最多的
举个类似的例子, 以前在 nodejs 兴起的时候, 因为 js 程序员的受众巨大, 导致能被 nodejs 重写的插件几乎都被重写了 而现在也有这个趋势, 比如开发代码连接蓝牙比较繁琐, 在 nodejs 下使用的是 noble 这个库, 而 w3c bluetooth api 标准发布后, 没多久社区就有人将它包装为标准 api , 使得 nodejs 开发可以与 web 对齐 |
11
thinkm 321 天前
flutter 多线程支持太拉了,要不然我也选 flutter
|
12
qinjiang 321 天前
支持 electron
|
13
blankmiss 321 天前 1
不支持 electron ,不想要多个浏览器 只要一个就够了
|
15
oldManNewThought 321 天前 via Android
桌面端,我选 tauri
|
16
ysc3839 321 天前 via Android 2
我也推荐 Electron ,但是有的人就是纠结文件大小
|
17
yolee599 321 天前 4
我投 Qt 一票,wxWidgets 一票
|
18
Knights 321 天前
支持 electron
|
19
mxT52CRuqR6o5 321 天前
我也是看好 web 类的方案,但不知道会不会有比 electron 更优秀的框架
|
20
Mogugugugu 321 天前 2
我选 electron ,因为技术栈匹配度高,但是我投 Compose Multiplatform 一票,没什么,单纯希望他们打起来。
|
21
Yjhenan 321 天前 2
avalonia 用 aot 编译,不用再装 .net 了吧?其 hello world 的 aot 产物用压缩包压缩下,也只有 10 兆大小
|
22
wyl986 321 天前 2
electron 有一个好处:就是把一些 electron 特有的 API (主要是调用硬件的)直接绑在 window 上,然后用 electron 套一个网页;更新的话直接更新网页,可以避免更新整个 electron ,而且还可以无感强制更新; electron 打包之后再小也有 50m+,用户量大了 cdn 流量也遭不住
|
23
icyalala 321 天前 7
作为开发来说,我也推荐 Electron ,甚至 Flutter 我觉得也是可选的。
但从用户角度出发,我只想要原生的 App 。 |
24
davidjqq19 321 天前
Electron 就是安装包大了点,写个 Hello World 都得几十 M ,其他没啥毛病。
|
25
sheeta 321 天前 2
作为用户我不支持 electron ,我可不想在我的电脑上塞 N 多个 Chrome 。
|
26
debuggerx 321 天前 1
|
27
nno 321 天前
我投 egui
|
28
adoal 321 天前 2
作为用户我只想用原生 app……但是想到我很少为优秀的原生 app 付钱,那么,作为雪花,我不是无辜的
|
29
leaflxh 321 天前
我觉得 electron 能像 Java JRE 一样,出几个稳定版的浏览器包作为运行时就好
这下就像安卓的"快应用了" |
31
dbskcnc 321 天前 1
|
32
loginv2 321 天前
我推荐 core + webui 。这样 java 也好 python 也好,或者其他什么语言都是打包一个环境 然后该干的活后台干,前台交给浏览器。如果需要 UI 实现某些特性,单独用特定平台的 webview 技术来做维护
|
33
Worldispow 321 天前 via Android 20
从用户角度来看,electron 就是一坨屎。
v2er 也挺有意思的,app 占空间大就狂喷,轮到自己成为开发者时又不在乎大小了。 |
34
lstz 321 天前 via iPhone
electron 太过笨重,实际上绝大多数应用都只需要一个单窗口,所以我更推荐 PWA 或者轻量级 web 桌面框架
至于用户体验,我认为除了真正程序上的 benchmark ,更多与用户交互也是强相关的。 最近在做一个开源项目,https://github.com/work7z/LafTools ,计划也是用轻量级 web 实现,曾经无数次想用 native UI ,但框架少库少,让我实在不敢赌 |
35
pursuer 321 天前
现在 Electron 支持移动端了吗?以前我记得是不支持的
|
36
Bingchunmoli 321 天前 via Android 1
作为用户反感 Electron.
|
37
elevioux 321 天前
在写 python 脚本调 chatgpt 接口的时候,想做一个简单的对话窗口。
看了一下 pyqt,tk 文档,看着烦。 直接用 pyqt 的 webview ,再写一个 jsbridge 让 浏览器 js 和 python 能够通信,就这么用着了。 |
38
superchijinpeng 321 天前
我投 Tauri 一票
|
39
jones2000 321 天前
不都是套壳浏览器吗?
|
40
hanxiV2EX 321 天前 via Android
|
41
zed1018 321 天前
我对 flutter 本身没有什么负面看法,但是我觉得 Dart 是真的丑,我接受不了
|
42
xarthur 321 天前 via iPhone
写一个跨平台的 GUI 库需要的工作量太大了,所以要不用浏览器,要不用放弃跨平台吧。
|
43
buf1024 321 天前
这个问题没有最优解,只有适合和不适合自己或公司的技术栈,因为以上所以的技术栈都能完成对应需求,当然也有自己的优点和坑。对于 flutter 来说,桌面端的支持不并是很完善,比如多窗口等等都没有完善的支持,很多功能都是第三方插件支持的,而且,官方并将桌面的的优先级放到比较低的位置。所以如果采用 flutter 开发桌面端,必定会踩很多坑,不过这都不是什么大问题,一般都有解决方案,如果没有解决方案,自己也可以通过插件完善。
自己之前尝试用 flutter 写写桌面端,感觉还行,参考: https://github.com/buf1024/hiqradio |
44
liuw666 321 天前 via iPhone
开发推荐 electron 。虽然我正在写 electron 客户端,但是电脑上 electron 的客户端能不装我就不装
|
45
ChrisFreeMan 321 天前
我差一点就上了 flutter 的船了,直到它的开发工具和 Chrome 绑定。
|
46
maxxfire 321 天前
相比臃肿和 dart 而言,我选择臃肿,毕竟以后臃肿有可能会被集成至操作系统
|
47
GeekGao 321 天前
我用 webview 自己封装
|
48
SmartTom 321 天前 1
Qt ,看了半天好像没人用
|
49
murmur 321 天前 2
除了苹果用户还有人介意 electron 的尺寸么,tb 级硬盘不是想装几个 chrome 装几个,32g 内存愿意开几个就开几个
|
51
remember5 321 天前
作为开发,我选 Electron ,作为用户,Electron 的应用我尽量不装
|
52
duanxianze 321 天前 9
这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。
就我个人来说,并不在用啥技术,老板给钱就行 |
53
duanxianze 321 天前
这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。
就我个人来说,并不在用意啥技术,老板给钱就行 |
54
bigtear 321 天前
不可否认 electron 等前端技术写客户端是一个大趋势,
好多人不喜欢 electron 的原罪就是一个软件带一个 chromium 内核在硬盘上。 很多人认为会有文件重复,但如果系统支持写时复制( Copy-on-Write ),相同的文件在底层只会保存一份。 虽然可能内核版本不同,不同文件也有不少,但多少会让现状有所改善。 MacOS 的 APFS 支持 cow ,反观 Windows 的 NTFS 不支持所以会占用大量存储空间, 但 Mac 和 PC 的硬盘价格也差距悬殊... DISM++ 有个硬链接合并的功能可以合并重复文件,但它主要是针对系统做优化的。 还是希望 Windows 能早日原生支持那些高级文件系统吧。 (要是 Windows 12 能用上我就立马从 Windows 10 钉子户升级😶) 现在好像只有一个社区开源的驱动 [WinBtrfs]( https://github.com/maharmstone/btrfs) 让 Windows 能用上支持 cow 和透明压缩的 btrfs 文件系统,但目前对系统盘使用 btrfs 文件系统的支持也不是很完善。 |
55
Norths 321 天前
wails ,写了好几个工具了
|
56
lwlizhe 321 天前
话说 QT 为啥没人提啊,我们给桌面端推 Flutter ,结果被 QT 打败了……结论上是 flutter 在桌面端还是有几个挺致命的问题的,QT 大家都不选的原因是啥?
|
57
huangliu 321 天前
我近半年用得比较多的是 wails ,刚好最近写了篇关于基于 webview 的 app 框架的一些个人观点。打算过两天发 v 站上给大家多一个参考
|
58
renmu 321 天前 via Android
没有我 electron ,那些 Linux 能有跨平台应用(狗头
|
59
ggvoking 321 天前
作为用户,我很讨厌 electron ,能有其他非 electron 替代品的 app 都会优先考虑。我自己平时做些工具就 Avalonton 和 Qt 。.net 是可以不需要用户安装环境的,就是可执行文件大些,但是远比 electron 更小更优。
|
61
debuggerx 321 天前
[ [译] macOS 上 Flutter Desktop 与 Electron 的性能对比]( https://juejin.cn/post/7018450473292136456)
虽然比较老的测试了,但是 Electron 对比 flutter 的资源占用差距可能比一些人以为的还要大。 |
62
wjd2002 321 天前
我的 PC 端 ui 开发推荐列表:
1 、老电脑,配置低,推荐:Delphi 、Qt 2 、轻量级应用,比如:数据编辑、Oa 应用等,推荐:C#、Qt 、electron (不熟,应该算 web 类的吧) 3 、偏底层控制类应用,推荐:Qt 最后,windows 平台推荐 C#,跨平台应用推荐 Qt (软硬通吃,横跨 windows 、linux 、mac 、android 、ios ,c++底座)客户端开发基本全包了。 |
63
wjd2002 321 天前
在 windows 平台下使用.Net 开发软件还是比较舒服的,打包后已经把运行时包都含进去了,比较都是微软自己的东西,兼容性基本不是问题,无论 C#/VB.NET/VC++都行。
|
64
Phishion 321 天前
用 Electron 写的 Postman 性能跟渣一样,又慢又费内存又占空间,对比 Paw 秒开高下立判,mac 上的 Steam 也非常烂,一个游戏启动器就能占用内存 1.5G
除了给开发者省事一无是处的东西。 |
65
debuggerx 321 天前 1
@lwlizhe QT 难啊,C++对比 ts\dart 难了多少,开发者数量也少至少一个量级吧?
PyQt 倒是简单了,但是运行效率到打包产物尺寸,跟 Electron 差不多了。 再来 QtWidgets 开发效率低,QtQuick 推广差资料少,Qt 项目打包部署解决依赖问题也比 Electron 和 flutter 这些麻烦,所以很多 Qt 项目适合定制系统和设备上运行,真想跨平台还得多花些精力。 |
66
wjd2002 321 天前
|
67
PTLin 321 天前
web 太成熟了,不选择 eletron 的原因可能是不喜欢糊 web 那套东西,喜欢更现代“gui”的开发体验
|
68
thomas15425 321 天前
Qt + 1
|
69
mgrddsj 321 天前 via Android
@bigtear #54 Windows 其实支持一个新的文件系统,叫 ReFS ,它也支持 CoW 的。不过它好像只有在 Pro 和 Server 版本的 Windows 才能用,而且一直没怎么推广,并不知道是什么原因。不过你有兴趣或许可以试试。
但我不认为文件系统级的 CoW 能解决多份 Electron 内核存在硬盘上的问题,毕竟每个版本的差异还是挺大的,以及这需要文件系统实时或定期 dedup 才行,毕竟这些文件不是复制的。 ---------- 我作为用户倒不太在意 Electron 的硬盘占用问题,只是觉得它的内存占用率有点令人难受,以及讨厌写得差的 Electron 应用的迟钝、笨重感(特别是 Microsoft Teams )。 开发方面,我正在学习 Qt ,并且也投它一票,它大概是目前各方面都比较平衡的一个选项了。不过未来我会期待 Compose Multiplatform. |
70
tinybug 321 天前
此问题无解,我投大家自己熟悉的
|
71
zhch602 321 天前
@Worldispow 这不是很正常的么,屁股决定脑袋,难道你是个圣人天天为别人着想
|
72
Worldispow 321 天前 via Android
@zhch602 不好意思,我不是开发者,我是用户。
|
73
stinkytofu 321 天前
当你们还在争论的时候, 我已经用 javafx ( openjfx ) 交付客户端挣到钱了。推荐熟悉 java 的人用。
|
74
EngAPI 321 天前
因为没类似软件用,我面向 chatgpt 写了个很简单的 lazarus 程序,找到了当年 delphi 的感觉,据说这货还能在 android 上用.
|
75
andytao 321 天前
GLib/GTK + Vala(C# 原生版)写跨平台应用挺好的呀
袋鼠数据库工具就是用 GLib/GTK + Vala 写出来的,它已经是一个和 GIMP / Inkscape 比肩的一线大项目了,欢迎各位考察这个技术栈。 |
76
andytao 321 天前
https://www.datatable.online/zh/blog/001-why-choose-vala.html
|
77
miaomiao888 321 天前
卖菜的不吃自家菜
我怀疑你们有些开发者 面向浏览器编程的软件 自己都不会用。 |
79
langhuishan 321 天前
@Norths wails 每个应用会在 c 盘生成一个程序名.exe 的文件夹搞的和病毒似的,这个有解决方法吗?
|
80
rekulas 321 天前 1
相反我投一个反票,electron 大大降低了产品的成功概率,因为现在的小白用户都学精了,会尽量避免选择 e 系全家桶
作为一个 electron 用户,有些软件只有 electron 版本,不得不捏着鼻子用,包括 joplin 钉钉 vscode 等,除了这些必需软件,我不会安装任何 electron 开发的东西,因为 electron 到目前为止都存在卡死问题,没有任何一个团队能优化该问题 所以在我看来 如果你用其他方案开发,可能只是节奏慢点,但用 electron 开发,基本就定了死刑了 |
81
cheneydog 321 天前
我支持 Electron
|
82
wangxiang 321 天前
开发我选 electron ,使用我选原生。
|
83
nowgoo 321 天前
@langhuishan 我咋没遇到这个问题,展开讲讲?
|
84
winson030 321 天前
请教一个问题。
vscode 优化的这么好,调教过的 electron 代码有没有可能贡献到 electron 上面? 这样大家都能享受丝滑的 electron 了。 |
86
rekulas 321 天前
@acctv2 现在是 2024 年 不是 2014 年
举个例子,某笔记软件更新为 electron 之后性能严重下滑,网上也有用户询问为什么突然变卡了,但这只是冰山一角,如果你有幸加入过他们的用户群,就会发现早有用户总结出了变卡的版本号,变卡的原因( electron ),这些人都不是专业开发者,但他们已经开始注意并分析这个问题了(说实话我刚看到的时候也很惊讶,小白用户居然也知道 electron 和原生的区别了) 这些信息在老用户中间不断飞速传播,以至于不少老用户拒绝使用新版本-过了 2 3 年了还在坚守老版本 如果开发者对“小白”的固有印象再不升级,迟早会被淘汰 |
88
Maboroshii 321 天前
Linux 用户支持 electron ,但是 chrome 上游早点支持 wayland 输入法...
|
89
whileFalse 321 天前 via Android
QT 的主要优势在于过滤了傻逼。
大牛用 QT 搞得好,用 electron 搞得又快又好。 不过话说回来,electron 的主要问题不是太占内存么,有事没事开 tm 一堆渲染进程。 |
91
onice 321 天前 1
即使是你用 electron 开发,但大多数普通用户根本不会知道你用什么开发。
大多数时候,GUI 并不会要求性能。所以,我个人来说是支持 electron 的。 |
92
Betsy 321 天前 via iPhone
借楼问下,QT 有好用的 UI 库吗?自己不太会写 QSS (搞出来的太丑了)
|
94
KleinP 321 天前
建议 v 站搞个投票功能
|
95
nikenidage1 321 天前
不得不说,v 站用户好多见识少的,这么多楼了竟然没有推荐.NET 的,现在的.NET 的 GUI ,可以跨平台,并且 aot 编译,无需运行时,启动速度快,占用内存少
|
96
mustwin 321 天前
.net MAUI 呀,不仅支持 Windows Linux macOS ,还支持 android 和 iOS 。
这是我用 MAUI 开发的项目,AI 超元域: https://github.com/win4r/AISuperDomain |
97
ShuWei 320 天前
web 在构建页面这一块,又快又好,所以不复杂的需求,我会选择 web ,使用 Tauri 打包一下。如果是对渲染性能、数据处理性能、系统底层交互、资源占用敏感的场景,就还是选择各平台个性化的方案了,但是往往开发速度就不像 web 页面那般快了
|
98
jsq2627 320 天前
几十年来,web 一直都不是最优秀的 GUI 技术,但却是生命力最强的。
|
99
IvanLi127 320 天前 via Android
我会从 Tauri 和 Electron 之间二选一。简单 UI 选 Tauri 减少应用体积,复杂 UI 选 Electron 避免花时间在跨 Webview 。
|
100
Perry 320 天前 via iPhone
Slack, Discord, Microsoft Teams, 1Password 都是 Electron ,是我 React ecosystem 用惯了也是首选 Electron 。
|