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

多端 GUI 真的没有银弹吗

  •  
  •   Leon6868 · 77 天前 · 11923 次点击
    这是一个创建于 77 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    GUI 真的没有银弹吗?

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

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

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

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

    如果区分开

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