零、前言

本书的部分内容需要仅适用于 macOS 的软件。虽然 React 本机开发可以在 Windows 计算机上完成,但某些方面,如在 iOS 设备和 iOS 模拟器上运行应用,或使用 Xcode 编辑本机代码,只能在 Mac 上完成。

开发者可以通过多种方式为 iOS 或 Android 构建应用。React Native 是构建混合移动应用最稳定、性能最好、开发人员友好的选择之一。使用 React Native 开发移动应用允许开发人员在单个代码库中构建 iOS 和 Android 应用,并增加了在两个平台之间共享代码的能力。

更妙的是,在 React 中构建 web 应用的开发人员将走在游戏的前面,因为许多相同的模式和约定都被继承到 React Native 中。如果您有过使用 React 构建 web 应用的经验,或者有过基于模型视图组件MVC的其他框架的经验,那么您就可以在 React Native 中构建移动应用了。

目前有两种广泛使用的创建和开发 React 本机应用的方法:使用 React 本机 CLI 的纯 React 本机,或使用 Expo(www.Expo.io),这是一套用于开发 React 本机应用的工具、库和服务的综合集。除非您需要访问 React-Native 的某些更高级的功能,否则我建议您使用 Expo 进行 React-Native 开发。Expo 具有许多改善开发体验的功能,例如通过 Expo SDK 访问更多本机功能、更灵活和友好的 CLI 以及用于常见开发任务的基于浏览器的 GUI。这就是为什么本书中所有不需要纯 React Native 的菜谱都是使用 Expo 实现的。有关 React-Native 和 Expo 的更多区别,请查看第 10 章中的React-Native 开发工具部分、应用工作流和第三方插件

这本书的目的是作为一个去参考的解决方案,以共同面对的问题时,你可能会建立各种各样的应用。每一章都以一系列循序渐进的方法呈现,每一章都解释了如何构建整个应用的单一功能。

React Native 是一种不断发展的语言。在撰写本文时,它仍处于开发生命周期的 0.5 倍阶段,因此在未来的几个月和几年中,有些事情将发生变化。最佳实践可能会演变成陈腐的想法,或者这里强调的开源软件包可能会不受欢迎。本书中的每一个配方都在第一版中进行了更新和修订,我已经尽了我所能让这篇文章尽可能的保持最新,但是技术发展很快,所以一本书不可能自己跟上。本书中涵盖的所有代码的存储库位于 GitHub 上。如果您在这里的代码中发现任何不正常的地方,您可以提交一个问题。或者,如果你有更好的方式去做某事,考虑提交一个拉请求!

只要本书中的任何内容有更新,您都可以在 GitHub 存储库中找到详细信息和更改。

我希望这本书能对你在这片土地上的旅行有所帮助。发展愉快!

这本书是给谁的

本书的设计考虑了从初学者到中级的本地开发人员。即使您对 web 开发没有太多经验,希望本书中的 JavaScript 永远不会让您感到头晕目眩。我尽可能地避免复杂性,将重点放在给定配方中教授的课程上。

本书还假设开发人员在运行 macOS 的计算机上工作。虽然在技术上可以使用 Windows 或 Linux 开发 React 本机应用,但有许多限制使 macOS 机器更适合 React 本机开发,包括通过 Xcode 使用本机 iOS 代码、在 iOS 模拟器上运行 iOS 代码的能力,并使用最强大的开发工具进行 React 原生应用开发。

这本书涵盖的内容

第 1 章设置您的环境,介绍了我们将安装的不同软件,以开始开发 React 本机应用。

第 2 章创建一个简单的 React 原生应用,涵盖了建筑布局和导航的基础知识。本章中的食谱作为 React Native development 的介绍,涵盖了大多数移动应用中的基本功能。

第 3 章实现复杂用户界面–第一部分,涵盖了自定义字体和自定义可重用主题等功能。

