我與 React Native 的這一年

一直以來都想寫點關(guān)于 React Native 的文章,奈何自己實在太懶,一直拖到現(xiàn)在铅乡,我從去年三月份開始用 React Native,到現(xiàn)在剛好一年烈菌,在這一年里,借助于 React Native 高效的開發(fā)效率花履,大大小小也開發(fā)了近十款 App芽世,是時候做個小結(jié)了。

在使用 React Native 之前诡壁,我用 Ionic 開發(fā)過幾款 App济瓢,那個時候 React Native 還沒有開源,市面上可選的方案并不多妹卿,要么原生要么是基于 Cordova 的 Hybrid App 方案旺矾。原生開發(fā)對于我們來說并不可行,對于 iOS 和 Android 平臺需要兩組不同的開發(fā)人員維護兩套完全不一樣的代碼夺克,然而實現(xiàn)的功能卻是一樣的箕宙。而 Hybrid App 自然成為了最合理的方案,那個時候最火的 Hybrid App 框架就是基于 Angular 的 Ionic铺纽,借助于 Ionic 完善的解決方案柬帕,再加上基本的 Web 開發(fā)技術(shù),幾乎不需要任何原生開發(fā)技術(shù)就可以開發(fā)出非常美觀而實用的 App。

眾所周知陷寝,Hybrid App 是跑在 WebView 上的锅很,這一點跟 Web App 是一樣的,但是 Hybrid App 通過暴露原生方法給 JS凤跑,提供了普通 Web App 所不具備的原生訪問能力爆安。然成也 WebView 敗也 WebView,Hybrid App 本身就是一個 WebView仔引,這也決定了它的性能是受 WebView 限制的扔仓,而且還會因為不同的平臺和系統(tǒng)版本而出現(xiàn)不兼容的情況,尤其是 Android 上不同版本的 WebView 對 CSS 的支持程度不一樣肤寝,導致相同的 CSS 樣式在不同的系統(tǒng)版本的表現(xiàn)不一致当辐。雖然不兼容的問題可以通過 Crosswalk 的方案解決,也就是用 Crosswalk 來替代系統(tǒng)自帶的 WebView鲤看,這樣就不存在兼容性問題了缘揪,在低版本的 Android 上性能也有一定提升。然而代價也是巨大的义桂,打包 Crosswalk 意味著你的 App 體積要硬生生增加 20 多兆找筝,就算是 Crosswalk Lite,也還是要增加 10 多兆慷吊,然而就算你對 App 體積不介意袖裕,可 Crosswalk 說到底也還是個瀏覽器內(nèi)核而已,意味著性能依然是瓶頸溉瓶。

我用 Ionic 開發(fā)過幾個 App急鳄,在 iOS 上體驗確實還說的過去,然而到了 Android堰酿,完全是另一個世界疾宏,在非高端機型上體驗極差,打開速度慢触创,運行速度更是不能忍坎藐,更不用說對于不同的機型的兼容性問題。除開性能不說哼绑,Ionic 的開發(fā)體驗也是不那么愉快岩馍。

因為是基于 Angular 開發(fā),利用 Angular 封裝常用控件抖韩,隱藏控件的實現(xiàn)細節(jié)蛀恩,使用者只需編寫控制器邏輯就可以寫出一個看起來還不錯的界面,可以省很多事茂浮,然而 Angular 存在的問題也一并帶過來赦肋。Angular 的學習曲線之陡峭簡直嘆為觀止块攒,各種復雜的概念更是讓人望而卻步。我不知道多少次去查官方文檔 以及 Stackoverflow 過 Service佃乘、Provider 以及 Factory 的區(qū)別囱井,到底什么情況該用 Factory 什么情況用 Service,我依然不知道趣避。然后是 directive庞呕,別問我 link compile 是干嘛的,我就想問 @attr=attr 的區(qū)別是什么程帕?以至于我雖然做過好幾個大型的 Angular 項目住练,我卻幾乎沒有自己寫過 directive。更不用說 Angular 槽點滿滿的模塊系統(tǒng)愁拭,模塊與模塊間的 Service 盡然還不能重名讲逛,簡直醉。使用 Angular 最大的一個坑就是一旦你用上了 Angular岭埠,你所有的東西都要 Angular 化盏混,比如我用個 moment,要先寫一個服務(wù)包一層惜论,很多人好像用了 Ionic 之后就忘了正常的 JS 是怎么寫的许赃,經(jīng)常問一些 JS 常識問題,思維被 Angular 限制了馆类。

