我与墙的故事。

前言

本文只从技术发展角度出发,资本层面不允置评。

正文

筑墙的公司

如果一家公司有自研的操作系统,有完善的设备生态,并且还拥有一大批成千上万的粉丝用户,那么很可能会发生一个现象:的出现

我说的墙指的是,如果你想在我的圈子牟利,你必须遵守我的规矩,必须用我提供的工具,且必须维护我的利益。

这样的一堵墙不仅束缚了开发者,无形中还阻碍了它自身的发展。

Apple,正是一家喜欢筑墙的公司。

我的经历

这两天,我针对网站在平板上的显示问题,特地去调整了一下Tomotoes的样式。

结果便陷入了与的对抗之中。

第一堵墙

我遇到的第一堵墙是Apple专有的浏览器内核。

因为Tomototes在平板下存在层叠渲染 Bug,我单纯地以为只是Safari的问题,结果当下载了好多个浏览器之后,惊奇地发现:网站显示的问题居然一致。

不管了Firefox还是Chrome全是一个样,惊了。

于是我上网搜了一下Apple的浏览器内核信息。

apple only have a webkit
apple only have a webkit

信息很明显:我Apple商店中的所有浏览器都必须用我的内核,你们做的只是UI

So,那接下来和这一个内核打交道就是了。

第二堵墙

我遇到的第二堵墙是苹果浏览器内核的实现标准的任意性。

原本,我想写的文章是 Safari-下一个 IE6,但针对性不强就改了。

CSS有一个专门指定层叠元素优先级的样式,z-index

各家浏览器实现得参差不齐,但都差不多。

Apple不一样,它有自己的设计理念。

在带有 3D 变换的元素上,它根据语义不认同z-index,而是translateZ

我觉得这一理念,其实有点道理的,人眼在 3D 层面看待一件东西,确实是 Z 轴决定重叠优先级。

但,这CSS国际标准就可以这么任意实现嘛,在你重定自己的标准时,你想过有多少开发者会因此掉头发啊。

第三堵墙

我遇到的第三堵墙便是IOS设备上的网页调试问题。

试问,在 2020 年,你如果没有一台MacApple下的所有工具 都休想染指。

调试 Android 设备上的网页非常简单,只需要打开Chrome开发工具,选择远程设备即可。

IOS设备,我只能借助第三方软件。

由于我的设备是IOS13+Win10,有很多软件都无法适配。比如,ios-webkit-debug-proxyRemoteDebug iOS WebKit Adapter等。

这一来二去,浪费了很长时间。最后,我想了想,只要让IOS设备能在同一网段访问本地网站就可Debug

然后,我找到了browser-sync这一利器,满足了基本需求。

嗯,“愉快”的Debug之路便开始了。

互联网的专制者

刚刚在网上刷到了贾跃亭的一封致苹果的公开信,信中所讲虽有利他之嫌,但对于苹果专制的描绘却很形象。

信中有一句话是这样描述的:

在苹果的封闭的体系中,所有的应用开发者、用户,都必须是他的顺民,都必须遵循他苛刻的规则。苹果,已成为“封闭”的代名词。


结束语

额,本文有点标题党了。

但这么封闭专制的公司,不吐不快~

转载本站文章请注明作者和出处 一个坏掉的番茄,请勿用于任何商业用途。