V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Leon6868
V2EX  ›  程序员

多端 GUI 真的没有银弹吗

  •  
  •   Leon6868 · 3 天前 · 9452 次点击

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

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

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

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

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

    GUI 真的没有银弹吗?

    118 条回复    2025-07-05 20:43:23 +08:00
    1  2  
    Daming
        101
    Daming  
       2 天前
    Avalonia ,不比 shit 一般的套壳 chrome 好?
    skallz
        102
    skallz  
       2 天前   ❤️ 1
    @Torpedo 这点我就很佩服拼夕夕,拼夕夕实际上也是混开,用了大量的 webview ,这个已经有很多人解析过了,但是人家做到的流畅程度真不像是一个混开应用,像是纯原生,目前都不知道这么牛逼的优化是怎么做到的,他们技术团队也没开源。。。
    agagega
        103
    agagega  
       2 天前
    同一套代码跑不同平台的最优解就是 Web 。

    如果不喜欢 Web ,也意味着最好别希望用同一套代码。各个平台的 native UI toolkit 也不可能是一致的,而因为原生软件一般还要依赖不少系统功能,所以哪怕是 Qt 这种自绘的很多时候还是要每个平台写一点具体的代码。

    实际上我觉得都大模型时代了,更好的解法也许是针对项目需求针对性设计下,依赖倒置,把每个平台的 UI 都做成框架,然后交给 AI 去实现。
    BingoXuan
        104
    BingoXuan  
       2 天前   ❤️ 2
    @lawfun
    因为客户需要实时渲染 300 个信号,每个信号 1M 采样点。我研究和尝试很多方案。原生 macOS+metal 渲染开发效率太低做不来。imgui 因为是 immediate 渲染的,所以每次都要重建渲染 command 导致性能损耗太大。web 方案中,我尝试了 regl 渲染或者 p5js 渲染。目前选择了 uplot 渲染,并降低更新频率。gui 坑太大了,整个过程可以说是把 gpu 渲染和不同 gui 底层逻辑都搞清楚。后期有空我打算写一个 gpu 加速的 js waveform 库。
    lawfun
        105
    lawfun  
       2 天前
    @BingoXuan 感谢分享,大佬厉害了。
    iorilu
        106
    iorilu  
       2 天前
    所谓多端我觉得要把桌面和移动区分开

    我不觉得以后有任何软件框架能完美覆盖桌面和移动

    如果区分开

    反正桌面吗, electron 和 tauri 我觉得还不错了, web 技术以后肯定也是主流, 要么喜欢成熟老技术就 qt ,其他就算了
    Torpedo
        107
    Torpedo  
       2 天前
    @skallz #102 如果用离线的 hybrid ,做到这个还是比较容易的。另外多多管理能力强,app 不臃肿。很多大厂是 app 太臃肿了,啥技术也没用,都卡
    Leon6868
        108
    Leon6868  
    OP
       1 天前
    @BingoXuan #104 太巧了,我也在做类似的项目,我做的是大约 7M 数据点的时频阈分析,这种规模的数据前端确实难以处理,目前是用 pyqt 展示的
    debuggerx
        109
    debuggerx  
       1 天前
    虽然还谈不上银弹,但是很多框架实际上已经做得很好了,只是太多人抱着固有成见不愿意承认罢了。
    SilentOrFight
        110
    SilentOrFight  
       1 天前
    @Torpedo #90 我说的 cdn 是图片放到 cdn 做多区域节点加速访问,现在有些官方活动页图片还是放在服务器上,带宽又小,多个人访问就炸了
    BingoXuan
        111
    BingoXuan  
       1 天前
    @Leon6868
    pyqt 还算可以的方案。可惜我们客户对依赖的 license 要求很严格。lgpl 这种都不允许。不涉及多信号渲染的话,我认为 imgui 的 python binding 反而更合适,比如 dearpygui 。
    geliang0120
        112
    geliang0120  
       1 天前   ❤️ 1
    Avalonia ,和 flutter 一样自绘, 语法是 C#, 一套代码跑全平台, 更偏向桌面端
    Arthur2e5
        113
    Arthur2e5  
       1 天前
    @Removable 跟随夜间模式是所有网站的特性,不是 PWA 的特性。让 PWA 能变成 Application 而不只是一个快捷方式的是本地存储、Service Worker 、通知之类的东西
    fun201108
        115
    fun201108  
       1 天前
    没有大一统,端想自成一派
    fun201108
        116
    fun201108  
       1 天前
    没有银弹,端想自成一派
    naythefirst01
        117
    naythefirst01  
       19 小时 16 分钟前
    我觉得可以先考虑让 OS 大一统
    xingheng
        118
    xingheng  
       14 小时 1 分钟前
    @naythefirst01 OS 大一统永远都不可能,不过创建一个新的 UI 框架协议层还是可以有的。
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2536 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:45 · PVG 10:45 · LAX 19:45 · JFK 22:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.