关注多端 GUI 解决方案将近十年了。十年来,像 RN 、Flutter 这样的自绘 UI 不少,大多都是昙花一现。当前无论做什么应用,一旦涉及到多端,最终都会回到 Web 技术栈。但是 Web 也没有真正通用的标准。一些美好的规范,像 PWA ,早已做土;反而 Cordava 倒是在不温不火地发展。唯一能满足『 Write once, run anywhere 』的只有 Electron 等 CEF 框架或者近几年兴起的 Tauri 等 Webview 框架,赋予 Javascript 原生能力,即兼顾开发速度,也有充实的生态。很好奇,图形界面出现四十多年了,Web 时代也有快二十年了,手机也诞生十五年了,但是为什么 GUI 还没有大一统的解决方案?GUI 真的没有银弹吗?多端 GUI 真的没有银弹吗
gui 的话,现在亮点是 gpui ,长桥刚出了一个 ui 包。另外 rust 那边也有新路线,c++这边的 dawn 目前没人往 ui 上面带,都在搞底层硬件光追那些。不过第三方产品很多,比如 riveo 和 rive ,这是两个产品,一个是 metal 做视频特效,一个自己开发的抽象层做交互取代之前的 lottie
另外,桌面端和移动端在交互上有个矛盾源自于鼠标指针和拇指的差异。
具体的说就是,鼠标交互有双击,右键,指针悬停,选中范围
手指点按没有那么精确,但却有双指,三指,指关节敲击。
不管你怎么绘制图像这种问题都存在。
非常深刻的回答!
retained 和 immediate 是完全不同的设计思路,但是似乎 immediate 能实现的 retained 都能实现,而且从架构上来讲,retained 将 style 、layout 与高层逻辑(业务)代码隔离,应该是更优秀的方法?有 immediate 能实现而 retained 不能实现的吗?异步是老生常谈的问题了,不过在 retained 模式下,搭配状态机,异步设计其实很自然(也可能是我想得太简单了,望指正);而且其实性能问题算是边界情况,大部分情况下,只要遵循一些基本原则,是很难碰见性能问题的?
但是这还是无法解释,为什么直到现在,都没有一款引擎、一个框架,能够在全端大一统地解决性能、视效问题?
或者说实际上 Webview ( CEF ) 已经能解决 90% 了,但是为什么移动端的大家都在拼命逃离 Webview ,创造像 Flutter 一样的渲染引擎?