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

2023-07-08 09:57:15 +08:00
 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 就免了。这不是想学点新玩意吗😂

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

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

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

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

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

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


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

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

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

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

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

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

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

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

© 2021 V2EX