2023 年,有什么原生级性能的跨平台 UI 框架?

305 天前
 w568w

月经问题了,以下贴已读过但是没有找到合适的:

打算开个 Side Project 写着玩。准备趁机学点新东西,满足一下自己的软件洁癖……

对框架的需求主要有:

  1. 至少支持 Windows 、Linux (X11)、macOS 三个主流桌面平台
  2. 尽可能不需要携带体积大的捆绑库(如 CEF );
  3. 内存占用小,启动速度接近原生
  4. 支持丰富的文本排版格式(例如同行内图文混排等)。

已经尝试过但不合适的有:

  1. PWA:内存占用大,需要下载浏览器;
  2. Electron:内存占用大,需要携带近百 MB 的 CEF ;
  3. Tauri:内存占用大,冷启动时空屏时间极长;
  4. ReactNative:内存占用大,冷启动时空屏时间长;
  5. JavaFX / Compose Multiplatform:冷启动速度慢,需要携带 JRE ;
  6. Sciter:对 Linux 的支持基本放弃(声称支持 X11 ,实测官方 Demo 无法正常渲染);
  7. FLTK:Windows 下的中文字体渲染非常糟糕;
  8. OpenGL/Vulkan:这不算 UI 框架吧?

使用的语言无所谓,主流框架的基本多少会一点。

之前有 Flutter 和 Android 的开发经验,所以推荐 Flutter 就免了。这不是想学点新玩意吗😂

16615 次点击
所在节点    程序员
106 条回复
bunny189
305 天前
其实 unity 是不是也可以写
timicoder
305 天前
slint?前几天看到,还没去具体研究😁
murmur
305 天前
ReactNative 分包,开插件按需加载还空屏?
gzf6
305 天前
搞过 Android ,用这个上手比较快吧 https://www.jetbrains.com/zh-cn/lp/compose-multiplatform/
Magentaize
305 天前
qt
duke807
305 天前
wxwidgets

电子行业,特别是开源界,特别有名的一款画电路板的软件 kicad 就是用 wxwidgets 写的

使用系统原生 ui ( qt 不是系统原生 ui )
ql562482472
305 天前
你说别的冷启动慢我本来还信了 直到我看到你说 JavaFX 冷启动慢 这个我真写过 然后我再看你上面说的感觉一点真实性都没有了
visli
305 天前
那你只能把 Delphi 从棺材里唤起来,哈哈哈哈
everyx
305 天前
[Avalonia UI]( https://avaloniaui.net/),知道它是因为用了 Lunacy ,应该是 Linux 下唯一原生的类 Figma 的图形设计工具了,强大 <amp-youtube data-videoid="EB-7vLwBVmg" layout="responsive" width="480" height="270"></amp-youtube>
lisongeee
305 天前
如果 Compose Multiplatform 后续支持编译到 kotlin native , 则打包的时候无需携带 jvm
w568w
305 天前
@bunny189 这怕是不太适合写软件吧?哈哈

@timicoder
@duke807
@everyx
感谢,稍后了解一下

@murmur 这个确实不太了解。能介绍一下文档位置吗?

@ql562482472 我自己确实没直接写过 JavaFX ,不过用过很多 JavaFX 写的小工具,你可以认为是刻板印象吧😂


@lisongeee 我对 KMM 还是比较看好的,可惜生态还不行。
zero47
305 天前
看到 OP 如此折腾还是没找到心仪的解决方案, 后端的我还是去啃 flutter 算了
w568w
305 天前
@zero47 #12 Flutter 确实是目前跨平台最优解。可惜小问题太多,GitHub 上的 issue 堆了不知道多少,每个版本都在猛做小修小补的工作
szzhiyang
305 天前
wxWidgets
chinuno
305 天前
桌面平台那你看看 imgui 怎么样,速度肯定比你列的其他框架快
hez2010
305 天前
Avalonia 11.0: https://github.com/AvaloniaUI/Avalonia

文档: https://avaloniaui.net/GettingStarted

对于你说的条件全部满足,写完之后采用 NativeAOT 编译即可达到双击立即启动的水平,并且不需要携带运行时。不过注意其中 macOS arm64 架构的 NativeAOT 需要用 .NET 8 的 sdk 。

像 Unity 、JetBrains 、GitHub 之类的厂商也都在用 Avalonia 。
DTCPSS
305 天前
Avalonia + AOT 编译
chendadaover
305 天前
虽然但是, 楼主说的不就是 Flutter 吗? 各方面来讲的话, 我还没发现有能跟 Flutter 打的
dandycheung
305 天前
我给你推荐个冷门一点的框架吧:JUCE 。
loading
305 天前
Dephi ,确实厉害。

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

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

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

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

© 2021 V2EX