具体描述
React Native是当前移动端开发中的优秀解决方案。《React Native:用JavaScript开发移动应用》围绕着如何将一个完整App提交到App Store,讲解了使用React Native开发iOS应用所涉及的方方面面。首先介绍了Flexbox布局,教大家从零开始搭建一个初始应用,以此阐明React Native的基础运行机理;然后介绍了Flux的设计思想,怎么理解和使用Promise、Fetch等新API,以及数据库SQLite存储方面的知识,以便让你对一个完整的App形成感性认识;最后讲解了怎样测试React Native组件,并将完整的App发布到App Store中。
如果你对开发Web端的原生移动应用感兴趣,《React Native:用JavaScript开发移动应用》就是一本不容错过的以实例代码为引导的入门书籍。
作者简介
目录信息
本书中你将学到的内容: 1
如何阅读本书1
各章节的组织结构2
第2 章安装配置新项目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
在已有的iOS 应用中集成React Native 5
首先建立一个简单的iOS 应用5
安装React Native 5
创建React Native 应用6
将React Naitve 集成到iOS 应用中去7
在设备上编译和运行13
在设备上运行13
练习: 15
第3 章Flexbox 布局介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Web 开发中的Flexbox 18
Flexbox 布局究竟是什么呢? 19
教程20
1. 栅格系统20
2. 圣杯布局24
3. 带有可变宽度搜索框的流式导航条27
4. 垂直居中32
在React Native 中使用Flexbox 35
第4 章开发第一个应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
在React Native 中完成“Hello World” 38
创建项目38
使用Xcode 39
使用模拟器39
项目结构41
React 基础43
render 函数43
样式45
注册组件46
修改组件46
搜索框和数据检索50
增加搜索框50
方法代理51
检索数据52
显示结果55
组件状态55
创建我们的ListView 组件56
创建每个数据单元57
给列表中每个结果项设置样式59
结果60
第5 章在React Native 中使用导航. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
第6 章动画和滑动菜单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
我们需要做什么71
相关的代码71
它是如何运行的75
如何使用76
扩展一些缺少的功能78
ii 目录
第7 章用React Native 绘制Canvas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
使用WebView 79
如何使用80
使用ReactART library 82
在网页中使用ReactART 82
在React Native 中使用ReactART 85
结论90
使用React Native 播放音频90
第8 章你的第一个自定义视图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
尝试一下98
第9 章Flux 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Flux 是什么? 104
从React 到Flux 105
Flux 110
练习119
第10 章处理复杂的应用程序状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
解决方案121
初识Baobab 121
把我们的状态树并入ReactJS 123
连接单个游标到组件124
连接多个游标到组件124
如何改变Baobab 树的状态125
应用程序状态127
一个稍微复杂的例子129
Optimize 130
1.ReactJS 的级联渲染131
2. 重复渲染131
第11 章使用Node 来实现服务端API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
安装Express: 135
目录iii
Request 和Response 对象136
理解中间件139
从URL 中获取参数142
处理相关参数143
路由实例143
重构路由144
使用JSON 146
JSON 结构146
在JavaScript 中使用JSON 149
iOS 中的HTTP 149
Web 服务151
NSURL, NSURLRequest, NSURLSession 和NSURLSessionTask 152
构造URL 和发送请求153
使用NSURLSession 153
JSON 数据155
解析JSON 数据156
主线程156
更深入的学习:请求主体157
第12 章在React Native 中使用文件上传. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
创建服务器159
注解161
进行文件验证161
总结: 162
React Native 文件上传的客户端: 162
第13 章理解JavaScript Promise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
事件并不是万能的172
Promise 术语173
JavaScript 中的Promise 174
浏览器支持和Polyfill 175
与其他库的兼容性175
让复杂的异步代码变得更加简单176
iv 目录
将Promise 用于XMLHttpRequest 177
链式调用178
数值处理178
异步操作队列179
错误处理180
图片181
JavaScript 异常和Promise 182
错误处理实战182
并行和串行—— 鱼和熊掌兼得184
创建序列185
Promise 和Generator 190
Promise API 参考193
静态方法193
构造器194
实例方法194
第14 章Fetch 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
XMLHttpRequest 快要过时了195
fetch 基础使用195
使用XMLHttpRequest 实现195
使用fetch 实现196
响应中的元数据197
响应类型197
Promsie 方法链198
使用fetch 请求发送凭证信息199
问答环节200
我该如何取消一个fetch 请求? 200
有相关的polyfill 么? 200
为什么在service workers 中支持“no-cors”,而在window 中却不行? 200
第15 章在iOS 中使用SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
创建并打开数据库202
绑定变量203
目录v
开发SQLite 模块204
第16 章集成Google Admob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
创建项目209
将SDK 添加到你的Xcode 项目209
第17 章React Native 组件国际化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
我要做什么214
工作机制214
安装步骤214
在项目中使用218
第18 章测试React Native 组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
安装配置测试环境221
编写测试程序226
第19 章附录:React.js 快速介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
JSX - React 的特殊语法228
开始和运行229
组件- 构建React 的基石229
在我的javascript 代码中,出现了HTML 片段? 230
组件和状态231
第20 章附录B:Objective-C Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
类的基本语法233
方法233
属性234
实现235
规范237
第21 章webpack 入门. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
为什么要使用webpack? 238
webpack 也适合Browserify 用户238
vi 目录
启动webpack 239
loader 的使用239
样式表和图片240
功能开关241
多个入口点(entrypoint) 242
优化共用代码243
异步加载243
· · · · · · (收起)
读后感
看完对React Native有个整体的感觉,不深入需要进一步查资料,关于 动画手势 用ReactNative绘制Canvas Flux,Baobab Javascript Promise Webpack Node Express 另外书比较早了 那时安卓的还没有开源 所以都是以iOS为主的,其中关于 React Native播放音频、文件上传、SQLite都是...
看完对React Native有个整体的感觉,不深入需要进一步查资料,关于 动画手势 用ReactNative绘制Canvas Flux,Baobab Javascript Promise Webpack Node Express 另外书比较早了 那时安卓的还没有开源 所以都是以iOS为主的,其中关于 React Native播放音频、文件上传、SQLite都是...
看完对React Native有个整体的感觉,不深入需要进一步查资料,关于 动画手势 用ReactNative绘制Canvas Flux,Baobab Javascript Promise Webpack Node Express 另外书比较早了 那时安卓的还没有开源 所以都是以iOS为主的,其中关于 React Native播放音频、文件上传、SQLite都是...
看完对React Native有个整体的感觉,不深入需要进一步查资料,关于 动画手势 用ReactNative绘制Canvas Flux,Baobab Javascript Promise Webpack Node Express 另外书比较早了 那时安卓的还没有开源 所以都是以iOS为主的,其中关于 React Native播放音频、文件上传、SQLite都是...
看完对React Native有个整体的感觉,不深入需要进一步查资料,关于 动画手势 用ReactNative绘制Canvas Flux,Baobab Javascript Promise Webpack Node Express 另外书比较早了 那时安卓的还没有开源 所以都是以iOS为主的,其中关于 React Native播放音频、文件上传、SQLite都是...
用户评价
这部书真是让我对移动应用开发的世界有了全新的认识,尤其是对于像我这样长期沉浸在Web前端领域的人来说,它简直就是一座搭建在JavaScript和原生应用之间的桥梁。书中对React Native核心概念的剖析细致入微,从组件的生命周期到状态管理,每一个环节都讲解得极其透彻。我特别欣赏作者在讲解视图层和原生模块交互时的那种深入浅出的方式,那种将复杂的技术抽象过程分解成易于理解的步骤,让初学者也能迅速掌握其中的精髓。例如,它对`FlatList`性能优化的讲解,不仅仅停留在API的使用层面,更是结合了底层渲染机制,让我明白了为什么在处理大数据列表时需要注意这些细节,而不是简单地复制粘贴代码示例。书中的实战案例也相当丰富,每一个案例都紧密围绕当前业界的热点和痛点,确保读者学到的知识是“活的”,能够立即应用到实际工作中去解决问题,而不是停留在纸上谈兵的理论阶段。这种理论与实践紧密结合的编排方式,极大地提升了我的学习效率和信心,让我不再对跨平台开发抱有畏惧心理,反而充满了探索的渴望。
说实话,这本书的排版和语言风格对我这种追求代码可读性和架构清晰度的开发者来说,简直是一股清流。它没有使用那种晦涩难懂的学院派术语,而是用一种非常接地气、如同资深工程师在Code Review时进行点拨的语气来阐述问题。尤其是关于项目结构和目录规划的部分,作者提供了一套行之有效的组织原则,这对于维护一个长期迭代的大型移动项目至关重要。我过去在独立开发时,经常因为项目结构混乱而导致后期维护困难,但这本书中提供的架构蓝图,让我茅塞顿开,明白了如何通过合理的模块划分和依赖管理来保证代码的健壮性和可维护性。更让我惊喜的是,书中对于调试工具和性能分析方法的介绍非常到位,它没有敷衍地提一句“你可以用DevTools”,而是深入讲解了如何利用Chrome Debugger、Flipper以及XCode/Android Studio自带的性能分析工具,去定位那些隐藏在跨平台调用链中的性能瓶颈。这种对工具链的深入挖掘,体现了作者深厚的实战经验,让这本书的价值远超一般的技术手册。
我接触过不少关于移动开发的入门书籍,它们大多能让你快速跑起来一个“Hello World”应用,但在处理到用户认证、数据持久化或后台任务调度这类实际业务场景时,就显得捉襟见肘了。然而,这部作品在这方面表现得异常扎实和全面。它用专门的章节深入探讨了使用AsyncStorage、Realm或SQLite等方案进行数据存储的最佳实践,并清晰地指出了每种方案的适用场景和性能权衡点。更贴心的是,它还关注到了应用发布和CI/CD流程,虽然不是重点,但它提供的关于App Store/Google Play构建和签名配置的指南,对于第一次尝试发布应用的开发者来说,无疑是雪中送炭。作者显然深谙从开发到上线的全生命周期,使得这本书的内容广度与深度达到了一个非常令人信服的平衡点。它让我确信,掌握了书中的知识,我不仅能开发一个功能齐全的移动应用,还能将其稳定、高效地推向市场,这才是作为开发者最核心的能力。
这本书给我的感觉,与其说是一本技术书籍,不如说是一位经验丰富的老手在带“徒弟”。它的节奏掌握得非常好,不会一上来就抛出过多的API文档,而是循序渐进地构建知识体系。比如,在讲解导航(Navigation)方案时,它没有强推某一家库,而是先从React Navigation的底层原理讲起,再对比其他成熟方案的优劣,让读者能够基于理解而非盲从做出技术选型。这种鼓励批判性思维的教学方式,才是真正培养工程师的地方。此外,书中对错误处理机制的探讨也十分到位,它教会了我如何构建健壮的错误边界(Error Boundaries),如何在应用崩溃时捕获并上报关键信息,这在生产环境中是保障用户体验的生命线。阅读过程中,我时常停下来,对照书中建议的方式重构自己旧有的代码,每一次重构都能带来代码质量的显著提升。这本书的价值,在于它提供的不仅仅是“解决方案”,更是“思考框架”。
我一直以为学习一门新的移动开发框架,最难的就是跨平台兼容性和原生功能调用。然而,这本书用近乎艺术的手法解决了这个难题。它并没有回避React Native在不同操作系统下可能出现的“水土不服”的问题,反而非常坦诚地引导读者如何优雅地处理这些差异。书中关于如何编写自定义原生模块(Native Modules)的部分,是我认为全书的精华所在。作者详细拆解了Objective-C/Swift与JavaScript之间的桥接过程,包括异步方法的处理、参数的序列化与反序列化,甚至连内存管理在跨语言调用时的注意事项都一并涵盖。这对我来说太有价值了,因为很多开源文档往往只展示了“How to call Native”,而这本书却告诉你“How to call Native *correctly and safely*”。通过书中提供的模板代码和最佳实践,我成功地将一个原本需要用原生语言重写的复杂传感器数据处理功能,无缝集成到了现有的React Native应用中,性能提升显著,而且代码维护成本大大降低。
是一本写给 iOS 开发者的 React Native 全家桶科普书
越南人写的,原谅我的无知吧,内容一般,在别人的公司看到的,草草的翻了一下
并不推荐购买,需要的书上找不到答案,而且书上的内容也太简单。 如果有问题,只能去官方文档,官方issue以及stack overflow找了
早期的一本书吧 技术有点过时
并不推荐购买,需要的书上找不到答案,而且书上的内容也太简单。 如果有问题,只能去官方文档,官方issue以及stack overflow找了