使用React Native可以輕松開發(fā)跨平臺應用,并且無需等待Apple、Google或者Amazon的審核過程,就可以為自己的應用發(fā)布更新。《React Native應用開發(fā)實例解析》主要從功能擴展和實際應用方面講解React Native,帶領讀者全面了解React Native的API和組件,并且閱讀本書無需React開發(fā)背景。《React Native應用開發(fā)實例解析》共五章,前兩章介紹React Native的歷史發(fā)展和基礎知識,包括原生組件和第三方庫;余下三章則分別介紹三個企業(yè)應用——Myagi、TinyRobot和Fixt,探討了當今業(yè)界使用React Native的方式,以及生產環(huán)境下需要注意的問題和相應對策。
《React Native應用開發(fā)實例解析》適合客戶端開發(fā)人員、前端開發(fā)人員,以及所有對React Native感興趣的程序員。
所在的開發(fā)團隊規(guī)模較小,但想要為iOS和Android兩個平臺開發(fā)應用?
早就聽說過React Native的大名,卻不清楚是否適合開發(fā)自己的應用?
研究無數代碼之后,想要了解更多React Native在當今業(yè)界的實際使用情況?
如果你有以上困惑,那么本書不容錯過!
● 了解React Native部署過程與原生模塊的使用
● 用JavaScript、Java和Objective-C創(chuàng)建自定義原生組件、異步調用、第三方庫鏈接
● 自定義構建腳本的實現,以及如何在iOS、Android、Web應用間共享代碼
● 無bug移動應用的維護
● 靜態(tài)類型檢查、依賴注入以及應用狀態(tài)管理
● 如何從UI中分離業(yè)務邏輯,如何實現UI測試
● 如何利用React Native實現特定用途
【作者簡介】
Alexander McLeod
銷售人員在線訓練平臺Myagi的CTO。
Pavlo Aksonov
經驗豐富的軟件開發(fā)人員,活躍的開源貢獻者,有超過15年的Web和移動端開發(fā)經驗。
Arjun Komath
精通多門語言的程序員,活躍的開源貢獻者,用React Native開發(fā)了Product Hunt的開源Android客戶端Feline。
Atticus White
就職于波士頓的Robin Powered公司,精通React Native、Angular以及NodeJS開發(fā)。
Isaac Madwed
全棧工程師,就職于Fixt。
【譯者簡介】
林昊
畢業(yè)于華中科技大學,現就職于網龍工程院前端團隊,熱衷技術翻譯,喜歡探索現代Web技術,對大前端的發(fā)展有濃厚興趣。
第1章 用JavaScript開發(fā)移動應用 1
1.1 過去 2
1.2 現狀 2
1.3 React的起源 3
1.3.1 為什么選擇React 3
1.3.2 React的工作原理 4
1.4 為什么選擇React Native 5
1.5 React Native的工作原理 5
1.6 局限性 7
1.7 開發(fā)第一個React Native應用 7
1.7.1 JSX——JavaScript 語法擴展 7
1.7.2 狀態(tài)和屬性 7
1.7.3 React組件生命周期 9
1.7.4 樣式 9
1.7.5 觸摸事件的處理 10
1.7.6 網絡 11
1.7.7 深度鏈接 11
1.7.8 動畫 13
1.7.9 調試與熱模塊重載 14
1.7.10 應用監(jiān)控 15
1.8 開始動手 15
1.9 第一步:編寫用戶界面 17
1.10 第二步:與服務器/后端通信 21
1.11 第三步:添加動畫效果 24
1.12 Android平臺上的做法 26
1.13 第四步:添加原生模塊 27
1.14 部署第一個應用 28
1.14.1 部署 28
1.14.2 CodePush 29
1.15 總結 29
第2章 原生模塊與組件 30
2.1 第一個原生組件 30
2.2 剖析原生組件 31
2.3 創(chuàng)建自定義原生組件 34
2.3.1 Android 37
2.3.2 iOS 41
2.3.3 JavaScript 45
2.4 原生模塊 47
2.4.1 剖析原生模塊 47
2.4.2 參數 49
2.4.3 回調函數和promise 50
2.4.4 常量 53
2.4.5 事件 53
2.5 示例 55
2.5.1 Android 55
2.5.2 iOS 59
2.5.3 JavaScript 60
2.5.4 注意事項:線程 62
2.5.5 注意事項:Swift 63
2.6 鏈接模塊和組件 63
2.7 總結 68
第3章 示例應用:Myagi 69
3.1 為什么選擇React Native 69
3.2 狀態(tài) 70
3.2.1 Flux 71
3.2.2 Myagi API 71
3.2.3 Marty.js與狀態(tài)模塊的生成 72
3.3 路由 73
3.4 身份驗證 76
3.5 iOS平臺的環(huán)境配置 79
3.5.1 plist文件與react-native-env模塊 79
3.5.2 iOS scheme文件與構建配置 80
3.5.3 自定義構建腳本 81
3.6 跨平臺代碼共享 82
3.6.1 代碼共享的利與弊 83
3.6.2 iOS與Android間的代碼共享 83
3.6.3 原生應用與Web應用間的代碼共享 84
3.7 測試 86
3.7.1 測試類型 87
3.7.2 單元測試的實現 90
3.7.3 UI集成測試的實現 91
3.7.4 QA測試 93
3.8 發(fā)布與更新 93
3.8.1 Git工作流 93
3.8.2 iOS應用商店更新流程 94
3.8.3 CodePush更新流程 94
3.8.4 小結 96
第4章 示例應用:TinyRobot 97
4.1 為何選擇React Native 97
4.1.1 npm 98
4.1.2 靜態(tài)類型檢查工具Flow 98
4.1.3 開源 99
4.1.4 響應式編程 99
4.1.5 XMPP 99
4.1.6 技術棧 99
4.2 可擴展應用架構 100
4.2.1 MVC 100
4.2.2 Flux 101
4.2.3 Redux 102
4.2.4 MobX與Redux的比較 103
4.2.5 領域對象模型 108
4.2.6 依賴注入 109
4.2.7 持久化 110
4.2.8 應用狀態(tài)管理 112
4.2.9 設計模式 120
4.2.10 應用架構 120
4.3 導航 120
4.3.1 NavigatorIOS 121
4.3.2 注冊與認證流程 122
4.3.3 完美的導航 123
4.4 通信 124
4.4.1 原生vs. JavaScript 125
4.4.2 函數式編程 125
4.4.3 用戶界面 126
4.5 位置 128
4.6 部署與單元測試 129
4.6.1 React Native組件測試 129
4.6.2 UI測試 130
4.6.3 快速更新應用 132
4.6.4 版本控制系統 133
4.6.5 持續(xù)部署 133
4.7 總結 133
第5章 示例應用:Fixt 134
5.1 何為Fixt 134
5.2 故障分析程序 135
5.2.1 快速分析與急救 135
5.2.2 Platfom 135
5.2.3 NetInfo 136
5.2.4 Fixt的設備參數模塊 138
5.2.5 React Native的統一思想 142
5.3 身份驗證 143
5.3.1 何為Digits 143
5.3.2 在代碼內集成Digits 143
5.3.3 樣式 145
5.3.4 回調函數 146
5.3.5 注銷 147
5.3.6 實現 148
5.3.7 數據維護 149
5.4 建議:如何管理快速變化的生態(tài) 150
5.4.1 讓應用保持最新 150
5.4.2 瀏覽文檔 150
5.4.3 何處以及如何尋求幫助 151