來自:前端之巔
原文鏈接:https://blog.perrysun.com/2021/07/15/for-developers-safari-is-crap-and-outdated/
如果要說開發(fā)者最討厭什么東西,那 IE 瀏覽器肯定是首當(dāng)其沖。究其原因,其實(shí)也很簡單,因?yàn)?IE 的設(shè)計(jì)嚴(yán)重過時(shí),也無法支持現(xiàn)代網(wǎng)站和 Web 應(yīng)用程序中常見的各類前沿 Web API 與技術(shù)。但現(xiàn)在,IE 已經(jīng)成為過去式,微軟拿出了更新、更先進(jìn)的瀏覽器替代選項(xiàng) Edge。
在 IE 解甲歸田之后,最煩人瀏覽器的“桂冠”立馬有了后繼者——蘋果 Safari。
同樣的,Safari 在對現(xiàn)代 Web API 及功能的支持能力方面一直落后于其他競爭對手,這直接導(dǎo)致咱們工程師很難在各類主流瀏覽器(Chrome、Edge、Firefox 與 Safari)上實(shí)現(xiàn)統(tǒng)一的產(chǎn)品體驗(yàn)。
這篇文章是我早上看到的,Reddit 上編程模塊被頂?shù)搅说谝幻?/strong>。作者 Perry Sun 是一個(gè)創(chuàng)業(yè)公司的產(chǎn)品營銷經(jīng)理,他的觀點(diǎn)不一定對,但我期望能給你一些啟發(fā)。
另外,Reddit 上大家的討論非常熱烈,你可以上去看看。
漸進(jìn)式 Web 應(yīng)用
現(xiàn)在我們已經(jīng)探索在瀏覽器上實(shí)現(xiàn)與本機(jī)應(yīng)用高度統(tǒng)一的應(yīng)用體驗(yàn)了。
這一切的實(shí)現(xiàn)依靠的是所謂漸進(jìn)式 Web 應(yīng)用(PWA),這是一整套現(xiàn)代瀏覽器技術(shù)的統(tǒng)稱,允許開發(fā)者在網(wǎng)站上構(gòu)建起外觀、感受與執(zhí)行效果高度類似于智能手機(jī)、平板電腦或臺式機(jī)上原生應(yīng)用程序的 Web 應(yīng)用。
漸進(jìn)式 Web 應(yīng)用確實(shí)很酷,甚至能夠?qū)崿F(xiàn)以下幾種以往專屬于本機(jī)應(yīng)用程序的特性:
全屏運(yùn)行(不顯示任何瀏覽器 UI)操作系統(tǒng)級別的通知與警報(bào)能夠在以離線狀態(tài)繼續(xù)運(yùn)行應(yīng)用本地?cái)?shù)據(jù)存儲與檢索在智能手機(jī)的主屏幕上添加應(yīng)用圖標(biāo)訪問各類硬件功能,例如相機(jī)、麥克風(fēng)、USB 接口等漸進(jìn)式 Web 應(yīng)用不需要編譯,也不需要提交給應(yīng)用商店進(jìn)行審批。如今,星巴克、Twitter 及 Uber 等主流應(yīng)用都選擇了漸進(jìn)式 Web 應(yīng)用作為載體。
蘋果公司之所以在 Safari 對漸進(jìn)式 Web 應(yīng)用的支持方面行動(dòng)遲緩,當(dāng)然有著自己的考量。他們一直在嚴(yán)格限制漸進(jìn)式 Web 應(yīng)用的功能,比如禁止此類應(yīng)用發(fā)布系統(tǒng)通知或者向主屏幕添加快捷方式圖標(biāo)等。
還不止于此。iOS 唯一支持的 Web 渲染引擎就是蘋果自己的 WebKit,任何第三方 iOS 瀏覽器(包括 Chrome)只能使用 WebKit,不得匹配任何其他引擎(這一點(diǎn)在 Windows、Android 或者 MacOS 上均不受限制)。而 WebKit,正是 iOS 系統(tǒng)上漸進(jìn)式 Web 應(yīng)用的管理功能來源。
蘋果為什么要對漸進(jìn)式 Web 應(yīng)用的 Web API 加以限制?冠冕堂皇的理由當(dāng)然是用戶隱私,但這話我們恐怕只能信一半。
很多朋友應(yīng)該都能想到,一旦功能齊備的漸進(jìn)式 Web 應(yīng)用得到全面支持,那么 iOS App Store 將面臨巨大競爭。而只有在 App Store 正式上架的應(yīng)用,蘋果才能從一切應(yīng)用本體購買或應(yīng)用內(nèi)購買交易額中抽成 30%。
不久之前,關(guān)于蘋果不愿支持漸進(jìn)式 Web 應(yīng)用的爭議還主要集中在 Web 開發(fā)者社區(qū)。但如今,隨著 Epic 與蘋果間反壟斷訴訟的升溫,問題終于被暴露在公眾視野當(dāng)中。
最終,蘋果可能會(huì)被迫全面拓展?jié)u進(jìn)式 Web 應(yīng)用支持,或者對其他第三方 iOS 瀏覽器敞開大門。但訴訟結(jié)果究竟如何,我們只能拭目以待。
用一招“拖”字訣應(yīng)對 WebRTC
Web 開發(fā)者及工程師們,一直在抱怨 Safari 沒法像其他瀏覽器那樣良好支持重要的 Web API 與 CSS 功能。
一位 Reddit 用戶曾經(jīng)這么抱怨過,“……蘋果根本不鳥任何現(xiàn)代 API。漸進(jìn)式 Web 應(yīng)用?流應(yīng)用?死一邊去。但是,蘋果大哥,我們真的很需要這一切。”
以 WebRTC 為例,它主要用于支持 Web 上的視頻與音頻通信,也常用于發(fā)送文件及共享屏幕內(nèi)容。
蘋果拖了好幾年時(shí)間才真正把 WebRTC 支持引入 Safari,遠(yuǎn)遠(yuǎn)落后于 Chrome 及 Firefox,這也讓 Safari 淪為開發(fā)者甚至是行業(yè)觀察者口中的笑話。
盡管支持終于到來,但眾所周知,WebRTC 在 Safari 桌面版上的運(yùn)行效果遠(yuǎn)遠(yuǎn)不及其他瀏覽器。開發(fā)者發(fā)現(xiàn) WebRTC 在 iOS 中的支持更是一團(tuán)糟,甚至堪稱無藥可救。
之前,曾經(jīng)有人批評 Safari 不支持 VP9 視頻編碼器或 WebP 圖像壓縮格式。但好消息是,直到 2020 年底,相關(guān)支持終于上線。但老毛病還在——與其他主流瀏覽器相比,上線時(shí)間太過滯后。
如今,新的難題再次被擺在蘋果面前——到底要不要團(tuán)結(jié)一切力量,支持 AV1 視頻編解碼器及相關(guān) AVIF 圖像格式。但這事同樣困難重重,因?yàn)樘O果自身能從競爭性編解碼器 HEVC 中獲取專利費(fèi),同時(shí)也是 HEIC 圖像格式的強(qiáng)硬支持者。
Bug 頻出,更新不及時(shí)
很多開發(fā)者都在論壇上抱怨 Safari 在 Web API 與 CSS 功能的實(shí)現(xiàn)中存在眾多 bug,而蘋果的解決速度一直相當(dāng)遲緩。
“蘋果不是世界上最有錢的企業(yè)之一嗎?拿點(diǎn)錢出來,把問題解決了??!”Reddit 上一位用戶這樣吐槽道。
更讓人沮喪的是,與 Chrome 或 Firefox 不同,Safari 根本沒有固定的更新周期。它的更新頻率與底層操作系統(tǒng)保持一致,如此漫長的更新周期對網(wǎng)絡(luò)瀏覽器來說簡直離譜。
連微軟都有種對 Edge 瀏覽器采用自動(dòng)更新,蘋果,你呢?
也許一切都將改觀
請別誤會(huì)我的意思,Safari 是款非常出色的網(wǎng)絡(luò)瀏覽器,不僅性能強(qiáng)大、而且隱私功能相當(dāng)可靠。
但與此同時(shí),對核心 Web 技術(shù)及 API 那糟糕的支持能力則令人困惑又憤憤不平。
iOS 巨大的普及面再加上蘋果不斷用種種手段阻礙開發(fā)者在多種平臺上創(chuàng)建統(tǒng)一且優(yōu)秀的 Web 體驗(yàn),就更是讓人怒氣沖天。
這背后的原因我們可以理解,畢竟蘋果已經(jīng)決定把自身命運(yùn)押在服務(wù)收入上,因此 App Store 產(chǎn)生的應(yīng)用 / 內(nèi)購抽成將至關(guān)重要。
面對公眾的輿論壓力,蘋果公司向來會(huì)有所妥協(xié)。因此在可預(yù)見的未來,相信蘋果會(huì)參考用戶意見、對 Safari 的設(shè)計(jì)思路做出一些有份量的調(diào)整。期待蘋果的行動(dòng)。