開掛的React Native

隨著蘋果公司推出iPhone和App Store,移動開始持續(xù)升溫,各種創(chuàng)新不斷,風頭逐漸蓋過Web,吸引了大量開發(fā)人員進入移動領(lǐng)域。這無疑使得蘋果公司成為最大的贏家,操控著很多公司的命運。

Facebook在Web技術(shù)上非常成功,深知移動未來的重要性,但又不想受制于蘋果公司。于是投入大量的人力和物力,在移動HTML5上攻堅克難,雖取得了不少進展,但始終不如意。2012年9月,F(xiàn)acebook表示:“Betting on HTML5 was a mistake.”全力轉(zhuǎn)型Native App開發(fā)。令人沒有想到的是,兩年之后Facebook居然推出了React Native for iOS技術(shù),讓人眼前一亮,興奮不已。

大家都知道,Native App因其性能優(yōu)越和功能強大而笑傲江湖,但終究逃不出Apple的掌心,多版本維護非常痛苦。HTML5雖然有Web的優(yōu)勢,但因WebView在移動設(shè)備的性能和電力等因素的制約,性能總被詬病,難成大器。而Hybrid App集Native App和Web優(yōu)點于一體,還可以相互補短,似乎應(yīng)該成為大家的選擇。然而它在成熟度、標準化等方面的顧慮,也會是一個不小的問題。

React Native技術(shù)的誕生則普遍被大家接受,各大公司紛紛介入,給人很大的想象空間。它的底層引擎是JavaScript Core,調(diào)用的是原生組件而非HTML5組件(HTML+CSS+JavaScript構(gòu)建的組件)。運行時,可以做到與Native App媲美的體驗,同時因為JavaScript代碼可以使用后端強大的Web方式管理,既可以做到高效開發(fā),也可以做到快速部署和問題熱修復(fù)。React Native App運行在客戶的手機上,而控制端可以在后端,可以充分發(fā)揮Web的能力,就像一個牽線木偶,任憑你表演。

——吳其敏,攜程旅行網(wǎng)框架研發(fā)部負責人,高級研發(fā)總監(jiān)

最近三四年間,國內(nèi)外的前端與全棧開發(fā)者社區(qū)都在堅持不懈地追尋使用JS與HTML、CSS技術(shù)體系開發(fā)App內(nèi)場景的核心工程技術(shù)。這種技術(shù),在國內(nèi)很多公司與團隊中,被通稱為H5。這種工程類的嘗試最早出現(xiàn)在新聞資訊頁等強排版、弱交互的產(chǎn)品場景中,因其靈活的布局能力和免發(fā)版的敏捷迭代潛力而大受歡迎。而后在涌現(xiàn)出大批第三方應(yīng)用市場的浪潮中,也成為了應(yīng)用市場展示App應(yīng)用詳情的技術(shù)標配。在此過程中,PhoneGap(后來的Apache Cordova)等組件的出現(xiàn)滿足了JavaScript與Android/iOS程序之間的通信需求,及時補全了這種工程方案在系統(tǒng)能力上的短板。大家在更大范圍地推進這種方案的過程中,卻遇到了一個致命的問題,那就是這種技術(shù)在處理無限滑動列表(如微博的信息流)時,受WebView的影響,表現(xiàn)出了極差的點擊響應(yīng)、內(nèi)存性能和兼容性。社區(qū)中有不少有識之士提出了模板配置化+原生渲染,或引入多個WebView運行SPA以緩解內(nèi)存問題等行之有效的方案,但均因一定程度上犧牲了靈活、敏捷的方案優(yōu)勢,而無法獲得廣泛采納。這樣的缺陷直接制約了JavaScript in App工程方案的再擴大。在百度供職時,我曾負責主持Clouda云端一體框架的研發(fā)工作,可說是在社區(qū)一線全程參與了這個演進過程。

