• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Leon6868
V2EX  ›  程序员

多端 GUI 真的没有银弹吗

  •  
  •   Leon6868 · Jul 2, 2025 · 16151 views
    This topic created in 387 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    GUI 真的没有银弹吗?

    Supplement 1  ·  3 days ago
    一年后挖坟,现在技术栈为:
    - web
    - flutter

    这两个都非常适合 vibe coding ,跨平台能力也还行。我的场景对动画和美工要求比较高,之后看情况可能 all in flutter ,也可能 flutter 作为移动端,web 作为桌面端开发。
    127 replies    2026-07-22 09:24:27 +08:00
    1  2  
    Daming
        101
    Daming  
       Jul 3, 2025
    Avalonia ,不比 shit 一般的套壳 chrome 好?
    skallz
        102
    skallz  
       Jul 3, 2025   ❤️ 1
    @Torpedo 这点我就很佩服拼夕夕,拼夕夕实际上也是混开,用了大量的 webview ,这个已经有很多人解析过了,但是人家做到的流畅程度真不像是一个混开应用,像是纯原生,目前都不知道这么牛逼的优化是怎么做到的,他们技术团队也没开源。。。
    agagega
        103
    agagega  
       Jul 3, 2025
    同一套代码跑不同平台的最优解就是 Web 。

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

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

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

    如果区分开

    反正桌面吗, electron 和 tauri 我觉得还不错了, web 技术以后肯定也是主流, 要么喜欢成熟老技术就 qt ,其他就算了
    Torpedo
        107
    Torpedo  
       Jul 4, 2025
    @skallz #102 如果用离线的 hybrid ,做到这个还是比较容易的。另外多多管理能力强,app 不臃肿。很多大厂是 app 太臃肿了,啥技术也没用,都卡
    Leon6868
        108
    Leon6868  
    OP
       Jul 4, 2025
    @BingoXuan #104 太巧了,我也在做类似的项目,我做的是大约 7M 数据点的时频阈分析,这种规模的数据前端确实难以处理,目前是用 pyqt 展示的
    debuggerx
        109
    debuggerx  
       Jul 4, 2025
    虽然还谈不上银弹,但是很多框架实际上已经做得很好了,只是太多人抱着固有成见不愿意承认罢了。
    SilentOrFight
        110
    SilentOrFight  
       Jul 4, 2025
    @Torpedo #90 我说的 cdn 是图片放到 cdn 做多区域节点加速访问,现在有些官方活动页图片还是放在服务器上,带宽又小,多个人访问就炸了
    BingoXuan
        111
    BingoXuan  
       Jul 4, 2025
    @Leon6868
    pyqt 还算可以的方案。可惜我们客户对依赖的 license 要求很严格。lgpl 这种都不允许。不涉及多信号渲染的话,我认为 imgui 的 python binding 反而更合适,比如 dearpygui 。
    soloV2
        112
    soloV2  
       Jul 4, 2025   ❤️ 1
    Avalonia ,和 flutter 一样自绘, 语法是 C#, 一套代码跑全平台, 更偏向桌面端
    Arthur2e5
        113
    Arthur2e5  
       Jul 4, 2025
    @Removable 跟随夜间模式是所有网站的特性,不是 PWA 的特性。让 PWA 能变成 Application 而不只是一个快捷方式的是本地存储、Service Worker 、通知之类的东西
    qwasfun
        115
    qwasfun  
       Jul 4, 2025
    没有大一统,端想自成一派
    qwasfun
        116
    qwasfun  
       Jul 4, 2025
    没有银弹,端想自成一派
    naythefirst01
        117
    naythefirst01  
       Jul 5, 2025
    我觉得可以先考虑让 OS 大一统
    xingheng
        118
    xingheng  
       Jul 5, 2025
    @naythefirst01 OS 大一统永远都不可能,不过创建一个新的 UI 框架协议层还是可以有的。
    hronro
        119
    hronro  
       Jul 8, 2025
    @Leon6868 #10
    怎么会没本质区别呢?原生最重要的就是原生 UI 组件,至于布局怎么实现的,对用户而言根本不重要,但是否使用了原生 UI 组件,用户是能感知出来的。
    Leon6868
        120
    Leon6868  
    OP
       3 days ago
    @BingoXuan #104 还是回到 web 的怀抱了。现在是基于 https://github.com/tomsoftware/webgl-chart 实现了 LOD 和 2d sfft 展示。还得是 webview 好用
    Leon6868
        121
    Leon6868  
    OP
       3 days ago
    @w568w #97 一年之后挖坟,flutter 确实一直在发展,也算是多端全部都兼容,越来越强了,之后打算尝试 flutter 开发
    BingoXuan
        122
    BingoXuan  
       3 days ago
    @Leon6868
    去年就用 webgl shader 实现了一个实时波形渲染,300 个信号,信号长度 2k ,120fps 点毫无压力。web 反馈回环非常快,AI 很擅长的。如果 AI 就是一个 compiler ,那么任何框架都不重要
    Leon6868
        123
    Leon6868  
    OP
       3 days ago
    @BingoXuan #122 是的,webgl shader 非常强劲,有个小问题是只支持 32 位 float ,目前我采用混和渲染的方式规避了这个问题,之后可能切换到 webgpu 。现在框架的地位更像是节省 token 的办法,毕竟很多充满细节的成熟设计要 vibe 还是很麻烦的。请问你现在对于 web 是如何达成回环的呢,采用多模态模型吗?
    BingoXuan
        124
    BingoXuan  
       3 days ago
    @Leon6868
    skill+多模态+playwright 能加速回环。小模型可以用来验证流程和细节提供相关信息,大模型负责实现。
    w568w
        125
    w568w  
       3 days ago
    @Leon6868 嗯,现在用 Flutter 的人也越来越多了,不过好像基本都是因为 Vibe Coding 方便入股的。

    比较担忧未来的 Flutter 插件的代码质量。AI 开始入场之前,平均质量就够低了……
    Leon6868
        126
    Leon6868  
    OP
       2 days ago
    @BingoXuan #124 感觉大佬的思想非常深刻,有兴趣加个微信继续交流吗? https://privnote.com/EaK8OeRf#utEG2bBTJ
    Leon6868
        127
    Leon6868  
    OP
       2 days ago
    @w568w #125 以后没有轮子就自己 Vibe (不是)没必要用低质量的库
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1026 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 23:04 · PVG 07:04 · LAX 16:04 · JFK 19:04
    ♥ Do have faith in what you're doing.