首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

苹果试图“杀死”Web技术

这家公司在自己的平台上为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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/luANFB6epLu0xREgJJ9S
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券