蘋果正在試圖殺死Web技術

蘋果正在試圖殺死Web技術


image.png



做者|Owen Williams譯者|王強編輯|王文婧這家公司在本身的平臺上爲基於 Web 技術的使用設下了重重障礙,但願開發者就此退縮。android

用來構建 Web 的編程語言每每會在應用程序中找到本身的立錐之地,這在很大程度上歸功於對應的軟件技術。這些軟件容許開發人員在開發支持 Linux、Android、Windows 和 macOS 等操做系統的產品時,「複用」他們爲 Web 程序所編寫的代碼。ios

可是蘋果公司並不喜歡這種 Web 技術的回收再利用方式,它但願 Mac App Store 中塞滿你在其餘任何地方都找不到的應用程序,不想讓在各個平臺上都能見到的應用充斥 App Store。隨着最近的政策更改,開發人員向這家公司提交包含 Web 代碼的應用程序也變得更困難。git

Mac App Store 已經默默地開始拒絕使用一款流行工具製做的應用程序:Electron 容許開發人員在基於 Web 的代碼的基礎上開發運行在全部平臺上的應用。App Store 中的一些最受歡迎的應用程序(例如 Slack、Spotify、Discord 和 WhatsApp 等)都屬於這一類型。github


image.png

在 Github 上的相關討論中,幾位開發人員表示,他們使用 Electron 構建的應用程序被拒絕了——過去,這些應用還能經過審覈——但如今,審覈拒絕的同時還給出了說明:這些應用程序「試圖隱藏私有 API 的使用」。這裏的「私有 API「指的是專爲蘋果公司內部使用而設計的 API,沒有對第三方開發人員開放受權。人們一般不同意使用私有 API 來構建面向公衆的應用程序,由於時間一長這些 API 可能被更改或損壞,而且蘋果公司禁止使用它們的應用程序上架。web

相關探討:https://github.com/electron/electron/issues/20027chrome

多年來,Electron 一直在使用這些私有 API,過去都沒出什麼問題。這些私有 API 容許開發人員作不少事情,例如大幅改善功耗。相比之下,使用蘋果公司承認的工具實現相似的目標只會讓用戶體驗變得更糟。在大多數狀況下,蘋果公司並無爲想要得到這些私有 API 所提供功能的開發人員提供真正可行的選擇。macos

如今,除非 Electron 框架發佈重大更改,不然使用 Electron 構建應用的數千名開發人員已經不太可能爲應用發佈更新了。編程

開發人員能夠從本身的網站分發他們的應用程序,要求用戶直接下載它們。但這意味着要放棄一些好處,諸如蘋果公司在 Mac App Store 中提供的自動更新機制和 iCloud 同步之類的功能。並且,這種直接面向消費者的方法也可能很快就被鎖定了,由於蘋果公司發佈了充滿爭議的公證條款,根據這一條款蘋果可能會要求對這些第三方渠道發佈的應用進行審查。canvas

公證條款:https://developer.apple.com/documentation/security/notarizing_your_app_before_distributionswift

蘋果公司在本身的平臺上阻礙 Web 發展的作法由來已久。在 iOS 上,蘋果公司不容許使用徹底獨立的第三方瀏覽器,要求全部應用在渲染基於 Web 的內容時,都必須使用他們的 Safari 瀏覽器。儘管 App Store 中提供了 Chrome 和 Opera 之類的瀏覽器,但它們必須在後臺使用蘋果公司的 Safari 瀏覽器來渲染網頁,不能使用本身的渲染引擎。這意味着蘋果壟斷了 iPhone 和 iPad 用戶訪問 Web 的方式。爲了推進開發人員在 iOS 上構建原生應用程序(而不是使用 Web 技術),蘋果公司出於自身利益,無視了其餘瀏覽器實現的開放 Web 規範中的許多流行部分。

單獨來看,蘋果公司這些微妙的反競爭作法彷佛並不怎麼可怕,但它們連在一塊兒造成了一項明確的戰略。

例如,一種稱爲 WebRTC 的技術無需使用額外的軟件便可在 Web 瀏覽器中進行視頻通話。它爲 Google Meet 等工具提供了支持。但蘋果公司實現這一規範的速度異常緩慢,還遺漏了一些關鍵功能。當開發者將這一技術嵌入到應用程序中時,它也沒法正常工做。

蘋果公司還阻礙了一種新興的標準,即漸進式 Web 應用程序(PWA)——這項技術與 Electron 同樣,容許開發人員爲桌面和移動端構建效果相似原生的應用——蘋果的作法是隻實現該標準的一部分,結果讓它與完整標準相距甚遠,使開發者難以依靠。若是用戶能在 Chrome 或 Firefox 中啓動 PWA 應用就不會出現這些問題,可是 iPhone 和 iPad 用戶沒法安裝第三方瀏覽器,蘋果公司也關閉了用戶使用基於 PWA 技術的途徑。

開發人員願意使用諸如 Electron 和 PWA 之類的技術,是由於它們加快了跨平臺更新的速度,而且無需使用一系列不一樣的代碼庫。有人認爲這樣會產出質量較低的應用程序,但我認爲不用它們的結果就是根本作不出這種跨平臺應用,或者作出的應用程序更新緩慢,由於針對 Windows、Mac 和 Web 平臺單獨維護產品的作法既複雜又昂貴。蘋果公司最近推出了一個競爭性的框架,稱爲 Catalyst,這一框架容許製做了 iPad 應用的開發人員將其快速引入 macOS——對專門面向蘋果用戶的開發人員來講,這是一款出色的工具,但對那些跨平臺應用來講沒什麼意義。

單獨來看,蘋果公司這些微妙的反競爭作法彷佛並沒什麼可怕的,但它們連在一塊兒造成了一項明確的戰略:給開發人員在蘋果平臺上使用基於 Web 的技術構建應用的作法設下重重障礙,最終逼迫這些開發者退縮。既然 App Store 不接受使用 Electron 構建的應用程序,開發人員可能會找出創新的方法來解決這個問題,可是蘋果公司已經準備玩一場長期的貓鼠遊戲,由於它計劃將來進一步控制平臺上能夠運行哪些應用程序。

https://www.macrumors.com/2019/09/03/apple-macos-catalina-notarization-mac-apps/

這些變化多是以隱私或安全的名義進行的。但現實狀況是,當用戶和開發人員都沒有選擇權時,這種名義就顯得微不足道了,由於蘋果公司控制了平臺、瀏覽器引擎和分發渠道。不管你對 Electron 應用程序的質量有何見解,選擇權都是很是重要的。

蘋果對其應用程序生態系統的控制是一種新型的壟斷,對於立法者而言這是很難理解的,並且咱們也難以反抗——由於當公司同時控制發行渠道和平臺自己時,根本沒有擺脫這些限制的方法。

 做者介紹

Owen Williams 是一名開發人員,偶爾會寫一些東西。他是 Medium 的專欄做者,試圖挖掘技術背後的深層意義。

原文連接:

https://onezero.medium.com/apple-is-trying-to-kill-web-technology-a274237c174d

相關文章
相關標籤/搜索