苹果试图“杀死”Web 技术

更新日期: 2019-11-12阅读: 2.2k标签: 技术

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


链接: https://fly63.com/article/detial/6395

技术开发,如何与领导谈涨薪

归根结底,涨薪其实是达到自己价值与薪资的最佳匹配. 好比你就是一只股票,公司当然会选择那些估值远高于股指的股票. 所以唯有不断增长自己的价值,才会成为你在涨薪谈判中的重要筹码.

bt种子简介与magnet磁力介绍

BT下载相信老司机们都接触过,为什么BT种子会慢慢被磁链取而代之?它们都可以用于BT下载,除了文件和字符串这表面上的区别,背后的技术上又有何不同?

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

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

工作了四五年,感觉技术上依旧长进不大

技术精进是一个持续增长的过程,而非一朝一夕,即便你在最短时间的掌握了大量的技术点,如何不及时应用到实际问题中,也很容易被遗忘。有朋友会说,我平时也挺努力的,一直不间断的学习

在阿里做了五年技术主管,我有话想说

今天的文章,他将继续深入探讨这一话题,从管理的角度分享技术TL的核心职责,主要包括团队建设、团队管理、团队文化、沟通与辅导、招聘与解雇等,希望与大家共同探讨、交流。

你和阿里员工的技术水平到底差几个等级

根据近年数据,中国现有程序员500万左右,其中P1、P2数量占据了近100万,P8及以下程序员约有490万,P9及以上仅有10万。80后是企业的技术支柱,90后已开始逐步成为企业的中坚力量

程序员常逛的技术社区

技术的成长路上,少不了跟一些志同道合的人交流,阅读一些技术前辈们的经验分享。这一路走来,还是要感谢有技术社区的陪伴,让码字之余,在技术、以及技术以外,都有不少收获。

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

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

合格PHP程序员应该掌握哪些技术?

除了能够完成基本的PHP业务开发,还能够解决大部分深入复杂的技术问题,并且可以独立设计完成中大型的系统设计和开发工作;自己能够独立hold深入某个技术方向,在这块比较专业

技术追求的误区[观点与思考]

认识的一个 10 人左右的团队,本来是用 PHP 的,这些年看到网上很多用 / 转 Go 的消息,于是团队里有不少人就焦虑了,希望找一个合适的切入时间,能够试一把 Go

点击更多...

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