这家公司在自己的平台上为Web技术的使用设下重重障碍,希望开发者就此退缩。
用来构建 Web 的编程语言往往会在应用程序中找到自己的立足之地,这在很大程度上归功于对应的软件技术。这些软件允许开发人员在开发支持 Linux、Android、Windows 和 macOS 等操作系统产品时,“复用”他们为 Web 程序所编写的代码。
但是苹果并不喜欢这种 Web 技术的循环再利用方式,它希望 Mac App Store 中塞满你在其他任何地方都找不到的应用程序,不想让在各个平台上都能见到的应用充斥 App Store。
随着最近的政策更改,开发人员向这家公司提交包含 Web 代码的应用程序也变得更愈发困难。
Mac App Store 已默默开始拒绝使用一款流行工具制作的应用程序:Electron 允许开发人员在基于 Web 代码的基础上开发运行在所有平台上的应用。App Store 中的一些最受欢迎的应用程序(例如 Slack、Spotify、Discord 和 WhatsApp 等)都属于这一类型。
在Github上的相关讨论中,几位开发人员表示,他们使用 Electron 构建的应用程序被拒绝了——过去,这些应用还能通过审核——但现在,审核拒绝的同时还给出了说明:这些应用程序“试图隐藏私有 API 的使用”。
这里的“私有 API“指的是专为苹果公司内部使用而设计的 API,没有对第三方开发人员开放授权。人们通常不赞成使用私有 API 来构建面向公众的应用程序,因为时间一长这些 API 可能被更改或损坏,并且苹果公司禁止让它们的应用程序上架。
多年来,Electron 一直在使用这些私有 API,过去都没出什么问题。这些私有 API 允许开发人员做很多事情,例如大幅改善功耗。
相比之下,使用苹果公司认可的工具实现类似的目标只会让用户体验变得更糟。在大多数情况下,苹果公司并没有为想要获得这些私有 API 所提供功能的开发人员提供切实可行的选择。
现在,除非 Electron 框架发布重大更改,否则使用 Electron 构建应用的数千名开发人员已经不太可能为应用发布更新了。
开发人员可以从自己的网站分发他们的应用程序,要求用户直接下载它们。但这意味着要放弃一些好处,诸如苹果公司在 Mac App Store 中提供的自动更新机制和 iCloud 同步之类的功能。
而且,这种直接面向消费者的方法也可能很快就被锁定了,因为苹果公司发布了充满争议的公证条款,根据这一条款,苹果可能会要求对这些第三方渠道发布的应用进行审查。
苹果公司在自己的平台上阻碍 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 构建的应用程序,开发人员可能会找出创新方法来解决这个问题,但是苹果已经准备玩一场长期的猫鼠游戏,因为它计划未来进一步控制平台上可以运行哪些应用程序。
这些变化可能是以隐私或安全名义进行的。但现实情况是,当用户和开发人员都没有选择权时,这种名义就显得微不足道了,因为苹果公司控制了平台、浏览器引擎和分发渠道。
无论你对 Electron 应用程序的质量有何看法,选择权都是非常重要的。
苹果对其应用程序生态系统的控制是一种新型的垄断,对于立法者而言这是很难理解的,而且我们也难以反抗——因为当公司同时控制发行渠道和平台本身时,根本没有摆脱这些限制的方法。
作者介绍:
Owen Williams 是一名开发人员,偶尔会写一些东西。他是 Medium 的专栏作者,试图挖掘技术背后的深层意义。
原文链接:
Apple Is Trying to Kill Web Technology
评论 4 条评论