第 4 章实现复杂用户界面–第二部分继续介绍更多基于 UI 特性的配方。它涵盖了诸如处理屏幕方向更改和构建用户表单等功能。

第 5 章实现复杂用户界面–第三部分涵盖了构建复杂 UI 时可能需要的其他常见功能。本章介绍添加地图支持、实现基于浏览器的身份验证以及创建音频播放器。

第 6 章将基本动画添加到应用中,介绍了创建动画的基础知识

第 7 章在你的应用中添加高级动画,在上一章的基础上继续发展,具有更高级的功能

第 8 章处理应用逻辑和数据,向我们介绍如何构建处理数据的应用。我们将介绍一些主题,包括在本地存储数据和优雅地处理网络丢失。

第 9 章实现 Redux介绍了使用 Redux 库实现流量数据模式。Redux 是在 React 应用中处理数据流的一种经过战斗测试的方法,在 React Native 中同样有效

第 10 章应用工作流和第三方插件介绍了开发人员构建应用的不同方法,以及如何使用开放源代码构建应用。这还将介绍使用纯 React-Native(使用 React-Native CLI)构建应用之间的差异和建筑应用与世博会(综合开发)

第 11 章添加了本机功能–第一部分,介绍了在 React 本机应用中使用本机 iOS 和 Android 代码的基础知识。

第 12 章添加了本机功能–第二部分,涵盖了更复杂的 React 本机层和本机层之间的通信技术。

第 13 章与本机应用的集成介绍了 React Native 与现有本机应用的集成。并非每个应用都可以从头开始构建。对于需要将其工作与应用商店中已有的应用集成的开发人员来说,这些方法应该很有帮助。

第 14 章部署您的应用介绍了部署 React 本机应用的基本流程,以及使用 HockeyApp 跟踪应用指标的详细信息。

第 15 章优化应用的性能,介绍了编写 performant React 本机代码的一些技巧、技巧和最佳实践。

充分利用这本书

假设您具有以下理解水平:

  • 你有一些基本的编程知识。
  • 您熟悉 web 开发的基础知识。

如果您还具备以下条件,这将非常有用:

  • 反应、Vue 或角度体验
  • 至少有中级 JavaScript 使用经验

下载示例代码文件

您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packt.com/support并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packt.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/warlyware/react-native-cookbook 。如果代码有更新,它将在现有 GitHub 存储库中更新。

我们的丰富书籍和视频目录中还有其他代码包,请访问https://github.com/PacktPublishing/ 。看看他们!

下载彩色图像

我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在这里下载:https://www.packtpub.com/sites/default/files/downloads/9781788991926_ColorImages.pdf

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。这里有一个例子:“我们将使用一个带有布尔属性的state对象来实现此目的。”

代码块设置如下:

export default class App extends React.Component {
  state = {
    liked: false,
  };

  handleButtonPress = () => {
    // We'll define the content on step 6
  }

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

onst styles = StyleSheet.create({
  container: {
    flex: 1,
  },
  topSection: {
    flexGrow: 3,
    backgroundColor: '#5BC2C1',
 alignItems: 'center',
  },

任何命令行输入或输出的编写方式如下:

expo init project-name

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“单击组件选项卡,然后从提供的模拟器列表中安装模拟器。”

Warnings or important notes appear like this. Tips and tricks appear like this.

小节

在这本书中,你会发现几个经常出现的标题(准备就绪如何做……如何工作……还有更多……另见

要明确说明如何完成配方,请使用以下部分:

准备

本节告诉您配方中的预期内容,并介绍如何设置配方所需的任何软件或任何初步设置。

怎么做…

本节包含遵循配方所需的步骤。

它是如何工作的…

本节通常包括对上一节中发生的情况的详细解释。

还有更多…

本节包含有关配方的附加信息,以使您更了解配方。

另见

本节提供了有关配方的其他有用信息的有用链接。

联系

我们欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至customercare@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,并输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packt.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问Packt.com