对于开发人员来说,Apple 的 Safari 是垃圾和过时的

2021-07-27 12:42:59

Internet Explorer 现在已成为过去,取而代之的是更好的 Microsoft Edge。为什么开发人员和软件工程师如此讨厌 IE?因为 IE 已经严重过时,缺乏对支持我们今天使用的现代网站和 Web 应用程序的尖端 Web API 和技术的支持。随着 IE 的出现,“最讨厌的浏览器”的区别就归于 Apple 的 Safari——它一直紧随 IE 之后。同样,Safari 在支持现代 Web API 和功能方面一直落后于竞争浏览器,这给希望创建在所有主要浏览器(Chrome、Edge、Firefox 和 Safari)上一致工作的产品的开发人员带来了相当大的挑战。然而,Safari 的烦恼变得更深、更微妙,我将在下面进一步解释。您是否知道今天可以为您的浏览器创建一些像您设备上的本机应用程序一样工作的东西?这是通过所谓的渐进式网络应用程序 (PWA) 实现的,这是一组现代浏览器技术,可让您创建一个外观、感觉和执行类似于智能手机、平板电脑或台式机上的本机应用程序的网站。

渐进式 Web 应用程序真的很酷,因为它们可以为您提供以下功能,您通常希望使用本机应用程序:PWA 不需要编译,也不需要提交到应用程序商店进行审批。当今使用的渐进式网络应用程序的一些示例:星巴克、Twitter 和优步。 Apple 在 Safari 中添加对 PWA 的支持方面拖延了脚步,当他们最终这样做时,限制了 PWA 的功能,因此无法实现类似本机的应用程序功能,例如通知或主屏幕图标快捷方式——仅举一个例子苹果施加的众多限制中的一小部分。但它不止于此。在 iOS 上,唯一允许的 Web 渲染引擎是 Apple 自己的 WebKit,它运行 Safari。第三方 iOS 浏览器(例如 Chrome)只能使用 WebKit,而不能使用它们自己的引擎(在 Windows、Android 或 macOS 中是允许的)。它是管理 PWA 功能的 WebKit。 Apple 对 PWA 相关的 Web API 自我施加限制的原因是什么?他们会告诉您这是出于用户隐私原因,这在某些情况下可能是有效的。但我们大多数人都知道主要原因是因为功能齐全的 PWA 将与 iOS App Store 竞争——在购买应用程序或执行应用程序内购买时,Apple 会从它的收入中减少 30%。直到最近,关于 Apple 停止支持 PWA 的争议还仅限于 Web 开发者社区。但现在,由于 Epic 诉 Apple 案以及反垄断监管行动的可能性,它已经向公众公开。

苹果最终可能被迫全面扩展 PWA 或第三方 iOS 浏览器支持,作为满足政府监管机构的让步。我们会看看会发生什么。 Web 开发人员和工程师长期以来一直抱怨其他浏览器通常可用的关键 Web API 和 CSS 功能缓慢或缺乏支持。 ... Apple 不会对任何现代 API 表示担忧。 PWA,流,谁他妈的需要那个?好吧,亲爱的 Apple,现在很多 Web 开发人员都需要它。以 WebRTC 为例。 WebRTC 主要用于网络上的视频和音频通信。它还用于发送文件和共享屏幕内容。 Apple 花了数年时间终于为 Safari 添加了 WebRTC 支持,远远落后于 Chrome 和 Firefox,以至于它几乎成为开发人员甚至行业观察者之间的一个笑话。尽管现在提供支持,但众所周知,与其他浏览器相比,WebRTC 在 Safari 桌面上存在更多问题。开发人员发现在 iOS 中支持它是一团糟,实际上甚至不值得付出努力。过去曾有人批评 Safari 不支持 VP9 视频编解码器或 WebP 图像压缩格式。一些好消息:截至 2020 年末,它们现在得到支持——尽管它们已经与其他浏览器一起使用多年并且已经证明非常受欢迎,但它毫无价值。

现在,Apple 只需要齐心协力,支持 AV1 视频编解码器和相关的 AVIF 图像格式。不过,这可能是一项艰巨的任务,因为 Apple 为与之竞争的 HEVC 编解码器收取版税,并且是 HEIC 图像格式的大力支持者。我经常读到开发人员对 Safari 实现 Web API 和 CSS 功能中的许多错误感到沮丧,尤其是看到它们解决的速度很慢。我们应该如何跟上这个节奏?苹果不是世界上最富有的公司之一吗?投资你他妈的浏览器。更令人沮丧的是,与 Chrome 或 Firefox 不同的是,Safari 更新不是定期自动进行的。它们仅与对整个操作系统的不频繁更新一起提供。严重地! Microsoft 对 Edge 浏览器采用自动更新。可以肯定的是,Apple 也可以找到*勇气*这样做。不要误会我的意思,Safari 是非常好的网络浏览器,提供快速的性能和可靠的隐私功能。但与此同时,缺乏对关键 Web 技术和 API 的支持既令人困惑又令人烦恼。

iOS 的巨大普及让 Apple 继续阻碍开发人员通过网络创建适用于所有平台的出色体验,这一点更加令人恼火。但也不完全令人惊讶,因为 Apple 将其未来押注于基于服务的收入,其中包括来自 App Store 的销售额。众所周知,苹果公司在面对公众压力时会退缩。也许会有足够的内容导致 Safari 发生一些严重的变化。