React Native的出現(xiàn),徹底、整潔且智慧地解決了這個痛點,且通過WebKit的引入完整保留了JavaScript語言的完整邏輯性,通過原生的渲染保持了“不沾手”的順滑體驗和出色的內(nèi)存管理,沒有妥協(xié)地實現(xiàn)了大家需要的JavaScript in App的工程體系能力。

——童遙,阿里高德開放平臺總經(jīng)理

要掌握開掛的技術(shù),需要一本好書——今天為大家介紹《React Native入門與實戰(zhàn)》,目前最棒的一本React Native中文書。

React Native開啟了開發(fā)原生App的新方式,不僅提高了開發(fā)效率,同時提高了App的用戶體驗。相比Web App而言,React Native可以使用原生的組件和API,這樣就可以釋放Native的能力和體驗;相比Native開發(fā)而言,前端開發(fā)者可以使用JavaScript開發(fā)原生應(yīng)用,這樣開發(fā)效率將會得到很大的提高。

主要內(nèi)容

本書的內(nèi)容是作者在實踐過程中總結(jié)得到的,一共分為4部分。

第一部分為基礎(chǔ)語法篇,共兩章內(nèi)容,主要介紹了React Native的開發(fā)基礎(chǔ)知識。

第1章介紹了React Native的環(huán)境搭建、React與React Native之間的關(guān)系,以及如何學(xué)習(xí)ReactNative。

第2章主要介紹了React Native的開發(fā)基礎(chǔ)知識,包含flexbox布局、JSX語法,并且詳細介紹了React Native創(chuàng)建項目的過程。

第二部分為API和組件篇,共4章內(nèi)容,主要介紹了React Native的API、組件以及Native擴展和組件的封裝。

第3章介紹了React Native常用組件,包含View組件、Text組件、NavigatorIOS組件、TextInput組件、Touchable類組(TouchableHighlight、TouchableOpacity和TouchableWithoutFeedback)、

Image組件、TabBarIOS組件和WebView組件。

第4章介紹了React Native常用的API,包含AppRegistry、AsyncStorage、AlertIOS、ActionSheetIOS、PixelRatio、AppStateIOS、StatusBarIOS、NetInfo、CameraRoll、VibrationIOS、Geolocation、網(wǎng)絡(luò)數(shù)據(jù)請求的應(yīng)用以及定時器和動畫。

第5章介紹了React Native的實現(xiàn)原理以及在原生組件和API上的擴展,并且以一個“圖表”組件為案例進行實戰(zhàn)講解。

第6章介紹了使用JavaScript封裝React Native組件,主要實現(xiàn)了二級菜單組件、日歷組件以及初步介紹了開源組件的用法。

第三部分為App更新和上架篇,共一章內(nèi)容。

第7章介紹了App的動態(tài)更新和上架過程。

第四部分為實戰(zhàn)篇,共3章內(nèi)容,介紹了如何使用React Native開發(fā)原生App。

第8章介紹了使用React Native和Node.js開發(fā)企業(yè)內(nèi)部通訊錄應(yīng)用——“百靈鳥”App。

第9章介紹了使用React Native Geolocation API和高德地圖API開發(fā)LBS應(yīng)用——“附近”App。

第10章介紹了使用豆瓣開放API開發(fā)一款搜索App,主要包含圖書、電影和音樂搜索。

本書包含的代碼及其案例可以到https://github.com/vczero/React-Native-Code下載或者到圖靈社區(qū)http://www.ituring.com.cn/book/1762下載。

專業(yè)人士推薦

React Native的誕生很好地詮釋了“鑒往知來”。Facebook采用全新的設(shè)計理念,為App開發(fā)開辟了React Native這一新途徑。現(xiàn)在,作者們將這門新技術(shù)帶給了中國的開發(fā)人員。

——Eric Ye,攜程旅行網(wǎng)CTO

如果說現(xiàn)在是互聯(lián)網(wǎng)的天下,我猜將來還會是互聯(lián)網(wǎng)的天下。Native App、HTML5、Hybrid等移動技術(shù)都將成為過往云煙,有互聯(lián)網(wǎng)思維的移動技術(shù)(如React Native)將會大展身手。

——吳其敏,攜程旅行網(wǎng)框架部負責人,高級研發(fā)總監(jiān)

React Native是一項非常棒的技術(shù),它獨特的思路幫助我們找到了一個性能和可維護性的絕佳平衡點。Facebook投入了大量資源在React Native的發(fā)展上,我們已經(jīng)看到很多知名App中都使用了這項技術(shù)。它同時擁有Native App的性能和Hybrid App的可維護性,受到開發(fā)人員熱捧。

本書作者花費大量時間研究React Native對于企業(yè)App的價值,書中的內(nèi)容對于有一些前端基礎(chǔ)的同學(xué)應(yīng)該很容易理解。希望這本書能幫助降低App開發(fā)的門檻,我們也希望能和大家多多交流經(jīng)驗。

——儲誠棟,攜程旅行網(wǎng)前端框架研發(fā)總監(jiān)

移動技術(shù)發(fā)展飛速,Native與HTML5的競爭也由來已久。從PhoneGap開始,大家一直在尋找Hybrid的方式來實現(xiàn)App快速開發(fā),同時設(shè)法保持良好的用戶體驗。

2015年Facebook推出的React Native是革命性的技術(shù)框架,突破了Native與HTML5的界限,將近乎Native的流暢體驗和JavaScript的開發(fā)效率完美結(jié)合。

攜程框架團隊第一時間采用這項技術(shù)并應(yīng)用到線上App開發(fā)中,其中的實踐經(jīng)驗無疑值得國內(nèi)移動開發(fā)者借鑒,推薦大家閱讀這本書,一起追求新技術(shù)的價值。

——陳浩然,攜程旅行網(wǎng)無線研發(fā)總監(jiān)

React Native是React.js的勝利,也是JavaScript以及優(yōu)秀Web開發(fā)體驗的勝利,更是技術(shù)大融合的勝利。我相信作者在React Native方面的經(jīng)驗和心得都濃縮在這本書里,而且能夠第一時間看到一本React Native中文書,感覺如此親切。推薦大家細細閱讀,認真實踐。

——趙錦江(勾股),阿里技術(shù)專家

React Native的設(shè)計目標是既具有Web的開發(fā)體驗和發(fā)布能力,又具備Native的人機交互體驗,它在行業(yè)里掀起了一股Native和Web融合探索的熱潮。本書涉及話題較全面,既介紹了作為基礎(chǔ)的React、組件、API,又涉及更深入的組件擴展和封裝,最后三章的真實案例定能讓讀者受益匪淺。

——徐凱(鬼道),阿里技術(shù)專家

作者介紹

王利華

vczero,攜程無線框架高級工程師,HTML5培訓(xùn)講師,主要負責框架組件性能優(yōu)化、新一代框架研發(fā)。2013~2015年在高德地圖負責Node.js服務(wù)和JavaScript API相關(guān)的研發(fā)。GitHub地址:https://github.com/vczero。

魏曉軍

攜程框架研發(fā)部研發(fā)經(jīng)理,負責攜程無線前端框架團隊。2011年加入攜程,先后從事攜程PC端前端框架、數(shù)據(jù)可視化框架、無線端前端框架等開發(fā)工作?,F(xiàn)負責攜程無線前端框架的開發(fā)和性能優(yōu)化等工作。

馮誠祺

攜程框架研發(fā)部高級iOS研發(fā)工程師,負責移動端用戶行為以及性能數(shù)據(jù)的統(tǒng)計SDK、數(shù)據(jù)分析支持。正在修行,朝著全棧的方向努力著。

【閱讀原文Amazon購買】

閱讀原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

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