最近幾天,蘋果禁止JSPatch
的事件比較熱咒唆,最近幾天也做了一點(diǎn)思考。
雙重標(biāo)準(zhǔn)
- 禁止腳本下載代碼释液,改變
App
的默認(rèn)屬性全释,從這個(gè)角度講,JSPatch
主要用來(lái)做“熱修復(fù)”误债,解決線上bug
浸船,用到的情況比較少。比如我們就只用到了3~4次而已找前,每次的代碼改動(dòng)不超過50行糟袁。 -
React Native,weex
等“熱更新”躺盛,其主要功能就是用JS
來(lái)替代Native
,進(jìn)行web
式開發(fā)形帮,是堂而皇之的用腳本改變App
功能 -
JSPatch
被禁止了槽惫,React Native,weex
沒事辩撑,這個(gè)就相當(dāng)于小偷小摸被抓了界斜,強(qiáng)盜沒事一樣。 -
WebKit
和JavaScriptCore
可以作為例外合冀,因?yàn)樘O果提供了這些技術(shù) -
runtime
其實(shí)也是可以用的各薇,因?yàn)樘O果開放了它的API
-
JSPatch
只是把JavaScriptCore
和runtime
結(jié)合起來(lái),結(jié)果就不能用了
蘋果的憂慮
- 得開發(fā)者得天下,當(dāng)年蘋果能夠迅速起來(lái)峭判,蘋果商店吸引了一大批開者是很重要的原因开缎。比如,本人是傳統(tǒng)行業(yè)用c寫小應(yīng)用的林螃,也轉(zhuǎn)過來(lái)了∞壬荆現(xiàn)在的情況是,iOS開發(fā)者逐步轉(zhuǎn)JS的前端開發(fā)者疗认,國(guó)內(nèi)的趨勢(shì)特別明顯完残。
- 開放
JavaScriptCore
只是給JS開了小口子,不過現(xiàn)在JS逐漸成為移動(dòng)開發(fā)的主流技術(shù)横漏,蘋果自己推的Swift
谨设,在JS面前顯得軟弱無(wú)力 - 在
Swift
試圖采用泛型替代runtime
,不過效果很差缎浇,開發(fā)者對(duì)runtime
形成了依賴铝宵。runtime
和JS,原本是蘋果漏了口子华畏,準(zhǔn)備小范圍應(yīng)用的技術(shù)鹏秋,現(xiàn)在成了主流,并且危害到了自己的技術(shù)亡笑,不論是Obejct-C
還是Swift
侣夷,都有被再次邊緣化的危險(xiǎn)。
蘋果的應(yīng)對(duì)
- 應(yīng)用商店審核時(shí)最后的手段了
- 通過安全性的接口仑乌,希望開發(fā)者減少JS的使用百拓,增加
Native
的比例 - 希望開發(fā)者轉(zhuǎn)
Swift
,而不是JS -
JSPatch
不是騰訊的主流晰甚,先禁一下衙传,看看反應(yīng) -
React Native,weex
厕九,微信小程序等應(yīng)該是主要目標(biāo)蓖捶,只是顧忌背后的龐然大物,不敢貿(mào)然下手
蘋果的期望
- 加強(qiáng)應(yīng)用商店審核扁远,重新把控生態(tài)系統(tǒng)
- 普及Swift俊鱼,容忍Object-C,開發(fā)者重新回到Native
- 用泛型替代
runtime
畅买,隱藏runtime
相關(guān)的API - 取消
JavaScriptCore
并闲,降低JS的使用比例
作為iOS開發(fā)者,怎么辦谷羞?
- 如果有機(jī)會(huì)用Swift帝火,那就安心用吧,這是蘋果期望的方向
- 如果堅(jiān)持用Object-C,那也沒問題犀填,這是Native的蠢壹,也是蘋果希望的開發(fā)方式
- JS學(xué)起來(lái)也沒問題,多一項(xiàng)技術(shù)總是好的宏浩。并且現(xiàn)在JS如火如荼知残,連蘋果都不敢貿(mào)然下手
- 至于
React Native,weex
比庄,根據(jù)需要吧求妹,選一個(gè)就行。目前這兩個(gè)各有特點(diǎn)佳窑,很難說一個(gè)比另外一個(gè)好制恍。 - 這次是蘋果的危機(jī),同樣也是iOS開發(fā)者的危機(jī)神凑。根據(jù)具體情況净神,靈活應(yīng)變吧
- 在最終結(jié)局出來(lái)之前,做預(yù)測(cè)意義不大溉委,先照顧眼前再說鹃唯。
對(duì)蘋果有信心嗎?
- 如果還是喬布斯掌舵瓣喊,對(duì)蘋果可以有80%的信心(不說100%只是留個(gè)余地)
- 蘋果的特色是安全坡慌、快速、良好的體驗(yàn)藻三,而不是功能洪橘、兼容性、跨平臺(tái)
- 目前JS已經(jīng)危及iOS開發(fā)者的生存棵帽;當(dāng)開發(fā)者都離開蘋果熄求,轉(zhuǎn)投JS前端開發(fā)之后,蘋果也差不多被邊緣化了逗概。當(dāng)年P(guān)C平臺(tái)微軟發(fā)生的事在移動(dòng)平臺(tái)的蘋果上將重演
- 不禁止JS弟晚,
Swift
基本上起不來(lái),至少國(guó)內(nèi)是這樣的 - 蘋果產(chǎn)品也越來(lái)越失去自己的特色仗谆,開始拼功能指巡、拼配置、還有多種尺寸屏幕---漸漸地跟一個(gè)普通Android產(chǎn)商也差不多了隶垮。目前的狀況,只是在硬件領(lǐng)域發(fā)生的事傳導(dǎo)到軟件開發(fā)領(lǐng)域
- 目前秘噪,我對(duì)蘋果只有50%的信心(不說20%只是自己樂觀向上的心態(tài))狸吞。作為iOS開發(fā)者,盡快開始轉(zhuǎn)JS,畢竟還是要吃飯
關(guān)鍵因素
- 蘋果是否有決心禁止JavaScript蹋偏?
- 如果有這個(gè)決心便斥,蘋果還有生存的機(jī)會(huì);
- 如果沒有這個(gè)決心威始,蘋果將被邊緣化枢纠,開發(fā)者由于生存壓力,轉(zhuǎn)JavaScript前端開發(fā)黎棠。微軟在PC輸給Java的事情在移動(dòng)端將重演
- 如果是喬布斯時(shí)代晋渺,蘋果會(huì)這么做,體驗(yàn)和生態(tài)是他最看重的
- 目前是庫(kù)克時(shí)代脓斩,沒有信心木西,從這幾年蘋果推出大屏,增加功能随静,學(xué)習(xí)Android等等來(lái)看八千,越來(lái)越?jīng)]特色。
選擇
- 當(dāng)然希望蘋果堅(jiān)定往swift的方向走燎猛,堅(jiān)持自己特色恋捆,才有生存的空間。至于
JavaScript
等腳本重绷,用在命令自動(dòng)化方面就可以了沸停,或者后臺(tái)開發(fā),這才是動(dòng)態(tài)更新應(yīng)該考慮得地方 - 適應(yīng)環(huán)境论寨,現(xiàn)在學(xué)
JavaScript
星立,轉(zhuǎn)前端。語(yǔ)法跟swift
有點(diǎn)像葬凳,也不浪費(fèi)绰垂。 -
Swift
轉(zhuǎn)業(yè)余時(shí)間或者延后,先解決眼前的問題最重要火焰。 -
swift3
的重點(diǎn)是API
的學(xué)習(xí)和使用劲装,寫一些小工具。代碼托管從GitHub轉(zhuǎn)到碼云昌简,就像寫東西從Gitbook轉(zhuǎn)到簡(jiǎn)書一樣 - 繼續(xù)當(dāng)吃瓜群眾看戲占业,看蘋果到底有沒有魄力維護(hù)自己的生態(tài)系統(tǒng),保持自己的特色纯赎。
- Mozilla有個(gè)開發(fā)者寫了一篇關(guān)于Firefox OS的文章谦疾,其中有一條教訓(xùn)就是堅(jiān)持自己的特色和做自己擅長(zhǎng)的,不是拼功能犬金,不遷就市場(chǎng)與合作伙伴念恍。關(guān)于這一點(diǎn)六剥,此時(shí)的蘋果很有參考意義。蘋果能吸取教訓(xùn)嗎峰伙?蘋果有這個(gè)決心嗎疗疟?蘋果會(huì)珍視自己的特色嗎?
一個(gè)失敗移動(dòng)操作系統(tǒng)的前世今生瞳氓,別了Firefox OS
參考文章
蘋果「熱修復(fù)門」事件復(fù)盤策彤、分析和展望
跨平臺(tái)開發(fā)時(shí)代的 (再次) 到來(lái)?