图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 内 容 提 要 使用 React Native 可以轻松开发跨平台应用, 并且无需等待 Apple、Google 或者 Amazon 的审核过 程,就可以为自己的应用发布更新。本书主要从功能扩展和实际应用方面讲解 React Native,带领读者全 面了解 React Native 的 API 和组件, 并且阅读本书无需 React 开发背景。 本书共五章, 前两章介绍 React Native 的历史发展和基础知识,包括原生组件和第三方库 ;余下三章则分别介绍三个企业应用——Myagi、 TinyRobot 和 Fixt,探讨了当今业界使用 React Native 的方式,以及生产环境下需要注意的问题和相应对策。 本书适合客户端开发人员、前端开发人员,以及所有对 React Native 感兴趣的程序员。 ◆ 著 [澳] Alexander McLeod [斯洛文尼亚] Pavlo Aksonov [印] Arjun Komath [美] Atticus White [美] Isaac Madwed 译 林 昊 责任编辑 朱 巍 执行编辑 温 雪 赵瑞琳 责任印制 彭志环 ◆ 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京 印刷 ◆ 开本:800×1000 1/16 印张:10 字数:237千字 印数:1 — 3 000册 著作权合同登记号 2017年 9 月第 1 版 2017年 9 月北京第 1 次印刷 图字:01-2016-5338号 定价:45.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 前 言 1 1 前 言 2 3 什么是React Native? 你可能已经听说过React,这个由Facebook开发的框架已经流行多时,如今成为了现代Web 开发的标准。React使得开发者可以编写和构建声明式组件,清晰地理解应用架构。React不会给 开发者的其他技术栈造成冲突,可以与任意后端技术甚至其他前端技术搭配使用。 4 5 你可能在想:“哇,这听起来很不错,但用在移动端会如何呢?我是否也能用React来写移动 应用?” 实际上,有两种用React开发移动端的方式。React本身可以在移动Web上运行,这就意味着 所有标准React元素都可用。然而这样做本质上还是开发Web应用,所有基于Web搭建的应用所面 临的性能和权限问题,React应用同样会遇到。 如果可以在移动端用React进行原生开发,那么…… 幸运的是,真的可以这样做!如果你打算开发原生移动应用,用React Native吧。React Native 把React的模式与范例带到了原生移动开发中。它的思想与React相似,不对现有的应用架构和技 术栈造成冲突。开发者可以把React Native与几乎所有的技术进行组合,搭建出满足各种架构模 式的应用。 尽管两者非常相似,React和React Native之间依然有很多明显的差别。首先,React Native自 带的基础组件库与React的不同。React Native的开发过程不需要编写div和span标签,而要使用视 图以及文本组件,并且有权限调用诸如地理位置、通知推送、加速器数据、设备振动等大量原生 工具。相比在移动浏览器中开发React应用,React Native赋予了开发者更多可能。 这时你可能会觉得,React Native与Apache的Cordova类似。诚然,两者的思想非常相似,都 共用Android和iOS两个平台的代码库。然而,Cordova运行在WebView中,通过调用API获得原生 级别的功能。React Native组件会被渲染成原生部件,可以为移动应用提供真正的原生体验,而 Cordova应用在遇到滚动这样高强度的UI交互场景时,可能会发生崩溃——这就是React Native的 威力所在。开发者可以受益于React声明式UI的编程风格;同时,所维护的用户界面提供的极速 体验,能够与任何原生移动应用相媲美。 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 6 7 8 9 10 11 12 2 前 言 React Native的社区活跃且增长迅速,并且已经被Facebook等许多公司用于生产环境。本书将 致力于帮助你理解React Native,以便弄清React Native是否适用于自己的应用。 我应该使用React Native吗? 你是否属于小型团队,并且你的团队想要为iOS和Android两个市场开发应用? 比起为iOS和Android两个平台开发各自的应用,React Native可以让你一次性开发跨平台应 用,这样更省时省力。你可以更快地发布应用,从而将更多的时间和精力集中于用户体验,无需 操心平台的差异性。 你是否正在使用NodeJS和其他JavaScript前端技术? React Native由纯粹传统的JavaScript和JSX语法编写。开发React Native能让你在不同的应用 环境中切换自如,无需因为编程语言的不同而改变开发环境。你还可以从npm以及其他资源仓库 获取第三方JavaScript库用于应用开发。 你是否希望,无需等待Apple、Google或者Amazon的审核过程,就可以为自己的应用发布更 新? 微软的CodePush服务集成了React Native的支持。用React Native进行开发,可以直接把 JavaScript更新包部署到应用上,无需等待任何第三方服务的审核。比起正式发布的流程,你可以 更快地修复bug和新增特性,并提供更广泛的兼容性。 你是否希望,能够维护更小的代码库,以便更清楚地构思、更快地发布应用? React Native共用了iOS和Android的代码库。利用React Native,再小的团队也能够做更多的 事情。除此之外,Web开发者可以立刻加入移动应用的开发,进而了解移动端的原生环境。 值得使用React Native的理由远不止上述这些。要弄清React Native是否适合你,唯一的方式 就是了解它能够给你带来什么。本书将会带你过一遍React Native的代码库,并展示真实的应用 是如何开发出来的。 阅读前提 本书假定你至少了解基础的JavaScript知识,并且熟悉ES2016语法。不过,即使不熟悉这些, 大多数人在阅读本书的过程中也能学会。 阅读本书不需要有React的开发背景。React Native和React不同但存在交集,书中将会详细描 述它们相关的部分。 图灵社区会员 lliw(447917757@qq.com) 专享 尊重版权 前 言 3 本书内容 1 本书将指导你如何开始编写React Native应用,书中通过几个企业应用的实例,让你对当今 业界如何使用React Native有一些认识。 第1章简要概述移动应用开发的现状,并介绍React和React Native的诞生。第1章将介绍JSX 语法以及在React Native应用运行的过程中发生了什么,然后介绍一些React Native组件以及它们 的生命周期和能力,此外还有部署过程与原生模块的使用。 2 3 第2章涉及原生组件的方方面面:用JavaScript、Java和Objective-C创建自定义原生组件;从 组件、常量、事件中进行异步调用;链接第三方库。 第3章介绍Myagi应用。Myagi为零售销售人员提供训练平台。你在了解Myagi的过程中会接 触到Marty.js、深度链接以及环境配置。本章将带领你实现一个自定义的构建脚本,以及学习如 何在iOS、Android、Web应用之间共享代码。最后介绍维护无bug移动应用至关重要的一环—— 测试与质量保证,同时还将提到CodePush服务。 第4章介绍基于位置的移动聊天应用TinyRobot。你将学到用Flow进行静态类型检查,接着学 习Flux、Redux、MobX以及它们的异同点,还将学习依赖注入、持久化以及应用状态管理。由于 React Native是无结构化的,本章会带你了解一些设计模式,以及如何从UI中分离业务逻辑,还 有如何实现UI测试。 第5章介绍Fixt,它同时为普通消费者和企业客户提供手机维修贵宾服务。通过讲解一系列基 于React Native的解决方案,本章将指导你利用React Native实现特定的用途,并学习Fixt提供的 React Native设备参数包。你还将了解到Fixt用React Native实现的Digits(Twitter的认证系统解决 方案) 。本书最后会给出进一步学习React Native的建议,并告诉你遇到难题时去何处寻求帮助。 4 5 6 7 8 代码示例 全书包含大量的代码示例,书中的JavaScript代码示例用ES2016语法编写,必要之处还附有 注释。 9 关于作者 10 Isaac Madwed是一名全栈工程师,就职于Fixt,Fixt是一家提供手机维修贵宾服务的国际化公 司,总部位于美国马里兰州的巴尔的摩市。他平时热衷于使用机器学习来控制艺术创作过程,并 且喜欢整洁、模块化、声明式的编程方式。想要了解更多有关Fixt的信息,请访问网站www.fixt.co。 想要欣赏Isaac的艺术作品,请访问网站www.imadwed.com。 11 Pavlo Aksonov是一名就职于Hippware的Rea
React Native应用开发实例解析
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
本文档由 user 于 2021-02-28 13:51:17上传分享