2023 年,有什么原生级性能的跨平台 UI 框架?
为刚进贴的朋友省流,补充一下各位已经提到的框架和优缺点(可能含个人暴论):
Unity:写软件,你认真的吗?😂
Slint:新兴 Rust/JS/C++ 绑定 UI 框架,生态有待发展;
Qt/PyQt:截至目前呼声最高的选项,最成熟的 C++ 解决方案。「Qt 运行速度比 wxWidget 肉眼可见的慢一丢丢,比如弹出菜单能明显感觉会比纯原生的迟滞一点点,但毕竟是 C++ 的,还是很快的,重点是它的 API 设计得很好,比 wxWidget 好一个时代,以及官方文档和示例非常好」;
wxWidgets:「运行速度更快,毕竟是真原生,但 API 跟 MFC 高度相似,就是上个世纪的风格,会觉得很落后难用」;
Delphi:半身进棺材了;
imgui:文档称「特别适合集成在游戏引擎(用于工具)、实时3D应用程序......以创建内容创建工具和可视化工具(相对于普通最终用户的用户界面)」;
Avalonia:也许是 Qt 以外的最优解之一,「采用 NativeAOT 编译即可达到双击立即启动的水平,并且不需要携带运行时」「感觉和用 Electron 应用差不多,笨重、软绵绵、不跟手」;
JUCE:声学领域专有 UI 框架,也许不怎么合适;
GTK4:桌面 Linux 上已成事实标准的 UI 框架,也许同样是 Qt 以外的最优解之一;
JavaFX+GraalVM:「可以编译成原生的程序,内存占用可以降低到几十兆,冷启动速度极快,我曾用 java 开发了一个类似 Bob 的软件,常驻后台无压力」;
MAUI:官方不支持 Linux;
SWT:类似 Java 版的 wxWidgets?
多嘴一句,以上没有轻视某个框架的意思,适合的就是最好的。
之前给某个省级项目做开发的时候,要求做移动客户端和网页端,工期给得很紧迫。因为熟悉 Flutter,立刻决定用 Flutter 一把梭全上了。了解 Flutter 的朋友应该知道 Flutter 的 Web 性能和兼容性和 React、Vue 等框架开发的原生 Web 应用相很拉垮,但那又如何呢?客户又不在意打开速度、白屏时间、软件体积和内存占用,都是统一安装到办公用机上的。按期交差了,他们开心我们也开心。
看到一些 V 友质疑我是「矫情病」「既要又要还要」「伪需求」,再多说两句。
需要明确的一点是,正如我上面所说的,这是个 Side Project,不是正经项目;我不是产品经理/外包方,各位也不是正在看需求的开发。对业余项目怎么想是自己的事,只要乐意一个人可以花几个月时间去学习 OpenGL 等底层图形库,写个渲染引擎、UI 框架,为什么无时无刻要抓着「市场需求」「开发效率」几个词不放呢?只不过在此基础上,希望找到一个偏好于以上各方面的权衡点罢了。