第1章 React Native入门 1
1.1 React Native基本知识 1
1.1.1 React简介 1
1.1.2 React Native简介 4
1.1.3 React Native工作原理 5
1.2 React Native与其他跨平台技术的对比优势 6
1.2.1 Web流 7
1.2.2代码转换流 7
1.2.3编译流 8
1.2.4虚拟机流 10
1.3小结 11
第2章 React Native环境搭建与调试 12
2.1 React Native环境搭建 12
2.1.1 Mac环境下搭建React Native 12
2.1.2 React Native开发IDE 15
2.1.3创建React Native项目 16
2.1.4运行React Native项目 17
2.1.5 iOS环境 18
2.1.6 Android环境 19
2.1.7 Windows环境下搭建React Native 22
2.2 React Native项目结构剖析 22
2.2.1 React Native文件结构 22
2.2.2 iOS文件结构及代码分析 23
2.2.3 Android文件结构及代码分析 24
2.3 React Native开发IDE介绍 26
2.3.1 Atom+Nuclide 26
2.3.2 WebStorm 29
2.4 React Native调试技巧 30
2.4.1 JavaScript调试技巧 30
2.4.2 React Native调试 33
2.5 React Native代码测试 36
2.5.1使用Flow进行类型检查 36
2.5.2 Jest单元测试 37
2.5.3集成测试 37
2.6小结 38
第3章 React Native开发基础 39
3.1 FlexBox布局 39
3.1.1 FlexBox简介 39
3.1.2 FlexBox布局模型 40
3.1.3 FlexBox布局属性 41
3.1.4 FlexBox伸缩项目属性 45
3.1.5 FlexBox在React Native中的应用 47
3.1.6 FlexBox综合实例 48
3.2 ES6语法基础 50
3.2.1组件的导入与导出 51
3.2.2类 52
3.2.3状态变量 53
3.2.4回调函数 54
3.2.5参数 55
3.2.6箭头操作符 57
3.2.7 Symbol 57
3.2.8解构 58
3.3 React JSX 60
3.3.1 JSX入门 60
3.3.2 JSX语法 61
3.4样式 64
3.4.1申明与操作样式 64
3.4.2样式分类 64
3.4.3样式使用 66
3.4.4样式传递 67
3.5手势与触摸事件 68
3.5.1触摸事件 68
3.5.2手势系统响应 70
3.5.3辅助功能 74
3.6小结 77
第4章 常用组件介绍 78
4.1 HTML元素与原生组件 78
4.1.1文本组件 79
4.1.2图片组件 80
4.1.3Textlnput组件 82
4.1.4 ScrollView组件 87
4.2结构化组件 92
4.2.1 View组件 92
4.2.2 ListView组件 94
4.2.3 Navigator组件 101
4.2.4 WebView组件 106
4.3平台特定组件 109
4.3.1 TabBarlOS和TabBairlOS.Item组件 109
4.3.2ToolbarAndroid组件 113
4.3.3 SegmentedControllOS组件 115
4.3.4 ViewPagerAndroid组件 117
4.4 Touchable系列组件 119
4.4.1 Touch ableWithoutFeedback 120
4.4.2TouchableHighlight 120
4.4.3 TouchableOpacity 122
4.4.4TouchableNativeFeedback 122
4.5小结 123
第5章 常用API介绍 124
5.1 AppRegistry 124
5.2 StyleSheet 126
5.3 AppState 128
5.4 AsyncStorage 129
5.5 PixelRatio 132
5.6 Animated 133
5.7 Geolocation 142
5.8 Netlnfo 144
5.8.1获取网络状态 144
5.8.2网络状态监听 145
5.8.3判断网络是否连接 146
5.9小结 146
第6章 组件封装 147
6.1组件的生命周期 147
6.2第三方库 150
6.2.1 react-navigation 150
6.2.2 react-native-tab-navigator 153
6.2.3 react-native-scrollable-tab-view 157
6.2.4 react-native-image-picker 161
6.2.5 Mobx 166
6.2.6 react-native-art 172
6.3自定义组件 177
6.3.1组件的导出导入 177
6.3.2TabbarView封装 178
6.3.3九宫格布局封装 181
6.3.4下拉刷新组件封装 185
6.4小结 192
第7章 网络与通信 193
7.1通信机制 193
7.1.1 React Native与Android通信 194
7.1.2 React Native与iOS通信 208
7.2 Promise机制 210
7.2.1 Promise简介 210
7.2.2 Promises基本用法 213
7.2.3在React Native中使用AJAX技术 215
7.3网络请求 216
7.3.1 XMLHttpRequest请求 216
7.3.2 fetch请求 218
7.4小结 223
第8章 混合开发高级篇 224
8.1 React Native调用iOS原生组件 224
8.1.1 React Native链接原生库 225
8.1.2 React Native调用Objective-C创建的原生组件 227
8.2 React Native调用Android原生组件 233
8.2.1编写原生UI组件 233
8.2.2编写JavaScript端实现 236
8.3小结 238
第9章 热更新与打包部署 239
9.1 iOS应用打包 239
9.1.1 iOS应用配置 240
9.1.2打包离线Bundle 242
9.1.3设置发布Scheme 243
9.1.4发布应用 243
9.2 Android应用打包 244
9.2.1打包离线Bundle 244
9.2.2生成签名密钥 245
9.2.3生成签名APK 246
9.3热更新 248
9.3.1热更新原理 249
9.3.2热更新配置 249
9.3.3登录与创建应用 252
9.3.4添加热更新功能 253
9.3.5发布热更新版本 256
9.4小结 257
第10章 基于LBS的天气预报应用开发 258
10.1需求分析与确定 258
10.1.1需求分析 258
10.1.2需求确定 260
10.1.3整体功能分析 260
10.1.4技术与架构分析 261
10.2项目设计 261
10.3程序入口与工具模块 263
10.3.1 程序入口 263
10.3.2数据模型定义与数据解析 266
10.3.3数据存储 271
10.3.4工具类 273
10.4模块开发 275
10.4.1组件封装 276
10.4.2天气预报页面开发 276
10.4.3 Navigation导航 285
10.5运行结果 286
第11章 O2O移动团购应用 288
11.1需求分析 288
11.1.1需求分析 288
11.1.2功能分析 289
11.2应用设计 291
11.2.1模块划分 291
11.2.2添加第三方库 292
11.3项目搭建与工具模块开发 293
11.3.1程序入口 293
11.3.2搭建主框架 294
11.3.3导航栏封装 298
11.3.4 WebView封装 303
11.3.5字体样式工具类 306
11.4功能开发 307
11.4.1分类导航入口开发 307
11.4.2专题活动开发 309
11.4.3商品列表开发 311
11.4.4详情页面开发 313
11.4.5 Modal分享弹窗开发 318
11.5完成开发 322
11.5.1添加闪屏页 322
11.5.2修改应用图标和名称 324
11.6小结 325