使用React进行跨平台移动软件开发外文翻译资料

 2022-08-12 03:08

英语原文共 30 页,剩余内容已隐藏,支付完成后下载完整资料


使用React进行跨平台移动软件开发

摘要:本研究的目的是了解React Native是什么,以及如何使用它来开发跨平台的移动应用程序。本研究以原始文献为基础,阐释了React Native的概念和主要特征。主要功能包括虚拟DOM、组件、JSX、props和state。我发现React Native很容易入门,而且非常适合web程序员。它使得移动编程的开发过程比传统的本地方法简单得多,很容易理解为什么它迅速流行起来。然而,React Native仍然是一项正在快速发展中的新技术,要完全了解正在发生的事情,最好在进入React Native之前掌握一些JavaScript知识,也许还需要React(针对Web)。

关键词:React Native,移动应用程序开发,React,JavaScript,API

1引言

全球智能手机市场主要由两大操作系统主导,谷歌的安卓系统和苹果的iOS系统。2016年第二季度,2015年第二季度全球发售的智能手机中,87.6%为Android设备,13.9%为iOS设备。这对Windows Phone这样的竞争对手来说空间不大。(IDC 2016年)

为iOS或Android设备开发应用程序通常需要学习每个平台的语言和开发工具。对于iOS开发,必须学习Objective-C编程语言并能够使用Xcode开发环境。对于Android,需要学习Java并使用Android Studio环境。(Sansonetti,2015年)

React Native是一个开源JavaScript框架,用于为iOS和Android设备构建移动应用程序。Facebook于2015年3月开放源码,基于几年前发布的React框架。(Facebook 2015年)

1.1目标和限制

在这篇论文中,我试图回答以下问题:

bull;什么是React Native?它是如何工作的

bull;如何使用React Native开发跨平台移动应用程序?

目标是使用React Native创建一个完全工作的移动应用程序,并使用Ruby on Rails创建一个工作的后端服务器。本文主要关注前端,并且假设API的工作方式与前面描述的一样完美无瑕。

我之所以选择React Native,是因为除了React之外,它的人气也在迅速增长,而且还得到了Facebook的支持,Facebook是科技行业最大的参与者之一。最初,我用一种叫做RubyMotion的不同技术开始了这篇论文,RubyMotion是一种框架,它使得使用Ruby编程语言开发iOS和Android应用程序成为可能。

在尝试了RubyMotion并看到这些技术的流行之后,我认为使用React Native更安全,原因有很多。首先,我相信React Native能够正常工作,甚至不仅仅是为了将来的生存。第二,这是行业内许多雇主都在寻找的一项技能,而RubyMotion是一项非常利基的技术,甚至在全球范围内,RubyMotion可能也没有多少工作。第三,如果这个项目稍后继续与多个开发人员合作,那么比RubyMotion开发人员更容易找到React Native开发人员。

其他一些选择可能是混合技术,如Cordova、Phonegap或Xamarin,但我个人对React Native最感兴趣,所以我选择了这个。

我以前从来没有用JavaScript编程过,所以很有意思的一点是,如何快速而容易地开始React Native的学习,以及如果您不首先正确地学习纯JavaScript就可以做一些有用的事情。

本论文是为有很强的编程背景的读者而写的,无论是针对网络还是移动平台。它并不是一个初学者一步一步开始使用React Native的指南。

本文使用的大部分源材料都是没有页码的亚马逊Kindle电子书,因此在引用源时没有列出页码。

1.2定义和缩写

JavaScript是Web的编程语言。最初用于在桌面浏览器中为网站提供视觉效果和功能,现在JavaScript在任何地方都被使用,甚至在服务器端处理中也是如此。

ES2015或ECMAScript 2015是JavaScript的标准化,由ECMA在2015年批准。这是自2009年以来对该语言的首次重大更新。

MVC(Model-View-Controller)是一种软件体系结构模式,将给定的软件划分为三个相互连接的部分。模型是靠近数据库层的部分,包含业务逻辑和应用程序的实际数据。视图是靠近用户的层,向用户显示数据。控制器是介于两者之间的组件,它将用户输入到模型或视图中。

Java是Google用来构建移动操作系统Android的编程语言。它是一种通用语言,支持面向对象编程、并发和具有继承性的类。Android的传统移动开发是使用Java完成的。

Objective-C是苹果用来构建其移动操作系统iOS的编程语言。传统的iOS移动开发是使用Objective-C或Swift完成的。

应用程序编程接口(API)是访问软件组件的公共层。它定义了组件之间应该如何交互,并使开发应用程序更加容易。

Ruby是一种动态的、面向对象的开源编程语言,专注于简单性和生产力。

Ruby on Rails是一个用于开发web应用程序的开源框架,用Ruby编写。

HTTP REST(Representational state transfer)API是一个使用HTTP方法GET、PUT、POST和DELETE来获取和操作数据的API。

DOM(Document Object Model)是HTML和XML文档的表示和编程接口,由浏览器实现。DOM提供了一种使用编程语言(通常是JavaScript)访问和操作文档的方法。(Mozilla基金会,2016年)

CSS(层叠样式表)是一种描述HTML元素应如何显示的语言。

2背景

