编辑推荐

适读人群:前端开发人员

√了解构建一个ReactNative应用需要的软件工具

√利用React生态中的组件与JavaScript库

√综合考虑用户体验、平台习惯和技术复杂度,来设计跨平台应用

√了解常见的用例,以及如何最大程度地利用设备的硬件设施

√自动化应用的发布,将你的iOS应用分享给beta测试者们

√学习如何组织好代码,保证其正确性并且容易维护

内容简介

在多个平台开发应用往往是非常麻烦的,但是使用ReactNative,你就能构建出跨平台的移动应用,而且其外观和行为与用Java或者Swift编写的原生应用并无二致。《React Native Cookbook(中文版)》将帮助你理解ReactNative的生态,教你应对一些常见的挑战,比如处理应用的状态、处理设备I/O,还介绍了部署过程和一些缩短交付时间的技巧,最后讲解了如何编写可维护的代码。如果你熟悉JavaScript,而且打算开发跨平台应用程序,并且选择的是React技术栈,那么这《React Native Cookbook(中文版)》就是为你准备的

作者简介

Jonathan为世界五百强企业、非营利机构和初创公司开发大型信息系统。在了解软件设计模式、测试驱动开发和函数式开发后,他对编程的热情一下子爆发了。Jonathan与人合开了一家软件咨询公司CofoundParadem,使他能参与全球范围的软件与产品设计研讨会中,最近主要是在欧洲和东非。他使用Ruby、React和ReactNative帮助团队构建可伸缩、可维护的架构解决方案。
刘清,曾在ThoughtWorks担任咨询师,在前端、后端开发以及数据分析和DevOps方向都有较深入的技术实践和项目经验。文一山,目前在ThoughtWorks担任前端开发的角色,有着丰富的前端开发和Devops经验。熟悉敏捷实践,比如TDD、结对编程、回顾会议、代码检视,等等。

目录

前言
第1章ReactNative工具链
1.1 设置开发环境
1.2 使用Babel写ES6
1.3 组织项目文件
1.4 处理灾难性故障
第2章熟悉ReactNative生态
2.1 不要重复你自己:实现自定义组件
2.2 添加一个开源的进度条
2.3 共享自定义组件
2.4 路由到登录界面
2.5 使用Redux作为全局状态管理工具
第3章样式与设计
3.1 书写样式表
3.2 使用flexbox构建灵活的布局
3.3 导入矢量图和图标
3.4 循环动画
第4章管理硬件平台
4.1 请求使用用户的设备硬件(iOS)
4.2 获取分页请求
4.3 使用Redux和本地存储保存应用状态
4.4 使用文件系统
第5章起飞!分享你的应用
5.1 自动发布你的应用
5.2 把你的iOS应用分享给beta测试用户
5.3 配置应用设置
第6章让你的应用可维护
6.1 使用PropTypes保护你的组件
6.2 使用Flow检查运行时报错
6.3 组件自动化测试
6.4 使用ESLint维护代码风格
6.5 使用Reason编写你的应用

