关于 GUI 开发

29 天前
 yanque

GUI 开发相关

桌面 GUI 开发

写 web 端界面写多了, 总感觉桌面的框架比如 QT, 用代码写起来非常麻烦.

主要是样式的调整吧, 比如 web 端可以直接用 chrome 的 devtools 调试样式, QT 这样的貌似就没有.

但是, 如果每个桌面产品都用 web 那套的话, 每一个都会套一个 electron, 一方面是打包会很大, 一方面用户也不喜欢.

业界貌似也没有一个统一多 electron 整合方案.

移动 GUI 开发

也简单找了下移动跨平台的框架. 最令人亲切的还是 React Native 吧. 但是实际使用才知道还是有差异, div 那些 web 标签没有了, 变成了 view 等.

另外类似桌面 F12 的 devtools 也比较难用.

======分割线======

不知道大家对上面的观点有啥看法

另外也想了解了各位使用的 GUI 技术栈与易用性

2612 次点击
所在节点    前端开发
25 条回复
yiqiao
29 天前
目前用的是 golang 的 wails 。https://wails.io/ 桌面三端打包方便
或者可以看看 Rust 的 tauri 。https://tauri.app/
当时用过 electron ,demo 打包出来就 180M 了,我直接 pass 了。
tsanie
29 天前
WinUI 或者 .NET MAUI/Xamarin.Forms 开发的话有 XAML Hot Reload
northluo
29 天前
@yiqiao golang 的一开始用的 fyne ,很多界面功能都不好做,包括列表下拉,二级列表展示点击啥的,后来用 pyqt 写的,还是 pyqt 实现起来方便很多,文档也够全
Vaspike
29 天前
我会推荐 kotlin compose desktop, 桌面端可以分发 win+ mac + linux(rpm 和 apt)
由 compose jetpack(安卓新一代官方框架)分化而来, 移植到手机端也比较可行
桌面端+ 移动端就变成了 Multiplatform
官网: https://www.jetbrains.com/compose-multiplatform/
想快速了解代码的模样可以看我之前的一篇博客,结尾有成品截图: https://www.jetbrains.com/compose-multiplatform/
Vaspike
29 天前
mioktiar56
29 天前
对 C++er 来说,Qt 已经是非常便捷了;

对于调试,不能用写脚本的思维去看待编译型语言;
Skifary
29 天前
QT 有一个 KDAB 出品的调试工具叫做 gammaray ,可以在运行时修改 QT 对象的属性
lisongeee
29 天前
虽然但是,kotlin compose desktop 和 electron 自带 chrome 一样

每一个都自带一个 jre ,你电脑里有多少应用就有多少个 jre ,并且 kotlin-native 目前处于不可用状态
shadowyue
29 天前
chromium 内核说不定会变成每个平台的必须装的依赖,这样就解决一切了
dimwoodxi27
29 天前
以前搞 javafx 感觉组件样式动画都挺丰富的,唯一缺点就是打包了,得带一个 jre ,而且和非常容易被解壳浏览源代码;再到后面用 go 的 fyne ,起码是直译的还能交叉编译,但组件库算是基础都有吧,样式啥的很局限性,编译大小通常为几 M 到几十 M ,总体感觉不如用 VB6 写的爽,编译才几百 KB ,但 VB6 追求美观也麻烦也不能像前两者一样跨平台
YUCOAT
29 天前
Qt 没有 devtools 调试界面确实有点方便。每当界面显示效果不符合我的预期的时候,我一般用 qss 给一些 QWidget 设置一个半透明的背景色的排查布局问题。

除此之外的问题解决起来还好,因为 IDE 有内置调试器,调试器功能一定程度上跟 devtools 的功能是重叠的。
tsanie
29 天前
@shadowyue #9 然后程序 A 依赖 >= 130.0.2849.52 ,程序 B 依赖 >= 120.0.6083.0 and < 121.0.6141.1 ,程序 C 依赖 <= 119.0.5998.1 /doge
iOCZS
29 天前
所有的问题都是因为不具备互操作性
corcre
29 天前
@shadowyue #9 欧盟: 你看这钱不就来了吗🐶
shadowyue
29 天前
@tsanie 只是拿 chromium 来画 UI 界面还好,就算有无数的历史包袱,html 和 css 的兼容性、稳定性已经很强了。
mainjzb
29 天前
qt 相当复古。所以现代通常会考虑 flutter 方案或者其他 webview 调用方案。介于前两者目前成熟度只有 90%,商业上通常还是更倾向于用 electron
CLMan
29 天前
个人只对桌面 GUI 跨平台有些了解。

wails 和 tauri 都是基于桌面系统自带的 webview ,优点是不需要像 electron 那样每个应用带一个运行时,但较老的 Windows 系统,得自带运行时的安装包或者下载器,或者让用户手动安装运行时。webview 的缺点就是性能较差,首屏加载有 0.5s~1s 的延迟。

如果对桌面 GUI 的性能有追求,那用 flutter 不错,磁盘占用、内存占用、性能都很优秀。

Compose Multiplatform 本质上就是 Java GUI ,试用过两个基于其开发的产品,内存占用和磁盘占用表现较差。
CassianVale
29 天前
目前我是使用的 pyside6 开发跨平台应用,我也用过 electron-vite 做开发,但后来感觉 electron 打出的包太大,毕竟里面有个 chromium 内核,优势就是对前端比较友好,你也可以试试 flutter ,all in one ,但是对 web 端的支出做的不是特别好,而且有学习成本,安卓端要会 Java/Kotlin 、Dart 之类的语言,你可以看下这个 up 主对于 flutter 的分析,我觉得讲的挺好: https://www.bilibili.com/video/BV1D8411o71k
skallz
29 天前
@CassianVale 其实我感觉 electron 的最大优势是对一些复杂效果或者边缘场景的兼容做的非常好,很多其他技术实现起来非常困难的效果对于前端技术栈来说就几行代码,比如 qq 就有一部分原因是原先部分效果难以实现才将 ui 层换到 electron
timethinker
29 天前
过渡到直接用游戏引擎来做,啥效果都能实现,还能转行做游戏

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

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

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

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

© 2021 V2EX