最近好多 GUI 之争,我来给 Electron 站一票,理性讨论

2024-01-05 10:27:29 +08:00
 Loxon

最近看到几篇类似的讨论: https://www.v2ex.com/t/1005711 https://www.v2ex.com/t/1005903

正好我也面临类似的问题,合理讨论下,先说明下需求:

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

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

24688 次点击
所在节点    程序员
138 条回复
zed1018
2024-01-05 12:22:55 +08:00
我对 flutter 本身没有什么负面看法,但是我觉得 Dart 是真的丑,我接受不了
xarthur
2024-01-05 12:24:16 +08:00
写一个跨平台的 GUI 库需要的工作量太大了,所以要不用浏览器,要不用放弃跨平台吧。
buf1024
2024-01-05 12:26:46 +08:00
这个问题没有最优解,只有适合和不适合自己或公司的技术栈,因为以上所以的技术栈都能完成对应需求,当然也有自己的优点和坑。对于 flutter 来说,桌面端的支持不并是很完善,比如多窗口等等都没有完善的支持,很多功能都是第三方插件支持的,而且,官方并将桌面的的优先级放到比较低的位置。所以如果采用 flutter 开发桌面端,必定会踩很多坑,不过这都不是什么大问题,一般都有解决方案,如果没有解决方案,自己也可以通过插件完善。

自己之前尝试用 flutter 写写桌面端,感觉还行,参考: https://github.com/buf1024/hiqradio
liuw666
2024-01-05 12:29:49 +08:00
开发推荐 electron 。虽然我正在写 electron 客户端,但是电脑上 electron 的客户端能不装我就不装
ChrisFreeMan
2024-01-05 12:31:26 +08:00
我差一点就上了 flutter 的船了,直到它的开发工具和 Chrome 绑定。
maxxfire
2024-01-05 12:51:30 +08:00
相比臃肿和 dart 而言,我选择臃肿,毕竟以后臃肿有可能会被集成至操作系统
R4rvZ6agNVWr56V0
2024-01-05 13:45:03 +08:00
我用 webview 自己封装
SmartTom
2024-01-05 13:45:24 +08:00
Qt ,看了半天好像没人用
murmur
2024-01-05 13:48:07 +08:00
除了苹果用户还有人介意 electron 的尺寸么,tb 级硬盘不是想装几个 chrome 装几个,32g 内存愿意开几个就开几个
jeevSong
2024-01-05 13:55:37 +08:00
@xausky 这个很有趣呀,我倒觉得 UI 统一放在浏览器中挺好的
remember5
2024-01-05 13:57:30 +08:00
作为开发,我选 Electron ,作为用户,Electron 的应用我尽量不装
duanxianze
2024-01-05 14:03:47 +08:00
这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。
就我个人来说,并不在用啥技术,老板给钱就行
duanxianze
2024-01-05 14:03:55 +08:00
这帖子很多人不要自顾自的代表用户,市场已经证明了大多数用户并不在乎多出那几百兆的空间,实际上的问题是很多人 Electron 用的太差了,导致卡,用 qt 之类的门槛高,排除了很多技术不行的程序员。
就我个人来说,并不在用意啥技术,老板给钱就行
bigtear
2024-01-05 14:14:26 +08:00
不可否认 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 文件系统的支持也不是很完善。
Norths
2024-01-05 14:19:37 +08:00
wails ,写了好几个工具了
lwlizhe
2024-01-05 14:26:49 +08:00
话说 QT 为啥没人提啊,我们给桌面端推 Flutter ,结果被 QT 打败了……结论上是 flutter 在桌面端还是有几个挺致命的问题的,QT 大家都不选的原因是啥?
huangliu
2024-01-05 14:26:49 +08:00
我近半年用得比较多的是 wails ,刚好最近写了篇关于基于 webview 的 app 框架的一些个人观点。打算过两天发 v 站上给大家多一个参考
renmu
2024-01-05 14:27:34 +08:00
没有我 electron ,那些 Linux 能有跨平台应用(狗头
ggvoking
2024-01-05 14:34:35 +08:00
作为用户,我很讨厌 electron ,能有其他非 electron 替代品的 app 都会优先考虑。我自己平时做些工具就 Avalonton 和 Qt 。.net 是可以不需要用户安装环境的,就是可执行文件大些,但是远比 electron 更小更优。
ggvoking
2024-01-05 14:35:47 +08:00
@ggvoking 打错了,是 Avalonia

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1006050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX