具体描述
本书通过丰富的示例和详细的讲解,介绍了React Native这款JavaScript框架。在React Native中利用现有的JavaScript和React知识,就可以开发和部署功能完备的、真正原生的移动应用,并同时支持iOS与Android平台。除了框架本身的概念讲解之外,本书还讨论了如何使用第三方库,以及如何编写自己的Java或Objective-C的React Native扩展。
作者简介
Bonnie Eisenman
是Twitter公司的软件工程师,曾就职于Codecademy、Google和Fog Creek Software公司。她曾在多个会议上作过演讲,话题涉及React、音乐编程和Arduino。工作之余,她乐于开发电子乐器,喜爱使用激光切割巧克力,并且热爱学习各种语言。
目录信息
第1章 初识React Native 1
1.1 React Native 的优点 2
1.1.1 开发者体验 2
1.1.2 代码复用与知识共享 3
1.2 风险和缺点 4
1.3 小结 4
第2章 React Native 工作原理 5
2.1 React Native 是如何工作的 5
2.2 渲染周期 7
2.3 在React Native 中创建组件 7
2.3.1 编写视图 7
2.3.2 使用JSX 9
2.3.3 原生组件的样式 10
2.4 宿主平台接口 11
2.5 小结 12
第3章 构建你的第一个应用 13
3.1 搭建环境 13
3.1.1 安装React Native 14
3.1.2 iOS 依赖 14
3.1.3 Android 依赖 14
3.2 创建一个新的应用 17
3.2.1 在iOS 平台运行React Native 应用 18
3.2.2 部署到iOS 设备 20
3.2.3 在Android 平台运行React Native 应用 23
3.2.4 小结:创建并运行项目 24
3.3 探索示例代码 24
3.3.1 添加组件到视图中 24
3.3.2 React Native 中的模块导入 25
3.3.3 FirstProject 组件 26
3.4 开发天气应用 27
3.4.1 处理用户输入 28
3.4.2 展现数据 30
3.4.3 添加背景图片 34
3.4.4 从Web 获取数据 36
3.4.5 整合 37
3.5 小结 40
第4章 移动应用组件 42
4.1 类比HTML 元素与原生组件 42
4.1.1 文本组件 43
4.1.2 图片组件 45
4.2 处理触摸和手势 46
4.2.1 使用TouchableHighlight 47
4.2.2 GestureResponder 系统 49
4.2.3 PanResponder 52
4.3 使用结构化组件 58
4.3.1 使用ListView 58
4.3.2 使用Navigator 66
4.3.3 其他结构化组件 68
4.4 平台特定组件 69
4.4.1 iOS 或Android 特定组件 69
4.4.2 平台特定版本的组件 70
4.4.3 何时使用平台特定组件 74
4.5 小结 74
第5章 样式 75
5.1 声明和操作样式 75
5.1.1 内联样式 76
5.1.2 对象样式 76
5.1.3 使用Stylesheet.Create 77
5.1.4 样式拼接 77
5.2 组织和继承 79
5.2.1 导出样式对象 79
5.2.2 样式作为属性传递 80
5.2.3 复用和共享样式 81
5.3 定位和设计布局 81
5.3.1 使用flexbox 布局 82
5.3.2 使用绝对定位 86
5.3.3 学以致用 86
5.4 小结 91
第6章 平台接口 92
6.1 使用定位接口 93
6.1.1 获取用户地理位置 93
6.1.2 处理权限问题 94
6.1.3 在iOS 模拟器上测试定位 95
6.1.4 监听用户位置 96
6.1.5 限制 96
6.1.6 改进天气应用 96
6.2 使用用户图片与摄像头 99
6.2.1 相机模块 99
6.2.2 通过getPhotoParams 获取图片 101
6.2.3 从相机渲染一张图片 101
6.2.4 展示照片列表 103
6.2.5 上传图片至服务器 107
6.3 AsyncStore 持久化数据存储 108
6.4 智能天气应用 109
6.4.1 WeatherProject 组件 111
6.4.2 Forecast 组件 114
6.4.3 Button 组件 115
6.4.4 LocationButton 组件 116
6.4.5 PhotoBackdrop 组件 117
6.5 小结 119
第7章 模块 120
7.1 使用npm 安装JavaScript 类库 120
7.2 iOS 原生模块 121
7.2.1 导入第三方组件 122
7.2.2 使用视频组件 125
7.2.3 剖析Objective-C 原生模块 125
7.2.4 RCTVideo 的实现 128
7.3 Android 原生模块 130
7.3.1 安装第三方组件 130
7.3.2 剖析Java 原生模块 134
7.3.3 LinearGradient 的Android 实现 137
7.4 跨平台原生模块 139
7.5 小结 141
第8章 调试与开发者工具 142
8.1 JavaScript 调试实践和解释 142
8.1.1 激活开发者选项 142
8.1.2 使用console.log 调试 143
8.1.3 使用JavaScript 调试器 145
8.1.4 使用React 开发者工具 146
8.2 React Native 调试工具 147
8.2.1 使用审查元素功能 147
8.2.2 宕机红屏 148
8.3 JavaScript 之外的调试方法 152
8.3.1 常见的开发环境问题 153
8.3.2 常见的Xcode 问题 153
8.3.3 常见的Android 问题 154
8.3.4 React Native 包管理器 155
8.3.5 部署至iOS 设备的问题 156
8.3.6 模拟器行为 157
8.4 测试代码 158
8.4.1 使用Flow 进行类型检查 158
8.4.2 使用Jest 进行测试 158
8.5 当你陷入困境 160
8.6 小结 160
第9章 学以致用 161
9.1 闪卡应用 161
9.1.1 项目结构 163
9.1.2 组件层次结构 164
9.2 模型与数据存储 168
9.2.1 数据流架构:Reflux 与Flux 170
9.2.2 在Zebreto 中使用Reflux 173
9.2.3 AsyncStorage 与Reflux Store 的持久化 175
9.3 使用Navigator 177
9.4 探索第三方依赖 180
9.5 响应式设计与字体尺寸 180
9.6 小结及任务 183
第10章 部署至iOS 应用商店 184
10.1 准备Xcode 工程 184
10.1.1 选择支持的设备和目标iOS 版本 185
10.1.2 启动界面图像 186
10.1.3 添加应用图标 188
10.1.4 设置Bundle 名称 190
10.1.5 更新AppDelegate.m 190
10.1.6 为发布设置Schema 191
10.2 上传应用 192
10.2.1 完成协议文书 192
10.2.2 创建归档 193
10.2.3 在iTunes Connect 上创建应用 196
10.3 使用TestFlight 进行Beta 测试 199
10.4 提交应用审核 200
10.5 小结 201
第11章 部署Android 应用 203
11.1 设置应用图标 203
11.2 生成release 版本的APK 205
11.3 通过邮件或链接发布 207
11.4 提交应用至Play 商店 207
11.4.1 通过Play Store 进行Beta 测试 209
11.4.2 Play 商店列表 210
11.4.3 商店列表所需的资源 211
11.4.4 发布应用 212
11.5 小结 214
总结 215
附录A ES6 语法 216
附录B 命令与快速入门指南 219
作者简介 221
关于封面 221
· · · · · · (收起)
读后感
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
用户评价
我一直觉得,学习一个框架,最难的不是学会基础语法,而是如何构建一个健壮、可维护的大型项目结构。这本书在项目架构设计这一块的内容,可以说是点睛之笔。它提供了一个清晰的模块化思路,讲解了如何合理划分组件、服务层和数据层,甚至探讨了如何为团队协作设定规范,比如使用Linting工具保证代码风格一致性。书中还专门辟出了一章来讨论App的打包、发布流程,包括如何配置不同渠道的签名、如何处理灰度发布,这些都是教科书上很少提及但项目经理和资深开发者非常关心的话题。通过学习这部分内容,我感觉自己看待移动开发项目的方式都提升了一个维度,不再局限于实现某个具体功能,而是开始思考整个应用的生命周期和工程化管理。这种从“实现功能”到“构建系统”的思维跨越,是这本书带给我最宝贵的财富。它成功地架设了一座从初级开发者迈向架构师的桥梁。
这本书的排版和阅读体验简直是一流的享受。现在很多技术书籍的排版都让人感到压抑,密密麻麻的文字和代码块挤在一起,看得人眼睛疼。然而,这本《React Native开发指南》的字体大小、行间距都经过了精心设计,代码块使用了清晰的语法高亮,即便是长时间阅读也不会感到强烈的视觉疲劳。更让我惊喜的是,作者在关键概念处使用了不同颜色的边框或背景框来突出显示“陷阱”或“最佳实践”,这种视觉上的引导非常有效,能帮助我快速抓住重点,避免踩坑。此外,书中对工具链的介绍也十分到位,无论是关于Metro Bundler的配置,还是如何调试iOS和Android原生代码,都有详细的操作步骤截图辅助说明。我记得有一次我被一个iOS证书配置问题卡住了好几天,最后还是靠书中那个异常详细的截图流程,才顺利解决了问题。这种对细节的极致追求,体现了作者对读者学习过程的深切关怀,让整个学习过程变得流畅而愉悦,而不是一种煎熬。
这本书的语言风格非常成熟和稳重,没有那种过度煽动性的“速成”口号,而是以一种严谨的学者态度来传授知识。作者在阐述每一个API或方法的用法时,都习惯性地附带上其设计背后的哲学思想,这使得我对React Native的理解不仅仅停留在“会用”,而是上升到了“精通”的层面。例如,在讲解自定义原生模块时,它不仅展示了如何编写Swift/Kotlin代码,还深入分析了React Native如何管理线程安全和内存释放,这些底层考量极大地增强了我对应用稳定性的信心。我特别欣赏作者在处理框架局限性时的坦诚。他没有回避React Native在某些特定场景下可能不如纯原生应用高效的问题,而是提供了清晰的性能预警和替代方案,这种实事求是的态度让人倍感信赖。它教会了我如何做一个负责任的开发者,在追求跨平台效率的同时,不牺牲用户体验的关键底线。这本书无疑是所有希望深入理解并高效运用React Native进行专业开发的工程师的必备参考。
这本书的封面设计实在太吸引人了,那种简洁又不失科技感的蓝色调,一下子就让人对内容充满了期待。我刚拿到手的时候,首先翻阅了一下目录,感觉编排得非常系统化,从最基础的环境搭建到复杂的组件开发,简直就像一位经验丰富的老教师,耐心地为你铺设学习的阶梯。特别是它对React Native核心概念的阐述,深入浅出,即便我是初次接触移动应用开发的小白,也能很快抓住要点,不至于在技术术语的海洋里迷失方向。比如,书中对于“桥接(Bridge)”机制的讲解,通过生动的图示和恰到好处的比喻,让我瞬间明白了JavaScript代码是如何与原生模块进行高效通信的,这部分内容清晰到让人拍案叫绝。而且,不同于其他一些教程只停留在理论层面,这本书非常注重实战演练,每一个章节后面都附带着可以立即上手的代码示例,这一点对于我这种动手能力强于死记硬背的学习者来说,无疑是最大的福音。光是跟着书上的步骤,我就成功跑起来了第一个跨平台应用,那种成就感是无法用言语来形容的。它的深度和广度拿捏得恰到好处,绝不是那种浅尝辄止的入门手册,更像是一本可以长期陪伴成长的技术宝典。
说实话,市面上关于移动开发的资料多如牛毛,很多都存在更新滞后或者内容陈旧的问题,但这本书的编著者显然是紧跟技术前沿的。我特别留意了其中关于性能优化的章节,这部分内容在实际项目中往往是决定成败的关键。书中详细剖析了如何利用`FlatList`来优化列表渲染的性能,讲解了虚拟化(Virtualization)的原理,以及如何避免不必要的重新渲染,甚至还提到了JSI(JavaScript Interface)的潜力。这些内容都不是几年前的老黄历了,而是当前社区正在热议和实践的前沿技术点。我发现书中在讲解异步数据流管理时,对Redux/MobX这些状态管理库的权衡分析也非常客观公正,没有偏袒任何一方,而是结合实际场景给出了最佳实践建议。阅读过程中,我感觉作者的知识体系非常庞大而扎实,他不仅告诉你“怎么做”,更重要的是解释了“为什么这么做”,这种对底层原理的深究,极大地提升了我对React Native框架的整体认知深度。它不像一本简单的菜谱,更像是一份详尽的分子料理说明书,让你了解每一道工序背后的科学原理。
1天看完,适合初学者看。
例子很多都不能跑,介绍的很全面
今天到的书,从京东自提的。当晚后半夜看完。。。。睡觉💤💤
书中的代码已经无法运行,即使是github上的代码也和教程上的写法有较大差异,对于react不熟的朋友来说理解起来还是有一些费劲的
不建议读,基本没有实质内容: )