关闭

苹果试图“杀死”Web 技术

时间: 2019-11-12阅读: 889标签: 技术

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


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/6395

写技术文的三个原则是什么?

我关注了很多技术类的公众号,看着大佬的公众号几千的阅读量,甚是羡慕,这直接导致了我没有心情减肥,甚至多吃了一个鸡腿。要怎么才能写出一篇好技术文章,让读到的人感到身心舒畅,快速Get到想说的点,我想破了脑袋。

技术人员如何写好周报和日报

前端时间,阿里发布声明,取消了周报制度。虽然阿里取消了周报制度,但还是有很多公司或者部门,依然在写周报。还有团队为此专门开发了周报系统。

未来,哪些技术在前端开发的地位会越来越高?

过去的这段时间里,不论是互联网巨头还是初创企业,都纷纷进行了一波优化。渐趋理智的资本淘汰了一批不能适应市场的业务,而业务的紧缩也淘汰了一批不能适应市场的程序员。

十大技术趋势

变化是唯一不变的。这也适用于我们的职业生涯。如今技术发展非常迅速。 下面十大技术预计将在2020年获得巨大市场。人工智能,区块链,增强现实和虚拟现实

谈技术人员思维转变

今天专门写一篇文章来谈下技术人员思维转变,或者说叫从技术到管理,从技术走到项目经理或产品经理的时候你应该有的一些思维转变。对于技术人员在技术上专注和精进本身是没有问题的

做技术,35岁,你慌了吗?

35岁,是互联网从业者,尤其是程序员的一道坎。在“996”盛行的互联网行业,受欢迎的永远是28岁左右精力无限的年轻人。你不会永远年轻,但永远有人年轻。

【译】React团队的技术准则

我React团队工作的这段时间,很幸运能够看见 Jordan、Sebastian、Sophie 和其他团队成员是如何解决问题的。在本文中,我会把从他们身上学到的,浓缩为一篇较高层次的技术准则

【Recorder.js+百度语音识别】全栈方案技术细节

项目中需要利用百度语音接口在Web端实现语音识别功能,采用了这样的技术方案,但实现时遇到了很多问题,发现网上大部分文章都只是在详解官方提供的example示例,对实际开发没有提供什么有价值的建议,而recorder.js是无法直接适配百度AI的语音接口的

WebService的两种方式SOAP和REST,之间的区别与优缺点

SOAP用于在Web Service中把远程调用和返回封装成机器可读的格式化数据。REST形式上应该表述为客户端通过申请资源来实现状态的转换,在这个角度系统可以看成一台虚拟的状态机。

一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

技术只是技术人员的基础,在实际工作中想脱颖而出,除了要有过硬的技术,还需要你的态度、你的各种软实力,需要你把技术转化为实际生产力的能力。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!