如果乔布斯泉下有知,肯定也会欣赏和鼓励库克的这个做法。如果乔布斯活着,估计就会把热更新,热修复和混合开发等技术搞死在萌芽里。因为苹果的象牙塔只允许培育出更优秀的技术,更人性化,更流畅的体验。
事件
今天在移动互联网的世界里发生了一件大事,那就是苹果官方禁止了热更新和JSpatch,导致很多人的项目上线和更新被拒绝。很多苹果开发者一大早,邮箱里都收到了这么一封邮件,如下图:
苹果开发者质疑可能是项目中使用了JSPatch、Weex 以及 ReactNative 这些热更新和混合开发的技术。对于修复 Bug 提交审核的开发者来说,热更新技术虽然可以帮开发者避免长时间的审核等待以及多次被拒造成的成本开销,但是也给黑客留了后门,正因为如此也就违反了苹果的安全和隐私政策。
苹果官方还算比较有人性了,此次行动只是对使用热更新的应用进行了相关警告,并没有把已经上线的产品进行直接下架处理。
分析
如果乔布斯还活着,肯定会把热更新,热修复技术和混合开发给禁止的,乔布斯作为一名有极度控制欲的极客,也作为一名优秀的产品经理,是不允许让他失去对产品的控制的。以乔布斯的个性,他喜欢端对端一体化的极端控制,他认为其他人的产品就是饭桶,就是垃圾,必须按照我的规则和想法来。极度混乱和失去控制的状态会毁掉整个生态。
热更新,热修复技术影响了产品的安全性,给用户带来了一定的困扰和造成失去隐私的问题,所以从整个安全的策略和隐私保护方面来讲,禁止热更新和热修复技术的使用时可以理解的。这是不管在乔布斯时代,还是库克时代都是不允许的行为。所以此次受影响的大多数应用都是使用了 JSPatch 等热更新和热修复技术的 App 。
而混合开发技术,尤其是跨平台的,比如 ReactNative 技术,其实从道理上来讲,前端技术的发展,推动了整个行业的发展。我认为在乔布斯时代,即使混合开发技术不错,如果混合开发的 App 充满了整个 App Store 商店,自己脑补一下吧,你感觉等很多用户体验不如原生的 App 占大多数的时候,作为一个注重流畅性和用户体验的科技公司来说,能够容忍吗?苹果之所以做的好,生态健康,就是在于自己的严格把关和绝对控制。反正如果乔布斯活着的话,我才估计会进行严厉打击。
但是,作为一个程序员来说,对于从技术发展的角度来讲,这次事件给大家都是一个提醒,但是苹果官方也不能一棍子全部打死,技术的发展和前进,还是需要不断地探索和尝试的,即使前期某项技术不够优秀,体验不够流畅,前期应该允许部分使用混合开发技术的优秀和安全的 App 进行上线和发展,以及使用,只不过是应该从审核机制入手进行严格把关,为用户,为生态做好检验。
而对于苹果自己来讲,也应该多推动和发展自家技术,完善自己的框架和语言,让自己的技术更加强大,使用更加方便,提高更高的效率,这样,就会让更多的人使用自家技术,而不是第三方。
影响
此次事件,目前来说,影响最大的就是使用热更新和热修复技术的 App 暂时无法上线,估计进一步的情况,还得等待苹果官方的回应和表态。但是我想从另一方面说:公司不要为了节约成本,而忽略的体验,我认为用心做产品的人,应该多注重产品的品质和用户体验,而不是想法节约成本。用户爽了,公司才能爽。跨平台,混合开发固然能够快速实现功能,但是在某一项技术还未成熟之前,也别贸然使用。
对于开发者来说,据说今天原生的 iOS 开发者笑的一天都无法敲代码了,心里那个美滋滋的。对于那些已经在学习了 RN、Weex、JSPatch 技术的同学来说,这是个悲惨的故事。
很多原生 iOS 开发者在无情的嘲笑学习混合开发技术的同学中说:看看吧,看看我们老大,这才是我们老大,苹果爸爸还没有忘记我们啊!已经感动的笑中带泪。
iOS 原生开发会不会随着春天的来临,再次复苏呢?当然,iOS 原生开发复苏的话,对于我们 Android 原生开发也是好事。毕竟公司老板们想着凭借跨平台开发节约成本呢,最后苹果不允许,还得用两个人,一个开发 iOS ,一个开发 Android 。
iOS 和 Android 原生开发者们,现在去笑一会吧,毕竟该笑的时候,还是应该笑的,但是能笑多久呢?总之,技术也一直在发展,不变的就是永远学习,永远学习。
总结
目前波及的库大概如下:rollout,ReactNative,weex,JSPatch,bugtags,个推 ,bugly with hotfix 。据说主要受影响的是还是热更新和热修复,ReactNative 等混合开发受到波及貌似并不是其本身,而是有开发者用到了一些第三方不安全的库,比如 rollout 导致的。
反正,我感觉乔布斯会说:我走后,库克终于办了一件可以让我安心的事了,终于知道该怎么做产品,做服务,做生态了。
在 GitHub 上的一下三个开源库下的 Issues 下面欢乐多啊,都炸天了,大家有兴趣可以去看看。
JSPatch : https://github.com/bang590/JSPatch/issues/746
react-native :https://github.com/facebook/react-native/issues/12778
Weex :https://github.com/alibaba/weex/issues/2875
网友评论