2024 年,桌面软件开发(不考虑移动端),推荐什么技术栈?

2024-01-24 11:47:16 +08:00
 yuyue001

flutter 似乎不支持多窗口,pass ,

比如 QT/MAUI/Avalonia/JetPack Compose/,哪个容易上手?

基于 web 的技术, Electron 项目太大,性能要求可能不行。 tauri 尝试了一下,rust 太难写业务太复杂了。 wails 怎么样?

25022 次点击
所在节点    程序员
113 条回复
murmur
2024-01-24 16:33:20 +08:00
@txzh007 ??那你自己的应用开一个 webview 不就可以了么,然后自己提供 native 接口
atpex
2024-01-24 16:33:45 +08:00
electron 做出来的东西怎么说呢,有一种黏糊糊的感觉,看着好像很 cool (寨味儿很冲),但总觉得哪里不舒服。
murmur
2024-01-24 16:35:34 +08:00
@atpex 这还不是 ui 问题,好看的应用是要自己设计的,qq 音乐这些不还是 webview 套壳,只不过不是直接 electron ,改成 cef 了
lujiaxing
2024-01-24 16:39:49 +08:00
Electron 是首选。
别关心什么内存占用的问题。那不是你该关心的问题。除非涉及到 C++ 交互,否则 Electron 永远是不二之选。界面美观开发简单。没什么比 Electron 更合适的。

然后其次是 Avalonia 。性能强悍内存占用低,可 AOT 所以也不需要什么 .NET 环境。打包好了到处都能用。尤其涉及到界面复杂或者带动效/3D/图表的情况下,Avalonia 基本上可以说是唯一选择。

最后是 QT 。老牌 GUI 开发框架了。性能极其强悍,但是绑定 C++。对 C++ 熟悉的可以考虑。
murmur
2024-01-24 16:40:40 +08:00
推 flutter 的,挑明了说,完全的 kpi 导向,难用,难写,但是容易出 kpi ,别人不好接

electron 是最适合的,国内用的也最广,ui 好设计,好学,会做网页就会做程序,各种 ui 库随便用

如果看重底层就 cef ,都是 h5 套壳,看是壳有多重而已

再看重底层就 qt ,wps ,davinci 这些都是 qt 做的,再头铁点,比如 affinity photo ,怀疑真的是双端自己写,一堆 c 和 wpf 的库
hez2010
2024-01-24 16:43:48 +08:00
@yuyue001 拆分 axaml 一般做法是分 template 出去放到资源字典里来使用。
dcsuibian
2024-01-24 17:00:12 +08:00
如果是我来开发的话,我会优先考虑直接做成 Web 版(毕竟现在 Web 能调用的 API 也很多),如果真的本地调用特别多再考虑用 Electron
cktsun
2024-01-24 17:11:52 +08:00
@tool2d 人家是期待討論的過程🥹
你可能不太了解。這些決策類盡量不要交給 GPT ,還是要個人深入了解,沒深入了解過等同沒參與過開發過程。
txzh007
2024-01-24 17:20:42 +08:00
@murmur 如果我选择嵌套第三方 exe 肯定需要第三方 exe 的运行界面啊. 可能是需求不一样,我这边是将三维云流化,这种操作太多了
lstz
2024-01-24 17:27:06 +08:00
我很是推荐 tauri ,我的开源项目 github.com/work7z/LafTools 就计划用它来作为桌面端的支持。

我这个项目是 go 写的,但为什么桌面端不用 wails 而是 tauri 呢?原因如下

1 ,支持桌面呼出,这个貌似 wails.io 目前还做不到
2 ,软件体积小,这对于开箱即用的工具箱来说尤其重要,如果你想体积 30mb 以内,就用它!
3 ,rust 逼格高。当然,我不想拉踩,只是我个人的角度来看....
4 ,web 生态直接用起来!

其实,很多人希望原生 ui ,无非就是太卡了或者不方便用。但其实还是用户体验跟程序设计的原因,用户只在乎颜值!功能!效率!

其他内存占用多少之类的,很少会有人真的这么看
lstz
2024-01-24 17:34:08 +08:00
至于 rust 难度的问题,其实有了 gpt4 ,很多困难都会迎刃而解,再不济也有现成的 awesome-tauri 给你用

关于 electron ,假如我要做面向大众的产品,那是肯定用的,无论是兼容性还是视觉统一性

然后就我个人而言,我的产品用户都是专业人士,他们应该都会安装最新的浏览器,不太可能会用 ie11 了吧。。。
yooomu
2024-01-24 17:39:34 +08:00
electron 啊,好写,好看,跨平台。除了占内存占硬盘。至于性能,js 性能挺强的,不过我不知道你对性能要求有多高
murmur
2024-01-24 17:43:58 +08:00
@txzh007 三围那你可以考虑 unity ,用游戏引擎做 3d 比自己开发简单多了
ljsh093
2024-01-24 17:45:22 +08:00
@lyusantu #21 文艺复兴是吧
leyoumake1997
2024-01-24 17:51:29 +08:00
大项目的话,后端业务功能较多,推荐 wails 。目前 wails 也支持多窗口(若是你觉得复杂可以窗内多 Dialog )。wails 打包最小体积也只有 10MB 左右(客户端运行只需要安装个 Edge 扩展即可)。另外 wails 是基于 golang 研发出来的,天生并发性能好,组件库都是源生代码。
duan602728596
2024-01-24 17:59:18 +08:00
Electron 启动慢,可能是初始化的时候启动慢,也可能是启动时同步加载了所有 node 的模块
rockxsj
2024-01-24 18:00:37 +08:00
avalonia 还能用 C# 美滋滋
wangtian2020
2024-01-24 18:00:43 +08:00
electron 🤓
不是什么好就用什么,而是我会什么就用什么,我只会 electron ,最近在用 electron 狠狠的写上位机跟底层通信,nodejs 直接 JavaScript 一把梭了
iorilu
2024-01-24 19:24:04 +08:00
@langhuishan 是要花点时间, 但肯定可以用 pyinstaller 打包得

我自己得软件就是用这个得, win 和 mac 都可以
Nosub
2024-01-24 19:37:24 +08:00
不建议 QT 和 WPF ,用 electron 或是 Java 的 swing 都可以,学习 c++的时间成本太高,c#客户端生态太差,flutter 不了解不评价,你就想想现在主流前端和后端用的啥,就可以做出选择了。

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

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

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

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

© 2021 V2EX