多端 GUI 真的没有银弹吗

4 天前
 Leon6868

关注多端 GUI 解决方案将近十年了。

十年来,像 RN 、Flutter 这样的自绘 UI 不少,大多都是昙花一现。

当前无论做什么应用,一旦涉及到多端,最终都会回到 Web 技术栈。但是 Web 也没有真正通用的标准。一些美好的规范,像 PWA ,早已做土;反而 Cordava 倒是在不温不火地发展。

唯一能满足『 Write once, run anywhere 』的只有 Electron 等 CEF 框架或者近几年兴起的 Tauri 等 Webview 框架,赋予 Javascript 原生能力,即兼顾开发速度,也有充实的生态。

很好奇,图形界面出现四十多年了,Web 时代也有快二十年了,手机也诞生十五年了,但是为什么 GUI 还没有大一统的解决方案?

GUI 真的没有银弹吗?

9895 次点击
所在节点    程序员
118 条回复
hwdq0012
4 天前
@alleluya #60 不清楚, 我最近一个月才开始玩 rn + c++的方案,还只是周末玩, 不过看提交时间,rn for windows / mac 确实有 6 7 年往上的时间了
minami
4 天前
没有。
为什么要执着于大一统?
hcy
4 天前
idea 插件开发用什么好点 ?界面比较复杂,还是啃 Swing 么?
Yjhenan
4 天前
@Leon6868 #20 Flutter 略有耳闻,但是这是专属于 Dart 的玩意,并不算真正的通用
xinyu391
4 天前
永远不会有大一统方案,技术都是在不断迭代,
只会一个技术出现,另一个倒下。
当然也有技术会持续存在(比如 Qt ),但永远不会是大一统。
不仅是因为 OS 层就有很多,Language 层更是层出不穷。
DefoliationM
4 天前
有的,不是有很多人吹 kotlin 的 kmp 和 compose 吗,那个可能满足你的要求。
janus77
4 天前
你看哪个东西有银弹的,web 端自己都是不断变化的,一开始 jquery ,后面 ARV 三分天下,再后面各种框架遍地开花,你 web 端自己就高贵了?
charlie21
4 天前
GUI 可以分成 retained 和 immediate 模式 - Google Search 我找到了文章
保留模式与即时模式- Win32 apps
https://learn.microsoft.com/zh-cn/windows/win32/learnwin32/retained-mode-versus-immediate-mode

这篇文章谈论了 Graphics APIs, 而非具体的框架:
"图形 API 可以分为 保留模式 API 和 即时模式 API 。Direct2D 是即时模式 API 。Windows Presentation Foundation ( WPF )是保留模式 API 的示例。"
原文 Graphics APIs can be divided into retained-mode APIs and immediate-mode APIs. Direct2D is an immediate-mode API. Windows Presentation Foundation (WPF) is an example of a retained-mode API.

这里我可以类比:
Skia 就是 Direct2D 这种 graphic engine.
任何你可以想到的 GUI framework 就是 WPF 等 GUI framework. 它是基于 Skia 之上的

则在你寻找具体的框平台框架的时候,你希望找到的是 GUI framework, 此时你并不在乎 graphic engine (你并不在乎一个 GUI framework 底层在用什么 graphic engine).
所以 “分成 retained 和 immediate 模式” 是无法帮助找到一个跨平台 GUI framework 的
dandycheung
4 天前
同一个 GUI 框架,在不同平台上的评价主要分两个层面:一、可不可用;二、易不易用。这两者又分别面临使用者和创建者两种目标群体。达到一相对容易,达到二比较难搞。
dosmlp
4 天前
桌面端 qtquick 基本可以统一了
yh7gdiaYW
4 天前
@Leon6868 这是因为游戏没有特别强的 GUI 框架需求,不代表游戏引擎不是终极解决方案,事实上只有游戏才能做到多端 100%的一致
justdoit123
3 天前
一直值得深思的话题 。

我妄言,这其中有各平台圈地垄断的原因,也有 web 表现力、性能不足的原因。
MacsedProtoss
3 天前
pc 的话 其实 electron 不是也挺够用了吗 flutter 勉强也能用吧
现在其实移动端才是真正的头大,受限于性能和功耗的问题,flutter 其实大点的项目就不好用,至于 electron 嘛反正也跑不了
而且现在 iOS26 整的这一波大的,自绘制的应该全部集体升天了
Torpedo
3 天前
@Leon6868 #13 早些年,移动端的 webview 各种兼容性问题。同时移动端手机性能弱,跑 webview 性能瓶颈感受明显。
除了性能,客户端能获得的权限,能力远比 webview 强太多 。
最后,移动端毕竟是热门方向,webview 等多端方案肯定不如各端各自原生开发一遍。热门就可以不考虑成本
justdoit123
3 天前
@minami 执着于大一统的原因在于现在的 app 开发成本高了。适配不动了。
dyexlzc
3 天前
拿个跨平台游戏引擎写 app 就行了,人家各个平台包括 ps 都给你支持
问题是有没有这个必要,什么业务场景需要这样,带来的成本收益是多少(如果老板极致要求那就没话说)
nightlight9
3 天前
kotlin multiplatform 怎么样?有人尝试过吗
anivie
3 天前
@Leon6868 #39 它们目前的主要场景是为嵌入式工作的,但是本身没有为嵌入式进行什么特异性设计,是原生多端的
这个框架和 rust 的其它 GUI 都不一样,其它 GUI 是 rust 的 dsl ,这个框架是一门新的语言专门拿来做 UI ,和 rust 本身没有强绑定
bluearc
3 天前
分为移动端和桌面端,不强求一个框架囊括所有,那么还是有解决方案的,比如桌面端的 qt ,移动端 flutter 和 rn
minami
3 天前
@justdoit123 真大一统了,你的可替代性就拉满了,议价权就跌到底了,别盼着这个

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

https://ex.noerr.eu.org/t/1142560

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

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

© 2021 V2EX