本书配套的GitHub文档持续更新中,保证书中知识在zui新版本RN中可用。
★ 迄今为止,真正意义上的React Native跨平台开发原创图书。
★ 本书架构是作者精心设计的,适合初学者入门,本次升级用 ES6语法写。
★ 本书所有例程均是原创的,并且在代码旁有注释解说。
★ 本书中的6.5节、第11章、14.5节都是笔者精心整理调研出来的技术,能让更多的开发者享受到React Native开发的便利性。
★ 加入了React Native一年以来的新能力:
1、RN项目在iOS 10手机上的配置启动过程;
2、RN项目断点调试的使用方法;
3、手机中图片剪切、通过网络上传;
4、RN开源社区介绍与知名开源组件介绍;
5、Modal组件与Navigator组件的配合使用;
6、网络部分增加了测试服务器的搭建与介绍,让读者更方便掌握RN的网络开发;
7、推送能力、打开外部链接与从外部链接打开RN应用能力
8、新组件:ActivityIndicator、PermissionsAndroid、Slider、Vibration;
9、原各RN组件从0.28到0.42期间新增的属性与方法介绍。
React Native是Facebook公司推出的强大的、开源的跨平台移动应用开发框架。它能大幅减少跨平台移动应用开发的工作量(相比原生代码开发能减少至少50%),并且代码结构清晰、简单易懂。同时React Native框架采用模块化的结构,使应用版本的更新迭代非常简单。随着它的日趋成熟,React Native必然会成为移动应用开发的主流技术。
《React Native跨平台移动应用开发(第二版)》由浅入深,系统发介绍了使用React Native框架跨平台开发所需要用到的知识。《React Native跨平台移动应用开发(第二版)》每一章都专注于阐述移动应用开发某一方面的知识,配合若干个原创的、精简的例程,能让读者系统、快速地掌握该方面知识。
《React Native跨平台移动应用开发(第二版)》的结构是按一个有基本的编程基础知识,刚学习JavaScript基本语法的读者的佳学习路径来编写的。有一定基础的开发人员也可以将《React Native跨平台移动应用开发(第二版)》作为一本React Native开发的“字典”来使用,在开发时可以快速查找相关知识点的细节。
希望通过《React Native跨平台移动应用开发(第二版)》,能将新的React Native开发技术介绍给国内广大开发者,让国内移动应用开发进入一个新的时代,让开发者用比较少的精力就能高效、美观地完成移动应用开发。
第1章 React Native 1
1.1 React Native开发特点 2
1.2 React Native开发环境搭建 7
1.3 代码编辑环境搭建 11
1.4 键盘使用习惯 13
1.5 React Dev Tools安装 14
第2章 状态机思维与状态机变量 17
2.1 初始化项目 17
2.2 运行项目 19
2.3 构建登录页面 37
2.4 React Native代码执行逻辑 41
2.5 UI框架工作基本机制 41
2.6 React Native组件间通信 46
2.7 深入理解UI重新渲染的过程 47
2.8 React Native组件的成员变量 51
2.9 React Native组件的静态变量、静态函数 52
2.10 组件回调函数的绑定 52
第3章 页面导航、弹出框及深入理解属性 55
3.1 分离注册组件、组件平台自适配 55
3.2 导航组件、挂接注册组件 56
3.3 挂接注册等待组件 58
3.4 Navigator组件 61
3.5 React Native中颜色类型的值 62
3.6 BackAndroid API 63
3.7 属性确认 63
3.8 指定属性默认值 66
3.9 Alert应用程序编程接口 66
3.10 带导航栏的页面导航 69
第4章 混合开发基础篇 70
4.1 iOS平台混合开发 70
4.2 Android平台混合开发 82
第5章 flexbox布局、View、Image与可触摸组件 100
5.1 flexbox布局 100
5.2 View组件 111
5.3 Image组件 125
5.4 可触摸组件 135
5.5 使用导航栏的导航框架 139
第6章 Text、TextInput等相关知识 145
6.1 Text组件 145
6.2 Text组件在两个平台上的不同表现 155
6.3 TextInput组件 158
6.4 TextInput组件在两个平台上的不同表现 161
6.5 TextInput组件的生命周期 165
6.6 Keyboard API、软键盘与键盘事件 168
6.7 组件的引用 171
6.8 跨平台状态栏组件 175
6.9 高度自增长的扩展TextInput组件 177
6.10 访问操作系统剪贴板 179
第7章 组件生命周期、数据存储及React Native应用实现步骤 182
7.1 组件生命周期 182
7.2 读取JSON文件 185
7.3 数据持久化操作 186
7.4 数据表操作 193
7.5 React Native应用实现步骤、日记例程(上) 193
第8章 ScrollView和ListView 218
8.1 ScrollView组件 218
8.2 ListView组件 224
8.3 简单的列表 226
8.4 带分段标志的列表 237
8.5 日记例程(下)总结 241
第9章 等待提示、进度条和Switch 242
9.1 ActivityIndicator组件 242
9.2 iOS进度条组件 243
9.3 Android平台进度条组件 246
9.4 Switch组件 246
第10章 导航组件与Modal 249
10.1 导航组件的属性 249
10.2 导航器 250
10.3 NavigationBar 251
10.4 导航例程 252
10.5 Modal组件 257
10.6 Modal组件与Navigator组件的配合 258
10.7 Modal组件例程 258
第11章 手势识别 263
11.1 PanResponder API 263
11.2 监视器 263
11.3 监视事件的生命周期 265
11.4 手势识别处理例程 270
第12章 网络 282
12.1 获取网络状态 282
12.2 搭建调试用HTTP、HTTPS服务器 284
12.3 通过HTTP、HTTPS与网络侧交换数据 286
12.4 在React Native开发中使用AJAX技术 291
12.5 WebSocket 292
12.6 推送 294
12.7 Linking API 296
第13章 网页浏览器、音视频媒体播放 299
13.1 WebView组件样式设置 299
13.2 WebView组件其他属性 299
13.3 网页浏览器使用例程 301
13.4 音视频媒体播放 306
第14章 应用权限与图库操作 307
14.1 应用权限 307
14.2 React Native开发中iOS平台链接库的使用 310
14.3 获取手机中所有的图片信息 312
14.4 图片信息详解 314
14.5 显示从CameraRoll API得到的图片 315
14.6 为用户提供图片选择界面 316
14.7 图片的保存与读取显示 318
14.8 将图片通过POST消息上传 320
14.9 裁剪图片 323
第15章 选择器、位置相关和应用状态 325
15.1 日期、时间选择器 325
15.2 Picker组件 330
15.3 PickerIOS 334
15.4 Slider组件 336
15.5 AppState API 338
15.6 获取地理位置 339
15.7 Vibration API 340
15.8 地图功能 342
第16章 RN开源组件 343
16.1 微软热更新开源平台——CodePush 343
16.2 Google统计平台——Google Analytics 348
16.3 极光推送组件 352
16.4 数据存储 352
16.5 图像处理 353
16.6 微信开发组件 354
16.7 支付宝支付组件 354
16.8 获取设备信息 354
16.9 国际化处理 355
第17章 混合开发高级篇 356
17.1 使用Objective-C语言创建私有的React Native组件 356
17.2 使用Swift语言创建私有的React Native组件 363
17.3 使用Android SDK创建私有的React Native组件 371
第18章 项目配置、生成发布版本安装包及其他 378
18.1 调试环境与正式运行环境的不同 378
18.2 iOS平台项目配置 379
18.3 iOS平台应用发布 383
18.4 Android平台项目配置 383
18.5 Android平台应用生成发布版本安装包 385
18.6 其他组件与API 386
附录A ECMAScript 2015语法参考 388
附录B ES 5语法 395