2024 年,桌面软件开发(不考虑移动端),推荐什么技术栈?
flutter 似乎不支持多窗口,pass ,
比如 QT/MAUI/Avalonia/JetPack Compose/,哪个容易上手?
基于 web 的技术,
Electron 项目太大,性能要求可能不行。
tauri 尝试了一下,rust 太难写业务太复杂了。
wails 怎么样?
electron 性能哪里不行了,不就是启动慢点么,浏览器的性能挺好的,尤其是 chrome ,比菜鸟写的桌面程序好多了,ui 多还炫酷
桌面软件开发 还是 QT 比较靠谱 wireshark , telegram , zoom 都是 QT 写的
javafx
wails 3.0 才有多窗口,目前似乎处于 beta 版本tauri 的多窗口似乎不支持 linux多窗口是硬需求的话,这些新框架的坑还挺多,不想踩坑的话以上似乎只有 qt 和 Electron 符合你的需求。
刚拿 electron 试了试手,,感觉很适合前端,
Avalonia 对非线性动画支持的很好,还支持 gpu interop ,还是在场唯一一个有 compositing renderer 架构的自绘 UI 框架,可以做到无论 UI 线程是否卡死都能流畅进行的隐式动画。配合 FluentAvaloniaUI 可以做出很漂亮的 fluent design 的 app 。另外它还支持 nativeaot 编译到机器码直接出二进制,aot 后可以做到双击后瞬间启动。
Blazor Maui+blazor 或者 avalonia+ blazor
说下原因,首先你提到业务,那基本上如果能用前端框架必然是最好的。又提到 eletron 太大和性能问题,对于 blazor 可以把耗时的逻辑放到 native 里面,页面注重展示。并且打包不大,webview2 另外算。但是如果你想支持 xp 那就算了。技术栈 c# blazor Javascript tailwindcss你可以参考下 github.com/rwecho/V2ex.Maui
愿意学习的话,还是 pyqt 靠谱,跨平台方便
cef+ts
www.hesudu.com/t/986341总结一下:aardioelectronpyqt
www.hesudu.com/t/1005903#reply122 www.hesudu.com/t/1006050#reply136
业务复杂的话,前端用 Electron ,C++用 Qt 。c#用 wpf/uwp 。业务不复杂的话,c/c++用 nanovg/imgui 都行。
QT ,唯一选择
人 vscode 怎么不卡(狗头
compose 还是前端的风格,和桌面不是很搭
可以试试同样基于 webview2 的 Neutralinojs neutralino.windhc.com/
Avalonia
都 2024 年,有什么不懂问 gpt 就行,前端和客户端技术,已经没有很大隔阂了。以前前端写太多,今年我也试试用纯 GPU 写本地客户端程序,也许会挺有意思。反正 gpt 是万能老师傅,一般不会翻车。
颜值第一,我推荐 electron
wpf
win32
我说 electron 开发臃肿,是因为我本人 Python 开发,前端技术比较菜,我觉得自己搞不定。VSCode 是不卡,可我也没微软那水平啊。
试了 Avalonia ,axaml 文件太大,拆分组件时传递参数总是失败。ChatGPT 也解决不了,现在除了 11 版,ChatGPT 好像还没学到。一方面感觉 ChatGPT 变笨了,另一方面,ChatGPT 做技术选型讨论的时候,它总是和稀泥,这也好,那也好。
这也算月经贴了。你要做什么东西,你团队的人都会什么技术你是一概不谈,既然这样的话直接 PyQt 吧
没人提 flutter?虽然不懂
python 就 QT
图啥呢 op 又不考虑移动端 多窗口支持也有问题 单纯桌面客户端技术选择足够纠结了...
推一下 qt/pyside 原因:名字好听
flutter 那屎语法太难学了
Avalonia
有大佬知道 QT 的界面怎么美化吗 我写的界面有点丑啊。
去找别人的 css style 抄上去或者交给美工
打包发布的时候,就各种打不开。
必然是 flutter 开发 1 年半 已经喜欢上了
别选了,electron 除了打包体积大点,开发体验和生态都是断层领先,根本不存在你说的性能问题。非得注重体积,就用 flutter ,但是 flutter desktop 也没什么正经团队在用,喜欢踩坑可以试试。Qt 和 WPF 就别看了,老登公司才用这些玩意儿,开发体验还停留在上个时代。
但凡用过原生开发, 就不想用 electron 这玩意了... electron 启动慢的一逼... 用 Avalonia 做了几个项目了... 从 electron, wpf 转到 Avalonia 的...
还是看需求,如果开发一个窗口套壳,将第三方 exe 包裹在自己写的应用里,这个需求 electron 就完全没办法做.
qt 或者 pyqt ,最近我把各种方案都测试了一遍。当然 electron 也不错,和 qt 生态位完全是错开的。qml 也是套了一个浏览器,虽然性能比 electron 高,但写起来肯定不如 react 之类的爽,编译慢,错误提示垃圾,关键还有学习成本,排除。
qtwidget 支持一些简单的 css
??那你自己的应用开一个 webview 不就可以了么,然后自己提供 native 接口
electron 做出来的东西怎么说呢,有一种黏糊糊的感觉,看着好像很 cool (寨味儿很冲),但总觉得哪里不舒服。
这还不是 ui 问题,好看的应用是要自己设计的,qq 音乐这些不还是 webview 套壳,只不过不是直接 electron ,改成 cef 了
Electron 是首选。别关心什么内存占用的问题。那不是你该关心的问题。除非涉及到 C++ 交互,否则 Electron 永远是不二之选。界面美观开发简单。没什么比 Electron 更合适的。然后其次是 Avalonia 。性能强悍内存占用低,可 AOT 所以也不需要什么 .NET 环境。打包好了到处都能用。尤其涉及到界面复杂或者带动效/3D/图表的情况下,Avalonia 基本上可以说是唯一选择。最后是 QT 。老牌 GUI 开发框架了。性能极其强悍,但是绑定 C++。对 C++ 熟悉的可以考虑。
推 flutter 的,挑明了说,完全的 kpi 导向,难用,难写,但是容易出 kpi ,别人不好接electron 是最适合的,国内用的也最广,ui 好设计,好学,会做网页就会做程序,各种 ui 库随便用如果看重底层就 cef ,都是 h5 套壳,看是壳有多重而已再看重底层就 qt ,wps ,davinci 这些都是 qt 做的,再头铁点,比如 affinity photo ,怀疑真的是双端自己写,一堆 c 和 wpf 的库
拆分 axaml 一般做法是分 template 出去放到资源字典里来使用。
如果是我来开发的话,我会优先考虑直接做成 Web 版(毕竟现在 Web 能调用的 API 也很多),如果真的本地调用特别多再考虑用 Electron
人家是期待討論的過程🥹你可能不太了解。這些決策類盡量不要交給 GPT ,還是要個人深入了解,沒深入了解過等同沒參與過開發過程。
如果我选择嵌套第三方 exe 肯定需要第三方 exe 的运行界面啊. 可能是需求不一样,我这边是将三维云流化,这种操作太多了
我很是推荐 tauri ,我的开源项目 github.com/work7z/LafTools 就计划用它来作为桌面端的支持。我这个项目是 go 写的,但为什么桌面端不用 wails 而是 tauri 呢?原因如下1 ,支持桌面呼出,这个貌似 wails.io 目前还做不到 2 ,软件体积小,这对于开箱即用的工具箱来说尤其重要,如果你想体积 30mb 以内,就用它!3 ,rust 逼格高。当然,我不想拉踩,只是我个人的角度来看.... 4 ,web 生态直接用起来!其实,很多人希望原生 ui ,无非就是太卡了或者不方便用。但其实还是用户体验跟程序设计的原因,用户只在乎颜值!功能!效率!其他内存占用多少之类的,很少会有人真的这么看
至于 rust 难度的问题,其实有了 gpt4 ,很多困难都会迎刃而解,再不济也有现成的 awesome-tauri 给你用关于 electron ,假如我要做面向大众的产品,那是肯定用的,无论是兼容性还是视觉统一性然后就我个人而言,我的产品用户都是专业人士,他们应该都会安装最新的浏览器,不太可能会用 ie11 了吧。。。
electron 啊,好写,好看,跨平台。除了占内存占硬盘。至于性能,js 性能挺强的,不过我不知道你对性能要求有多高
三围那你可以考虑 unity ,用游戏引擎做 3d 比自己开发简单多了
#21 文艺复兴是吧
大项目的话,后端业务功能较多,推荐 wails 。目前 wails 也支持多窗口(若是你觉得复杂可以窗内多 Dialog )。wails 打包最小体积也只有 10MB 左右(客户端运行只需要安装个 Edge 扩展即可)。另外 wails 是基于 golang 研发出来的,天生并发性能好,组件库都是源生代码。
Electron 启动慢,可能是初始化的时候启动慢,也可能是启动时同步加载了所有 node 的模块
avalonia 还能用 C# 美滋滋
electron 🤓不是什么好就用什么,而是我会什么就用什么,我只会 electron ,最近在用 electron 狠狠的写上位机跟底层通信,nodejs 直接 JavaScript 一把梭了
是要花点时间, 但肯定可以用 pyinstaller 打包得我自己得软件就是用这个得, win 和 mac 都可以
不建议 QT 和 WPF ,用 electron 或是 Java 的 swing 都可以,学习 c++的时间成本太高,c#客户端生态太差,flutter 不了解不评价,你就想想现在主流前端和后端用的啥,就可以做出选择了。
qt+go
pyqt 性能够用,开发方便快速
后排提醒 pyqt 是 gpl 协议
你性能要求很高? QQ 都用 electron 了,不要预设一些有的没的,我个人猜你是非企业级项目,性能要求完全够用了。(我为什么猜你是非企业级项目?因为你压根没提到 WPF ,看来是个人开发,喜欢用新技术的那种)不需要跨平台的话,win 直接选 webview2 ,比 electron 包体小
目前来看支持 qt 和 electron 的最多,我更熟悉 python 所以倾向于 qt ,但是感觉 qt 的界面要想做的好看,方便程度还是比 electron 差了一些
pyside6, 上手难度低 ,快速实现功能.
qt 最大问题就是没那么多 web 组件库,样式难看点,但一般工具软件也不用太在意很在意外观的建议还是用 web 那套当然了,qt 本身也有 webview 组件,可以做到 electron 一样的事
正好因为项目 GUI 界面全平台兼容需要,翻到历史贴有人对比过各种。最后我选择了 H2O WAVE (水波) wave.h2o.ai/docs/getting-startedH2O Wave 是一个软件堆栈,用于完全使用 Python 构建美观、低延迟、实时、基于浏览器的应用程序和仪表板,而无需使用 HTML 、Javascript 或 CSS 。借楼问问:以后长期用这个 widgets 组件开发 GUI 了,有人愿意做长久支持吗?
微信输入法目前就在用 Flutter desktop ,还有 360 的极连快传也在用,我最近搞了个仓库做了个 flutter desktop apps 清单 github.com/leanflutter/flutter-apps
还有人说“c#客户端生态太差”???
lazarus,跨平台,前提你得会 Free Pascal
其实 pywebview 也不错,nuitka 打包不到 10M ,不过没有 tauri 和 wails 成熟
QML FluentUI ,之前看到这个国人开发的库,颜值不错,不知道实际用起来怎么样
不知道选啥就选 Electron
嗯,确实设计做好了,其实都一样。只能说 electron 的产品基数大,所以体感千奇百怪了。
新版 qq 就行 electron 感觉还行
新版 qq 用的是 electron 还是 cef ?
在用 qt ,qml ,总结就是别用 qml ,别用 qml ,别用 qml ,谨慎选择 qt
也许是和 Web 生态比……
gpt 的知识库到 2024 了么?
想做一个图像处理相关的软件,推荐用什么开发?
桌面端个人不太推荐使用 Compose Multiplatform 。相比移动开发来说,只有可以继续用 kotlin 这一个优势,官方目前似乎没有提供一个比较完整的开发方案,路由/状态管理/基础的配置读写等等这些都依赖自己或第三方实现。目前用来写了一个小工具,功能可以实现,但过程感觉很费劲。
真实一场持久战
我准备先试试 electron 和 wails先做几个 app 玩具试试然后再考虑下一步electron 确实,除了体积大,启动不快,对于一个前端程序员,没有更合适的了
c#客户端生态的确差,你看过有几个互联网公司基于 c#开发客户端的例子,微软自己除外,做些简单的应用还好,你要要调用一些知名的第三方库,非常难受,比如 ffmpeg ,OpenCV ,sdl ,webrtc 这些。
WPF 套一个 Webview2 我目前是这么做的
比起现代化的桌面应用,我更倾向于在个人项目中写 Terminal GUI ,主打一个反差强烈
wxpython
#23 作为 python 圈 GUI 的大佬,bt 作者开 chia 这个坑的时候一言不合直接用了 electron......
互联网企业要求不高的开发客户端短平快,但不代表没有,而且你说的所谓的知名第三方,nuget 上都有,就算没有,c#调用 c++ dll 混编也比 electron 这些简单,不要对你不了解的领域随意贴标签
#26 推荐 Flutter
win 端还是 winui3 好用
再等等,Flutter 马上就要出多窗口了
微信输入法安装包都 132MB 了,很难不让人怀疑里面有没有塞个浏览器内核。
还好吧,我写了好多年 Android 原生了,写了 flutter 之后发现太方便了,现在不太愿意写原生了,嫌太啰嗦,很多认识的人也是这个感觉
或是你举几个例子,国内互联网公司有用 c#做桌面客户端,开发比较成功的案例,不要把别人不用,一律说成别人不懂,别人追求短平快,都是别人的原因。
預計什麼時候?
跟 h5 和 rn 比语法就一坨 shit ,真的,组件一堆属性我忍了,布局也要专门的组件套
哈哈哈,是有点,不过有了扩展函数后,用 style 这个库就很方便了,就跟链式调用一样,可以少写很多嵌套
哈哈哈哈
以前接触过的一个 Java 项目,实现了一种在我看来很新的做法: 代码生成的协议类,里面自带了一个未实现的 process 方法 public class Echo ext…
全文译自墙外文章“NoSQL Data Modeling Techniques”,译得不好,还请见谅。这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉。我的感觉是,关…
请教下大家,前端光速入门有什么好的材料吗? 能快速干活,不需要面试那种。 有什么前端框架比较能快速的实现多端的 app 。 主要考虑: android ios 小程序 能不用…