React Native由JavaScript编程语言和React JavaScript库提供支持。在开始使用React Native进行移动开发之前,本章提供了关于React Native背后技术的一般信息。

2.1 JavaScript

JavaScript是世界上应用最广泛的编程语言。它在大多数现代网站上使用,并由个人电脑、游戏机、手机和平板电脑中的所有现代网络浏览器支持(Flanagan 2016)。

JavaScript与HTML和CSS一起,是web的三个关键组件之一。HTML用于指定网页的内容,CSS用于指定网页的外观,JavaScript用于指定网页的行为(Flanagan 2016)。

JavaScript是一种非类型化和解释性的高级编程语言,适用于函数式编程和面向对象编程(Flanagan 2016)。部分地学习和使用是容易的,但要充分地学习就更难了(Simpson 2015)。

JavaScript的未来已经正式成为标准的一部分,称为ES2015(或ES6)贯穿本文。Web浏览器或其他设备(如移动电话)通常还不支持ES2015,但通过使用BabelJS,对支持ES2015的React Native。(Facebook 2016年)

ES2015是自2009年批准ES5之前版本以来对JavaScript标准的第一次重大更新。它为语言添加了重要的新特性,如类和继承、箭头函数和承诺。(BabelJS 2016年)

纯JavaScript可以用来编写web页面和应用程序,但通常JavaScript框架用于抽象复杂的逻辑,实现跨浏览器兼容性并加快开发速度。(Graziotinamp;Abrahamsson 2013,334)

目前最流行的前端JavaScript框架是AngularJS、EmberJS、ReactJS和BackboneJS(AppDynamics 2016)。

2.2 React

React是一个JavaScript库,用于构建用户界面。在传统的MVC(model-view-controller)体系结构中,它可以看作是视图层。React是Facebook为解决一个问题而构建的:使用随时间变化的数据构建大型应用程序。(Facebook 2016年)

为了解决这个问题,React被构建为声明性的。这意味着您只需定义一次用户界面(UI),当应用程序状态发生更改时,React实际上会对更改做出反应并重建UI。(Stefanov 2016)

React使用的是基于组件的架构。这意味着通过创建组件来解决问题,当这些组件变得太复杂时,将它们分解成更小更简单的组件。React中的组件类似于JavaScript中的函数:它总是在调用时生成输出。基本上,它生成的HTML代码最终将显示在浏览器中。(Code School 2016.)

为了获得高性能,React跟踪内存中的虚拟DOM,并使用虚拟DOM diffing来最小化对实际浏览器DOM的更改。这使得浏览器只能更新已更改的元素,而不是更新整个DOM。这个过程如图1所示。(Code School2016)

图1.在React中使用虚拟DOM渲染

3使用React Native开发iOS和Android

React Native是一个开源JavaScript框架,用于为iOS和Android设备构建移动应用程序。它基于React,一个为传统浏览器构建网站的JavaScript框架。(Eiseman2016。)

与传统的移动开发相比,React Native提供了一种简单的开发体验。开发应用程序时,您可以立即看到更改,而无需首先构建应用程序。你也可以使用你喜欢的工具,比如任何文本编辑器和终端,以及Chrome或Safari中的开发工具。您不必为iOS开发使用Xcode,也不必为Android开发使用Android Studio。然而,在为iOS开发时,开发机器仍然需要是Apple OS X计算机。(Eiseman 2016)

使用React Native,很容易为iOS和Android应用程序使用相同的代码。对于某些应用程序,某些功能需要特定于平台,但在实际应用程序(例如Facebook Ads Manager)上甚至可以实现87%的代码重用。(Eiseman 2016)

React Native最显著的缺点是它仍然是新技术,这意味着它仍在进行中,并且缺少一些文档,但通常用JavaScript编写Android和iOS应用程序的好处大于缺点,因此这是一个很好的解决方案。(Eiseman 2016)

本章介绍并解释了React Native的核心特性:呈现、组件、JSX、状态和属性。

3.1渲染

React的虚拟DOM通常被认为是一种性能优化技术,但它也远不止于此。它是描述应用程序外观的代码和这些元素的实际呈现之间的抽象层。这被称为“桥”,提供了从React Native到主机平台的Native api的接口。React对浏览器的DOM的呈现在前面的图1中进行了解释。React Native的呈现如图2所示:React Native不是浏览器的DOM,而是调用iOS的Objective-C API或Android的Java API来通过网桥呈现Native元素(Eiseman2016。)

图2.在React Native中使用虚拟DOM渲染到不同的平台

因为React Native使用的是本机iOS或Android api,所以具有React Native外观和感觉的应用程序开发人员与真正的本机iOS或Android应用程序完全一样,只是使用JavaScript开发的。React Native也运行在一个不同于呈现UI的进程中,因此应用程序感觉快速且响应迅速。(Eiseman 2016)

React Native目前在iOS和Android上工作,但由于它提供的虚拟DOM和抽象层,它也可以在其他平台上运行,只需为平台编写另一个“桥”组件。(Eiseman 2016)

事实上,Facebook和微软在2016年4月的F8会议上宣布了对Windows的支持。React Native将通过一个新的开源框架获得通用Windows平台支持,这甚至

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[236764],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。