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

315 天前
 yuyue001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我自己得软件就是用这个得, win 和 mac 都可以
Nosub
315 天前
不建议 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