前言/序言

  当我的第一个ReactNative应用登陆应用商店时,我就知道这项技术非同一般。那时,我已经花了几天的时间来熟悉iOS生态,发现自己被Xcode、Objective-C和适用于iOS的库弄得晕头转向。在只有Web开发经验的情况下,我最后一次突击iOS开发已经差不多是8年前的事情了,我被吓着了。我知道我不是唯一的一个。
  ReactNative在一夜之间改变了这一切。我在其中发现了熟悉的设计理念和Web应用开发的影子。更妙的是,用它开发出来的应用不会成为次等品——我无法忍受僵硬的动画和笨拙的滚动。ReactNative是一个开源工具集,将原生应用程序的开发体验带给世界各地无数的JavaScript开发人员。
  谁应该读这《React Native Cookbook(中文版)
  你已经非常熟悉编程和JavaScript。《React Native Cookbook(中文版)》假定你处于原生开发的技术选型对比阶段。你可能正在自己的车库中开发下一个伟大的社交媒体平台,或准备将笨重的企业系统变成轻便的移动应用。如果你试图开发跨平台的原生应用程序,需要将其快速推向市场,并选择了React,那么《React Native Cookbook(中文版)》就是为你准备的。《React Native Cookbook(中文版)》的所有内容都源于笔者在构建原生应用程序时的经验。
  为什么写这《React Native Cookbook(中文版)
  网上有非常多有关ReactNative的资料:在StackOverflow的论坛上和在ReactNative框架在GitHub上的issue中有大量的文档,能够解决大多数编程中的细节问题。《React Native Cookbook(中文版)》试图讲得更深入一点:如何组织一个项目?如何设计需要获取用户摄像头权限的用户体验?这些都是一些需要思考的常见问题,而且并不一定有一个解决方案。这《React Native Cookbook(中文版)》是一本cookbook(食谱),能提供一个很好的起点。它能激发你,引导你想出自己的解决方案,或者在你陷入困境时为你带来一些启发!
  简单聊聊如今的JavaScript
  似乎每周JavaScript都会用一个新的名字、一套新的语言功能以及新的转译器和编译器重塑自己!无论你将其称为ECMAScript、ES6、ES6+,还是从TypeScript、CoffeeScript、NativeScript、Flow、Elm或Reason中进行转译,最终的输出都会在JavaScript虚拟机上运行。疲于追踪JavaScript的这些变化,要如何才能专注于稳定的技术呢?
  我的回答是没有什么标准答案。所有这些工具都只是为了让软件开发人员更有效率。如果一切顺利,那么你应该高枕无忧,因为你知道在下一拨技术被淘汰之前,开源社区会帮助你看出端倪。就《React Native Cookbook(中文版)》而言,我会交叉使用术语JavaScript和ES6。在最后一节中,我会逼着你拥抱变化,让你学习如何用一个基于OCaml的函数式编程语言Reason,重写之前用ES6编写的组件!
  内容介绍
  《React Native Cookbook(中文版)》分为6章。
  第1章讨论JavaScript工具以及它们如何与ReactNative配合使用。
  第2章探讨ReactNative生态:了解可用的组件资源,以及如何将其引入你的项目。
  第3章和第4章介绍大多数应用程序开发中的一些常见挑战:处理应用程序的状态、处理设备I/O以及处理设计资源。
  第5章介绍部署过程和一些缩短交付时间的技巧。
  第6章解决编写可维护的代码的问题:使代码可重用、可移植、可读,添加了一些能在用户使用产品前捕获程序错误的工具。
  像对待所有的cookbook类图书一样,你最好读一遍书中的例子,看看它们是如何与你正在努力完成的工作联系起来的。如果你已经熟悉ReactNative或者熟悉Node、NPM和Yarn,我建议你跳过第2章。如果你编写过原生应用程序,那么第1章可能值得一读。在线资源
  ReactNative依赖的工具大致可以分为三类:JavaScript工具、AppleSDK和AndroidSDK。ReactNative将你的所有代码打包到一个JavaScriptbundle中,然后在原生平台上运行(例如Android或iOS)。根据《ReactNative入门指南》(ReactNative:GettingStartedGuide),确保你正确安装了这些原生开发平台。
  如果你对React没有什么使用经验,ReactOverview(http://bit.ly/2nIA4vr)应该能帮助你大致了解。我建议你在阅读《React Native Cookbook(中文版)》之前查阅这些相关的参考资料。下面这份清单列出了一组技术,它们都是很多ReactNative开发人员需要了解的知识,其中包括JavaScript/ES6、NPM、React、ReactNative和Redux。
  权威指南:ReactNative:GettingStartedGuide(http://bit.ly/2GWQDfo)快速了解支撑JavaScriptpipeline的转译器的能力:LearnES2015(http://bit.ly/2nJb1Z8)
  Node包管理器(NPM)的介绍:Whatisnpm?(http://bit.ly/2EalFyf)关于React的通俗易懂的讲解:ReactOverview(http://bit.ly/2nIA4vr)社区收集的ReactNative相关资源目录:AwesomeReactNative(http://bit.ly/2EoLga3)
  由Redux的创立者讲解状态管理的免费视频教程:GettingStartedwithRedux(http://bit.ly/2ENagFH)
  ReactNative软件包目录:OpinionatedCatalogofOpenSourceReactNativePackages(https://native.directory/)
  NPM提供的ReactNative软件包列表:AnOpenCatalogofReactNativeLibraries(http://bit.ly/2E8wuRF)
  排版约定
  《React Native Cookbook(中文版)》使用了下列排版约定。
  中文楷体或英文斜体(Italic)
  表示新的术语、URL、邮件地址、文件名称和文件扩展名。
  等宽字体(Constantwidth)
  表示程序片段,也可以用在正文中表示变量名或函数名等程序元素、数据库、环境变量、语句和关键字等。
  等宽字体加粗(Constantwidthbold)
  表示应该由用户输入的命令或其他文本。
  等宽字体加斜(Constantwidthitalic)
  表示应当被用户自定义的值或上下文决定的值所替换的文本。
  致谢
  感谢《React Native Cookbook(中文版)》所有的审校者:SpencerCarli、MattHamil和ArnarTórSveinsson。他们对快速变化的生态系统的见解以及技术上的反馈使我对《React Native Cookbook(中文版)》内容更有信心。我对《React Native Cookbook(中文版)》的内容承担全部责任,但如果没有他们的建议,这《React Native Cookbook(中文版)》的可读性就会大打折扣。
  如果没有Paradem团队,特别是如果没有我的联合创始人KevinPratt,我就无法专注于写作,这《React Native Cookbook(中文版)》就不可能诞生。我也很感谢EzraHopkins、ScottLuetke和AbdullahNorozi,他们协助我通读《React Native Cookbook(中文版)》章节。Bivee公司的ScottSchaffter和JayPerry为我提供了写作的灵感,一直鼓励我。感谢O’ReillyMedia,特别是NanBarber,他给了我反馈并指导出版流程。
  感谢Facebook与世界分享它的ReactNative技术。我也很感谢ReactifluxDiscord聊天室中的人们提供的技术支持,特别是对Reason的技术支持。我非常感谢所有向开源社区贡献其知识和源代码的个人和组织。
  最后,我要感谢我的爱妻Tara,她鼓励我前行,并给我不少深思熟虑的见解。

其他推荐