最近好多 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 是最适合的,有没有人提供下不同的思路见解?

24617 次点击
所在节点    程序员
138 条回复
Yjhenan
2024-01-05 11:14:42 +08:00
avalonia 用 aot 编译,不用再装 .net 了吧?其 hello world 的 aot 产物用压缩包压缩下,也只有 10 兆大小
wyl986
2024-01-05 11:20:28 +08:00
electron 有一个好处:就是把一些 electron 特有的 API (主要是调用硬件的)直接绑在 window 上,然后用 electron 套一个网页;更新的话直接更新网页,可以避免更新整个 electron ,而且还可以无感强制更新; electron 打包之后再小也有 50m+,用户量大了 cdn 流量也遭不住
icyalala
2024-01-05 11:24:10 +08:00
作为开发来说,我也推荐 Electron ,甚至 Flutter 我觉得也是可选的。
但从用户角度出发,我只想要原生的 App 。
davidjqq19
2024-01-05 11:32:10 +08:00
Electron 就是安装包大了点,写个 Hello World 都得几十 M ,其他没啥毛病。
sheeta
2024-01-05 11:34:16 +08:00
作为用户我不支持 electron ,我可不想在我的电脑上塞 N 多个 Chrome 。
debuggerx
2024-01-05 11:38:09 +08:00
nno
2024-01-05 11:38:29 +08:00
我投 egui
adoal
2024-01-05 11:41:42 +08:00
作为用户我只想用原生 app……但是想到我很少为优秀的原生 app 付钱,那么,作为雪花,我不是无辜的
leaflxh
2024-01-05 11:53:19 +08:00
我觉得 electron 能像 Java JRE 一样,出几个稳定版的浏览器包作为运行时就好

这下就像安卓的"快应用了"
leaflxh
2024-01-05 11:56:06 +08:00
@leaflxh

同时操作系统预装,类似于安卓的 webview
dbskcnc
2024-01-05 11:59:18 +08:00
loginv2
2024-01-05 12:03:08 +08:00
我推荐 core + webui 。这样 java 也好 python 也好,或者其他什么语言都是打包一个环境 然后该干的活后台干,前台交给浏览器。如果需要 UI 实现某些特性,单独用特定平台的 webview 技术来做维护
Worldispow
2024-01-05 12:03:28 +08:00
从用户角度来看,electron 就是一坨屎。

v2er 也挺有意思的,app 占空间大就狂喷,轮到自己成为开发者时又不在乎大小了。
lstz
2024-01-05 12:07:47 +08:00
electron 太过笨重,实际上绝大多数应用都只需要一个单窗口,所以我更推荐 PWA 或者轻量级 web 桌面框架

至于用户体验,我认为除了真正程序上的 benchmark ,更多与用户交互也是强相关的。

最近在做一个开源项目,https://github.com/work7z/LafTools ,计划也是用轻量级 web 实现,曾经无数次想用 native UI ,但框架少库少,让我实在不敢赌
pursuer
2024-01-05 12:09:24 +08:00
现在 Electron 支持移动端了吗?以前我记得是不支持的
Bingchunmoli
2024-01-05 12:10:46 +08:00
作为用户反感 Electron.
elevioux
2024-01-05 12:14:50 +08:00
在写 python 脚本调 chatgpt 接口的时候,想做一个简单的对话窗口。

看了一下 pyqt,tk 文档,看着烦。

直接用 pyqt 的 webview ,再写一个 jsbridge 让 浏览器 js 和 python 能够通信,就这么用着了。
superchijinpeng
2024-01-05 12:16:22 +08:00
我投 Tauri 一票
jones2000
2024-01-05 12:17:58 +08:00
不都是套壳浏览器吗?
hanxiV2EX
2024-01-05 12:21:15 +08:00

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

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

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

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

© 2021 V2EX