在苹果平台上使用Web技术的难度越来越大,开发人员不得不作罢。
作者 | Owen Williams
译者 | 弯月,责编 | 郭芮
以下为译文:
构建Web的编程语言往往也会涉足移动应用。这在很大程度上是为了让开发人员可以重用构建Web产品时编写的代码,通常这些代码需要在Linux、Android、Windows和macOS等操作系统上运行。
然而,苹果却不喜欢这种Web技术的重用。它希望Mac应用商店中的应用不会出现在其他任何地方,且无法在其他平台上运行。最近,苹果又出现了政策变动,致使开发人员在提交包含Web代码的应用时会遇到更大的困难。
Mac应用商店已悄然开始拒绝使用流行工具Electron制作的应用,因为开发人员可以通过该工具以Web代码为基础构建一切应用。苹果商店中一些非常流行的应用,例如Slack、Spotify、Discord和WhatsApp等都属于此类。
在Github社区的讨论中,数名开发人员表示,他们使用Electron构建的应用遭到了拒绝(以前这些应用都获得了批准),苹果给出的解释是“试图隐藏私有API的使用”,也就是说这些API并非专门为苹果内部使用而设计,而是为了第三方开发人员。通常我们不赞成使用私有API来构建面向公众的应用,这是因为这些API可能会随着时间的流逝而发生变化或出问题,而且苹果也禁止应用使用这类API。
多年来,Electron使用这些私有API都没有问题。开发人员可以利用有些私有API大幅改善功耗,而苹果认可的工具会破坏用户的体验。在大多数情况下,苹果并没有为需要访问这些私有API功能的开发人员提供其他方法。
如今,除非Electron框架的实现发生重大变更,否则使用Electron构建了应用的数千名开发人员都无法发布更新。
虽然开发人员可以通过网站分发他们的应用程序,要求用户直接下载,但这意味着他们需要放弃Mac应用商店中的自动更新机制和iCloud同步等功能。而且,这种直接面向消费者的方法也可能很快也会陷入僵局,因为苹果公司颇有争议的公证要求可能会提出审查的要求。
以前苹果也曾有过阻碍Web在其平台上发展的举措。
苹果不允许在iOS上使用完全独立的第三方浏览器,并要求所有应用在呈现基于Web的内容时都必须使用苹果的Safari浏览器。尽管苹果商店提供了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技术越来越痛苦,开发人员不得不作罢。如今,苹果商店不再接受使用Electron构建的应用程序,开发人员可能会找到创造性的迂回策略,但无疑这是一场苹果与开发人员之间永不停息的猫鼠游戏,苹果计划今后更进一步控制在其平台上运行的应用。
一般这类的变动都会以隐私或安全的名义展开,然而现实情况是,如果用户和开发人员都没有选择权时,这种争论就显得微不足道了,因为苹果控制着这个平台、浏览器引擎以及应用的分发方式。无论你如何看待Electron应用的质量,选择才是最重要的。
苹果对其应用生态系统的控制是一种新型的垄断,对于立法者而言这种做法很难理解,而且我们也毫无反抗之力,因为当苹果同时控制着发行方式和平台本身时,我们根本就没有办法摆脱这些桎梏。
本文为 CSDN 翻译,转载请注明来源出处。
?任天堂、雅达利、索尼, 曾经的王者之争, 如何影响区块链游戏?