第一部分 基础语法篇 2
第1章 React Native简介 2
1.1 环境搭建 2
1.1.1 安装Node.js 2
1.1.2 安装React Native 6
1.1.3 使用NVM管理Node.js版本 7
1.1.4 创建项目 8
1.2 从React到React Native 9
1.2.1 React简介 9
1.2.2 React Native简介 13
1.3 为什么要使用React Native 17
1.4 如何学习React Native 17
1.5 说明 18
第2章 React Native开发基础 19
2.1 flexbox布局 19
2.1.1 介绍 19
2.1.2 布局模型 20
2.1.3 伸缩容器属性 20
2.1.4 伸缩项目属性 37
2.1.5 在React Native中使用 flexbox 46
2.1.6 实例 47
2.2 React中的JSX 53
2 2.1 JSX入门 53
2.2.2 JSX实战之ReactJS 59
2.2.3 JSX实战之React Native 77
2.3 React Native开发向导 80
2.3.1 配置文件 80
2.3.2 运行 83
2.3.3 调试 85
2.3.4 内部发布 91
2.4 参考资料 91
第二部分 API和组件篇 94
第3章 常用组件及其实践 94
3.1 View组件 94
3.1.1 View介绍 94
3.1.2 案例:九宫格实现 94
3.2 Text组件 102
3.2.1 Text组件介绍 102
3.2.2 案例:网易新闻列表展示 102
3.3 NavigatorIOS组件 109
3.3.1 NavigatorIOS组件介绍 109
3.3.2 案例:列表页跳转详情页 110
3.4 TextInput组件 113
3.4.1 TextInput组件介绍 113
3.4.2 案例:搜索自动提示 114
3.5 Touchable类组件 121
3.5.1 TouchableHighlight组件 121
3.5.2 TouchableOpacity组件 123
3.5.3 TouchableWithoutFeedback 组件 123
3.6 Image组件 124
3.6.1 Image组件介绍 124
3.6.2 加载网络图片 124
3.6.3 加载本地图片 127
3.7 TabBarIOS组件 128
3.7.1 TabBarIOS组件介绍 128
3.7.2 案例:类QQ Tab切换 129
3.8 WebView组件 133
3.8.1 WebView组件介绍 133
3.8.2 案例:使用WebView组件加载微博页面 134
3.8.3 案例:新浪微博OAuth认证 136
第4章 常用API及其实践 138
4.1 AppRegistry 138
4.1.1 AppRegistry介绍 138
4.1.2 AppRegistry示例 138
4.2 AsyncStorage 140
4.2.1 AsyncStorage介绍 140
4.2.2 案例:购物车 140
4.3 AlertIOS 149
4.3.1 AlertIOS 149
4.3.2 AlertIOS组件的应用 150
4.4 ActionSheetIOS 152
4.4.1 ActionSheetIOS介绍 152
4.4.2 ActionSheetIOS应用 152
4.5 PixelRatio 154
4.5.1 PixelRatio介绍 154
4.5.2 PixelRatio应用 155
4.6 AppStateIOS 156
4.6.1 AppStateIOS介绍 156
4.6.2 AppStateIOS实例 156
4.7 StatusBarIOS 157
4.7.1 StatusBarIOS介绍 157
4.7.2 StatusBarIOS应用 157
4.8 NetInfo 158
4.8.1 NetInfo介绍 159
4.8.2 NetInfo示例 159
4 9 CameraRoll 159
4.9.1 CameraRoll介绍 160
4.9.2 CameraRoll应用 160
4.9.3 react-native-camera 167
4.10 VibrationIOS 170
4.11 Geolocation 171
4.11.1 Geolocation介绍 171
4.11.2 Geolocation应用 172
4.12 数据请求 173
4.12.1 XMLHttpRequest 174
4.12.2 Fetch 174
4.13 定时器 175
4.13.1 setTimeout 175
4.13.2 setInterval 176
4.13.3 setImmediate 176
4.13.4 使用requestAnimationFrame开发进度条 176
4.13.5 完整代码 177
第5章 Native扩展 178
5.1 通信机制 178
5.1.1 模块配置映射 178
5.1.2 通信流程 180
5.2 自定义Native API组件 183
5.2.1 模块和方法定义 184
5.2.2 回调函数 185
5.2.3 线程 187
5.2.4 常量导出 188
5.2.5 事件 189
5.2.6 实战 190
5.3 构建Native UI组件 196
5 3.1 概述 196
5.3.2 UI组件的定义 196
5.3.3 UI组件属性 197
5.3.4 组件方法 199
5.3.5 事件 199
5.3.6 实例 201
第6章 组件封装 208
6.1 二级菜单组件 208
6.1.1 静态组件的实现 209
6 1.2 实现组件的复用和封装 213
6.1.3 应用二级菜单组件 219
6.2 日历组件 220
6.2.1 开发日历组件 221
6.2.2 应用日历组件 226
6.3 开源组件 227
6.3.1 react-native-swiper 228
6 3 2 react-native-modal 231
第三部分 App更新和上架篇 236
第7章 热更新和上架 236
7.1 动态更新 236
7.1.1 初始化设置 236
7 1.2 更新逻辑 238
7.1.3 回滚策略 240
7.2 App上架 240
7 2.1 证书生成 241
7.2.2 注册应用 248
7.2.3 上传应用 249
第四部分 实战篇 254
第8章 企业内部通讯录应用开发 254
8.1 需求提 254
8.2 技术架构 255
8.3 服务器端设计和开发 256
8.3.1 服务器端整体设计 257
8 3.2 用户数据模型设计 257
8.3.3 公告数据模型设计 259
8.3.4 服务路由设计 260
8.3.5 创建项目 260
8.3.6 app.js入口文件 262
8.3.7 加载服务模块到内存 263
8.3.8 工具类开发 264
8.3.9 用户信息接口 265
8.3.10 公告消息接口 270
8.3.11 建议 272
8.4 客户端设计和开发 272
8.4.1 客户端设计 272
8.4.2 工具组件和服务 274
8.4.3 添加依赖库 275
8.4.4 程序入口和登录 277
8.4.5 联系人列表 286
8.4.6 公告功能 294
8.4.7 管理功能 299
8.4.8 关于 316
8.4.9 建议 318
第9章 基于LBS的应用开发 319
9.1 功能设计 319
9.1.1 需求确定 319
9.1.2 开发目录结构 320
9.2 程序入口和工具模块 321
9.2.1 注册应用程序 321
9.2.2 工具模块 322
9.2.3 Nearby组件入口 323
9.3 列表组件开发 327
9.3.1 通用列表组件开发 327
9.3.2 完成列表页 334
9.4 详情页组件开发 336
9.5 WebView地图模块开发 338
9.6 综合效果 341
第10章 豆搜App 342
10.1 豆瓣API 342
10.1.1 熟悉豆瓣API 342
10.1.2 图书、电影、音乐API 343
10.2 应用设计 345
10.2.1 功能设计 345
10.2.2 模块划分 345
10.3 公共模块开发 347
10.3.1 工具类开发 347
10.3.2 服务列表 348
10.3.3 Navigator封装 349
10.3.4 公共头封装 350
10.3.5 WebView封装 352
10.3.6 搜索框封装 353
10.4 功能开发 354
10.4.1 入口组件 354
10.4.2 图书列表页开发 356
10.4.3 图书详情页开发 361
10.4.4 电影模块开发 363
10.4.5 音乐模块开发 368
10.5 完成豆搜App 372