当前位置: 首页 > 科技观察

为什么我现在这么讨厌Safari?

时间:2023-03-13 22:53:47 科技观察

如果要说开发者最讨厌什么,那IE浏览器肯定首当其冲。原因其实很简单,因为IE的设计严重落伍,无法支持现代网站和Web应用中常见的各种尖端WebAPI和技术。但现在IE已成为过去,微软推出了更新、更先进的浏览器替代品Edge。IE被缴械重回战场后,最讨厌浏览器的“桂冠”立马有了继任者——苹果Safari。同样,Safari在对现代WebAPI和功能的支持方面一直落后于其他竞争对手,这直接导致我们的工程师很难在各种主流浏览器(Chrome、Edge、Firefox和Safari)上实现统一的产品体验。今天早上看到这篇文章,把Reddit上的编程模块推到了第一位。作者PerrySun是一家初创公司的产品营销经理。他的观点未必正确,但希望能给大家一些启发。另外Reddit上大家的讨论很热闹,大家可以上去看看。现在我们探索了在浏览器上的应用体验,实现与原生应用的高度统一。所有这一切都是通过所谓的渐进式Web应用程序(PWA)实现的,它是一组现代浏览器技术的统称,允许开发人员构建外观、感觉和性能与智能手机、平板电脑或Web非常相似的网站浏览器。桌面上本机应用程序的Web应用程序。渐进式web应用程序真的很酷,甚至启用了一些过去原生应用程序独有的功能:全屏运行(不显示任何浏览器UI)操作系统级别的通知和警报可以在离线状态下继续运行数据存储和检索添加应用程序图标到智能手机的主屏幕,以访问各种硬件功能,例如摄像头、麦克风、USB接口等。ProgressiveWebApps无需编译并提交到应用商店审批。如今,星巴克、Twitter和Uber等主流应用都选择了ProgressiveWebApps作为他们的工具。当然,Apple在Safari中缓慢移动对ProgressiveWebApps的支持是有原因的。他们一直在严格限制ProgressiveWebApps的功能,例如阻止此类应用程序发布系统通知或向主屏幕添加快捷方式图标。它并不止于此。iOS唯一支持的网页渲染引擎是Apple自己的WebKit。任何第三方iOS浏览器(包括Chrome)只能使用WebKit,不得匹配任何其他引擎(不限于Windows、Android或MacOS)。而WebKit是iOS系统ProgressiveWebApps管理功能的来源。为什么Apple限制ProgressiveWebApps的WebAPI?冠冕堂皇的理由当然是用户隐私问题,但我们只能半信半疑。很多朋友应该能想象到,一旦全功能的渐进式网页应用得到全面支持,iOSAppStore将面临巨大的竞争。而且只有在AppStore上正式上架的应用程序,Apple才能抽取所有应用程序购买或应用程序内购买交易的30%。不久前,关于Apple不愿支持ProgressiveWebApps的争议主要集中在网络开发者社区。但现在,随着Epic与苹果反垄断诉讼的升温,问题终于暴露在公众视野中。最终,Apple可能被迫全面扩展ProgressiveWebApps支持,或者为其他第三方iOS浏览器敞开大门。但官司的结果如何,我们只能拭目以待。用一招“拖”对付WebRTCWeb开发人员和工程师一直抱怨Safari不能像其他浏览器一样支持重要的WebAPI和CSS功能。正如一位Reddit用户曾经抱怨的那样,“......Apple根本不关心任何现代API。ProgressiveWebApps?StreamingApps?死了。但是伙计Apple,我们真的需要所有这些。”以WebRTC为例,它主要用于支持Web上的视频和音频通信,也常用于发送文件和共享屏幕内容。Apple花了数年时间才真正将WebRTC支持引入Safari,远远落后于Chrome和Firefox,这也让Safari成为开发者乃至行业观察家的笑话。虽然支持终于到来,但众所周知,WebRTC在桌面Safari上的工作远不及在其他浏览器中的工作。开发人员发现iOS中的WebRTC支持更加混乱,甚至毫无希望。此前,Safari因不支持VP9视频编码器或WebP图片压缩格式而饱受诟病。不过好消息是,到2020年底,相关支持终于上线了。但老毛病依旧——与其他主流浏览器相比,启动时间过于滞后。今天,一个新的问题再次摆在苹果面前——是否联合各方力量支持AV1视频编解码器和相关的AVIF图像格式。但这也很困难,因为苹果本身可以从竞争编解码器HEVC那里获得专利费,同时也是HEIC图像格式的大力支持者。Bug出现频繁,更新不及时。不少开发者在论坛上抱怨说,Safari中WebAPI和CSS功能的实现存在很多bug,而Apple解决起来却迟缓。“苹果不是世界上最富有的公司之一吗?拿点钱解决问题吧!”Reddit上的一位用户抱怨道。更令人沮丧的是,与Chrome或Firefox不同,Safari根本没有定期更新周期。它的更新与底层操作系统一样频繁,如此长的更新周期对于网络浏览器来说是离谱的。甚至微软都在为Edge浏览器采用自动更新,Apple,你呢?也许一切都会改变。别误会,Safari是一款非常优秀的网络浏览器,它不仅功能强大,而且还有非常可靠的隐私保护功能。但与此同时,对核心Web技术和API的糟糕支持令人困惑和不满。iOS的绝对流行,加上Apple不断努力阻止开发人员跨多个平台创建统一且出色的网络体验,这更加令人沮丧。我们可以理解这背后的原因。毕竟苹果已经决定将自己的命运赌在服务收入上,那么AppStore产生的应用/内购佣金将是至关重要的。面对舆论压力,苹果始终妥协。因此,在可预见的未来,相信苹果会参考用户意见,对Safari的设计思路做出一些重大调整。期待苹果的行动。