最近几天,苹果禁止JSPatch
的事件比较热,最近几天也做了一点思考。
双重标准
- 禁止脚本下载代码,改变
App
的默认属性,从这个角度讲,JSPatch
主要用来做“热修复”,解决线上bug
,用到的情况比较少。比如我们就只用到了3~4次而已,每次的代码改动不超过50行。 -
React Native,weex
等“热更新”,其主要功能就是用JS
来替代Native
,进行web
式开发,是堂而皇之的用脚本改变App
功能 -
JSPatch
被禁止了,React Native,weex
没事,这个就相当于小偷小摸被抓了,强盗没事一样。 -
WebKit
和JavaScriptCore
可以作为例外,因为苹果提供了这些技术 -
runtime
其实也是可以用的,因为苹果开放了它的API
-
JSPatch
只是把JavaScriptCore
和runtime
结合起来,结果就不能用了
苹果的忧虑
- 得开发者得天下,当年苹果能够迅速起来,苹果商店吸引了一大批开者是很重要的原因。比如,本人是传统行业用c写小应用的,也转过来了。现在的情况是,iOS开发者逐步转JS的前端开发者,国内的趋势特别明显。
- 开放
JavaScriptCore
只是给JS开了小口子,不过现在JS逐渐成为移动开发的主流技术,苹果自己推的Swift
,在JS面前显得软弱无力 - 在
Swift
试图采用泛型替代runtime
,不过效果很差,开发者对runtime
形成了依赖。runtime
和JS,原本是苹果漏了口子,准备小范围应用的技术,现在成了主流,并且危害到了自己的技术,不论是Obejct-C
还是Swift
,都有被再次边缘化的危险。
苹果的应对
- 应用商店审核时最后的手段了
- 通过安全性的接口,希望开发者减少JS的使用,增加
Native
的比例 - 希望开发者转
Swift
,而不是JS -
JSPatch
不是腾讯的主流,先禁一下,看看反应 -
React Native,weex
,微信小程序等应该是主要目标,只是顾忌背后的庞然大物,不敢贸然下手
苹果的期望
- 加强应用商店审核,重新把控生态系统
- 普及Swift,容忍Object-C,开发者重新回到Native
- 用泛型替代
runtime
,隐藏runtime
相关的API - 取消
JavaScriptCore
,降低JS的使用比例
作为iOS开发者,怎么办?
- 如果有机会用Swift,那就安心用吧,这是苹果期望的方向
- 如果坚持用Object-C,那也没问题,这是Native的,也是苹果希望的开发方式
- JS学起来也没问题,多一项技术总是好的。并且现在JS如火如荼,连苹果都不敢贸然下手
- 至于
React Native,weex
,根据需要吧,选一个就行。目前这两个各有特点,很难说一个比另外一个好。 - 这次是苹果的危机,同样也是iOS开发者的危机。根据具体情况,灵活应变吧
- 在最终结局出来之前,做预测意义不大,先照顾眼前再说。
对苹果有信心吗?
- 如果还是乔布斯掌舵,对苹果可以有80%的信心(不说100%只是留个余地)
- 苹果的特色是安全、快速、良好的体验,而不是功能、兼容性、跨平台
- 目前JS已经危及iOS开发者的生存;当开发者都离开苹果,转投JS前端开发之后,苹果也差不多被边缘化了。当年PC平台微软发生的事在移动平台的苹果上将重演
- 不禁止JS,
Swift
基本上起不来,至少国内是这样的 - 苹果产品也越来越失去自己的特色,开始拼功能、拼配置、还有多种尺寸屏幕---渐渐地跟一个普通Android产商也差不多了。目前的状况,只是在硬件领域发生的事传导到软件开发领域
- 目前,我对苹果只有50%的信心(不说20%只是自己乐观向上的心态)。作为iOS开发者,尽快开始转JS,毕竟还是要吃饭
关键因素
- 苹果是否有决心禁止JavaScript?
- 如果有这个决心,苹果还有生存的机会;
- 如果没有这个决心,苹果将被边缘化,开发者由于生存压力,转JavaScript前端开发。微软在PC输给Java的事情在移动端将重演
- 如果是乔布斯时代,苹果会这么做,体验和生态是他最看重的
- 目前是库克时代,没有信心,从这几年苹果推出大屏,增加功能,学习Android等等来看,越来越没特色。
选择
- 当然希望苹果坚定往swift的方向走,坚持自己特色,才有生存的空间。至于
JavaScript
等脚本,用在命令自动化方面就可以了,或者后台开发,这才是动态更新应该考虑得地方 - 适应环境,现在学
JavaScript
,转前端。语法跟swift
有点像,也不浪费。 -
Swift
转业余时间或者延后,先解决眼前的问题最重要。 -
swift3
的重点是API
的学习和使用,写一些小工具。代码托管从GitHub转到码云,就像写东西从Gitbook转到简书一样 - 继续当吃瓜群众看戏,看苹果到底有没有魄力维护自己的生态系统,保持自己的特色。
- Mozilla有个开发者写了一篇关于Firefox OS的文章,其中有一条教训就是坚持自己的特色和做自己擅长的,不是拼功能,不迁就市场与合作伙伴。关于这一点,此时的苹果很有参考意义。苹果能吸取教训吗?苹果有这个决心吗?苹果会珍视自己的特色吗?
一个失败移动操作系统的前世今生,别了Firefox OS