而且 Angular 本身并不是為了移動開發(fā)而設(shè)計的混聊,并沒有為移動平臺而優(yōu)化,所以 Angular 在手機上的性能并不好(這里我不去說他的打包體積乾巧,因為本來腳本本來就在本地句喜,所以沒什么影響)。所以當我知道 Ionic2 會基于 Angular2 開發(fā)的時候沟于,我還是很期待的藤滥,一直都在關(guān)注 Ioinc2 以及 Angular2 的開發(fā)進度。然而當我見證了 Angular2 的 40 多個 alpha 版本 以及 幾個 beta 版本社裆,每次都以為這就是最后一個測試版,正式版就要出來的時候向图,它就給你的小數(shù)點后的數(shù)字漲一下泳秀,pia pia pia 打臉,我就果斷取關(guān)了榄攀。順便吐槽一下 Angular2嗜傅,這種在 RC 階段都可以隨便修改 API 重寫 Router 的行為,很 Google檩赢。再測試了下還處于 alpha 版本 Ionic2吕嘀,那性能連一代都不如,于是我徹底放棄了 Ionic。貌似 Ionic2 在前一段時間終于出了正式版偶房,but who cares趁曼。

雖然 Ionic 本身確實是一個很不錯的框架,讓無數(shù)以前只會寫網(wǎng)頁的前端進入到了移動開發(fā)領(lǐng)域棕洋,用現(xiàn)有的 Web 開發(fā)技術(shù)就可以開發(fā)出看起來還不錯的 App挡闰,然而它錯就錯在它抱錯了大腿,選擇了 Angular掰盘,選擇了 WebView摄悯,性能和體驗是繞不過去的坎,不過現(xiàn)在大熱的 PWA愧捕,可能是它不錯的歸宿吧奢驯。

然后我開始嘗試 React Native,從此完全進入了一個全新的世界次绘。

未完待續(xù)╮(╯▽╰)╭

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘪阁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子断盛,更是在濱河造成了極大的恐慌罗洗,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钢猛,死亡現(xiàn)場離奇詭異伙菜,居然都是意外死亡,警方通過查閱死者的電腦和手機命迈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門贩绕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人壶愤,你說我怎么就攤上這事淑倾。” “怎么了征椒?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵娇哆,是天一觀的道長。 經(jīng)常有香客問我勃救,道長碍讨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任蒙秒,我火速辦了婚禮勃黍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晕讲。我一直安慰自己覆获,他們只是感情好马澈,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弄息,像睡著了一般痊班。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疑枯,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天辩块,我揣著相機與錄音,去河邊找鬼荆永。 笑死废亭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的具钥。 我是一名探鬼主播豆村,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骂删!你這毒婦竟也來了掌动?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤宁玫,失蹤者是張志新(化名)和其女友劉穎粗恢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欧瘪,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡眷射,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了佛掖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妖碉。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芥被,靈堂內(nèi)的尸體忽然破棺而出欧宜,到底是詐尸還是另有隱情,我是刑警寧澤拴魄,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布冗茸,位于F島的核電站,受9級特大地震影響匹中,放射性物質(zhì)發(fā)生泄漏夏漱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一职员、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跛溉,春花似錦焊切、人聲如沸扮授。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刹勃。三九已至,卻和暖如春嚎尤,著一層夾襖步出監(jiān)牢的瞬間荔仁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工芽死, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乏梁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓关贵,卻偏偏與公主長得像遇骑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子揖曾,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容