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

macOS 桌面也用到了 JavaScript + HTML + CSS 来实现

  •  1
     
  •   Biwood ·
    oodzchen · 2022-05-13 09:54:41 +08:00 · 7861 次点击
    这是一个创建于 954 天前的主题,其中的信息可能已经有所发展或是发生改变。

    macOS UI macOS UI2

    而且还是用 React.js 来写的,看来用 Web 技术写桌面 UI 是一大趋势了。

    原文: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/

    35 条回复    2022-05-21 19:28:21 +08:00
    murmur
        1
    murmur  
       2022-05-13 09:55:38 +08:00
    用 web 放广告或者公告灵活性比原生界面太多了
    ppbaozi
        2
    ppbaozi  
       2022-05-13 10:05:53 +08:00
    webview 不是什么新鲜玩意
    CivAx
        3
    CivAx  
       2022-05-13 10:07:47 +08:00
    这个老帖了,上个月有人发过一次。

    主要是这个选项页的东西确实用 webView 加载会更方便,比如推送促销信息、获取订阅信息、更新容量(配额)等。
    codehz
        4
    codehz  
       2022-05-13 10:23:06 +08:00 via Android
    想起隔壁 win10 更新界面是用 xaml 加载的(
    murmur
        5
    murmur  
       2022-05-13 10:27:58 +08:00   ❤️ 4
    应该这么理解
    ×webview 不是新鲜玩意
    √苹果作为世界前几名的科技企业为 webview 站台

    这针对的就是 flutter ,没错!
    Biwood
        6
    Biwood  
    OP
       2022-05-13 10:34:39 +08:00
    @codehz Linux 上的 KDE 和 GNOME 好像都很早就用 JavaScript 来写了,所以真的是能用 JS 写的最终都会用 JS 写吗,似乎是靠近用户体验层面的东西都能比较适合 WEB 技术来做
    codehz
        7
    codehz  
       2022-05-13 10:53:27 +08:00 via Android
    @Biwood Xaml 不是 html ,虽然结构上都有 xml 的影子。。
    我是说这种需要定制显示效果的地方也不是非得 html 不可
    cpf
        8
    cpf  
       2022-05-13 11:55:24 +08:00   ❤️ 3
    大致的原话:能用 JS 写的最终都会用 JS 写,优点是 JS 什么都能写,缺点是,你真的用 JS 写了😅
    orancho
        9
    orancho  
       2022-05-13 12:32:25 +08:00   ❤️ 3
    建议搜索一下 Active Desktop
    ericgui
        10
    ericgui  
       2022-05-13 13:36:19 +08:00   ❤️ 1
    还是很惊奇的,不过也算是高兴吧,JavaScript 作为一个语言能侵入这么多领域,好事啊
    TWorldIsNButThis
        11
    TWorldIsNButThis  
       2022-05-13 13:40:55 +08:00 via iPhone
    暴论:react 大举入侵桌面 gui ,意味着传统的依赖继承的 oop 全面溃败
    zhouyg
        12
    zhouyg  
       2022-05-13 14:29:43 +08:00
    有没有可能是最终肉眼所见的都会是 js 写的
    joesonw
        13
    joesonw  
       2022-05-13 14:47:24 +08:00 via iPhone
    lujiaosama
        14
    lujiaosama  
       2022-05-13 15:42:45 +08:00   ❤️ 1
    桌面跨端应用越来越多的 electron 应用了, 有些时候有些桌面应用一看 ui, 结合体积和性能, 一查果然是 electron. 好处是半吊子 js 工程师也能介入桌面开发领域, 坏的是应用质量下降了.
    cpstar
        15
    cpstar  
       2022-05-13 16:06:27 +08:00   ❤️ 1
    webOS 内牛满面
    Atsushi
        16
    Atsushi  
       2022-05-13 16:49:34 +08:00
    @orancho 同想到 Active Desktop 。
    不过这个界面应该是 iCloud 相关的原因才是 JS 的吧,别的页面不一定是 JS
    不过这个页面也是极其慢
    还是不喜欢 JS 的东西
    CommandZi
        17
    CommandZi  
       2022-05-13 19:07:13 +08:00
    @lujiaosama 楼主的就一个 webview 控件显示这一小块内容吧
    fayetitus
        18
    fayetitus  
       2022-05-13 19:48:57 +08:00   ❤️ 1
    Web 目前可能是最好的 UI 解决方案,性能除外。
    d5
        19
    d5  
       2022-05-13 20:02:53 +08:00
    Palm/HP: WebOS WebOS !
    SimonOne
        20
    SimonOne  
       2022-05-13 20:04:50 +08:00
    所以离线情况下这块会怎么样?
    ciaoly
        21
    ciaoly  
       2022-05-13 20:06:17 +08:00 via Android   ❤️ 2
    大量 Web 前端工程师操着 electron 进军桌面:

    应用质量下降了✅
    桌面应用更好看了✅✅
    ciaoly
        22
    ciaoly  
       2022-05-13 20:07:31 +08:00 via Android
    话说为啥 Web 技术栈写图形应用就简单啊😯?
    为什么其它图形应用技术栈不能做到像 Web 开发那样简单呢?
    marczhao
        23
    marczhao  
       2022-05-13 21:46:08 +08:00
    虽然但是,可以仔细看一下那个“setup.icloud.com”。
    只有 Apple ID 里面 姓名、密码、付款、iCloud 管理 这几个界面点出来了右键菜单,里面还都是真正的网页,例如 gsa.apple.com
    Alan1978
        24
    Alan1978  
       2022-05-13 21:53:12 +08:00 via Android
    Gnome 不早就全部 js 了吗
    dingwen07
        25
    dingwen07  
       2022-05-13 22:05:13 +08:00 via iPhone
    苹果的操作系统里一堆这种
    jones2000
        26
    jones2000  
       2022-05-13 22:27:59 +08:00
    @ciaoly 不就是几个 DOM 堆下,那有什么图形应用。其他语言的也一样啊,拖几个控件就完成事了。基本就是体力活,刚毕业的都可以做。图形应用不应该是 2D 或 3D 的绘图吗,这些前端也没几个人去学的,都是调用第 3 方库。
    hawei
        27
    hawei  
       2022-05-13 22:55:50 +08:00 via iPhone
    @ciaoly 我觉得是生态。Web 本身的积累就是面向用户界面的描述。而不同平台的原生对 UI 实现差异太大。而 Web 被大众接受,以及经过时间检验的开发模式。
    agagega
        28
    agagega  
       2022-05-13 23:16:32 +08:00
    @ciaoly
    理论上是可以的,但:

    - 原生平台的描述性技术,都是对上一代面向对象甚至面向过程 API 的封装(比如 SwiftUI 和 AppKit/UIKit 的关系)。这就导致你用这些技术稍深入一点,就难免要回过去学旧 API 是怎么回事

    - 而 Web 从头到位是个完整的抽象层,99.9%的时候你都不需要纠结 Web 引擎到底是怎么绘图的。即使用 Canvas ,也是因为真的要画一个图,而不是有什么界面 HTML+CSS 写不出来

    - 原生平台的技术不跨平台,跨平台的( Java 、Flutter 、Xamarin 、Qt )在单个平台又容易有坑

    - 网页套壳很容易实现「我做了一个客户端,同时又自动有了一个网页版」

    - Web 技术是开放的,所以任何严重影响开发者体验的事都可以很快被社区力量改进。第一方平台的反例参考 Xcode

    - (私货,玻璃心请轻喷)相当一部分中低层前端虽然看起来经常在学新技术,但实际上非常不愿意走出 JS 主导生态的舒适区,瞧不起传统后端语言(这两年 Go 起来之后,Node 吹少很多了,不知道有没有联系),瞧不起 Native UI. 而前端现在是门槛最低,(也许)需求最大,供应也最大的领域,so……

    ---

    BTW ,如果能用系统 WebView+一些更标准的原生接口(我也不知道还缺哪些),现在大家吐槽的 Electron 毛病都能少一些。更理想的是有一种能把 Web 和原生 UI 无缝融合的技术,允许渐进式地把关键组件切换到原生实现,不知道现在成熟了没
    7gugu
        29
    7gugu  
       2022-05-14 00:04:52 +08:00 via iPhone
    @agagega 其实渐进式的体验并不是特别好,还是会有很多坑,属于是性能不够原生来凑的地步,不得不用原生了,才会考虑原生组件。不然维护 webview 和原生组件两者就会是个恶梦。
    SakataToushirou
        30
    SakataToushirou  
       2022-05-14 04:05:07 +08:00 via Android
    设置的 iCloud 账户页面一直都是 html 点击动画和原生不一样。很生硬
    SakataToushirou
        31
    SakataToushirou  
       2022-05-14 04:05:48 +08:00 via Android
    iOS 的 iCloud 页面也是用的 webview
    lujiaosama
        32
    lujiaosama  
       2022-05-14 09:02:10 +08:00
    @CommandZi lz 这个肯定不是 electron, 只是联想到. 最近用的 electron 应用有点多了.
    Suzutan
        33
    Suzutan  
       2022-05-14 09:30:22 +08:00 via iPhone
    用什么写无所谓,性能好就行,win11 的资源管理器性能是真的已经到了恶心的地步
    tedding
        34
    tedding  
       2022-05-14 11:09:01 +08:00 via iPhone
    OS X 上面的 dashboard 界面见过吗,那上面的自带的 widget 小组件,以及以前允许个人开发的小组件,全都是 html+javascript……整个 dashboard 就是一个浏览器窗口 挂了很多 笑组件
    istomyang
        35
    istomyang  
       2022-05-21 19:28:21 +08:00 via Android
    JS 作为一个垃圾,真他妈下头。不要跟我提 electron ,我头疼。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1116 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:59 · PVG 01:59 · LAX 09:59 · JFK 12:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.