英语原文共 25 页
摘要
随着移动设备的普及,应用程序的需求也随之增加。那么开发一个应用程序,尤其是跨平台应用程序到底有多难呢?本文分享了一次涉及到将一个学生服务网络应用程序进行拓展使其能运行在手机上的项目经历。本文首先介绍了项目背景、客户端和预方案,然后聚焦于详细步骤并提供了例案所用到的代码和用到的技术,而文章的最终目的是能让读者懂得如何去开发一个手机电脑都能用的应用程序,本文最后总结了教学内容,并提出了进一步发展的思路。
关键词:网络应用程序,手机网络应用程序,开源软件,网络数据库,跨平台应用程序,HTML5, PHP, CSS, JavaScript.
引言
随着台式电脑用户不断涌入手机和平板设备市场,对于受欢迎的应用程序能在手机上运行的需求也越来越高。根据最近的一项出自Pew Research Center, Millennials的研究(样本年龄18-34)表明,在调查中最潮流的组中有95%的人拥有手机。教育工作者们不仅被能够借助手机设备以一种新的形式向千禧一代传播知识(Caverly, Ward, amp; Cavarly, 2009; Zickuhr, 2012)
并且可以开发程序满足精通技术的学生们的需求。想要做出一个成功的用户应用程序,尤其是教学应用程序是长期以来的一个难题,而我们也没有找到简易的解决方案。Lutes(2004,2012)是一位资深的跨平台移动应用软件开发教学专家,他指出,对于许多涉及教学和开发的手机应用程序来说,在时代瞬息万变的当下,很难用其教授一些东西。另一大难题是没有成熟的移动设备平台,每个移动设备平台都提供其独有的开发工具,不幸的是,这些不同平台的工具彼此差别极大。比如说,苹果iOS的工具不能用于谷歌安卓,反之亦然。因此,一个可以运行在不同移动设备平台的应用程序需要在不同的平台中进行编写。对于通常没有太多时间去掌握一门平台工具的教育工作者们来说,尝试去掌握多种平台工具是不切实际的。此外,掌握一门工具的学习曲线已经非常苛刻,更不用说学习多种工具了。因此,学习和掌握一门开发工具是另一大难题。在本文中,我们想要分享一下我们开发跨平台应用程序的经历,这是一个简单的应用程序,但开发此应用程序的方法可能对教学有用。此外,此处提供的知识还可用于开发基于通用开源技术的更复杂的应用程序,且基于已编写的代码之上进行构建。因此,本文的主要目的是描述我们的简单应用程序的开发过程,标明我们的代码,并分享我们在该项目中的经验以及我们对进一步工作的愿景。我们希望我们所共享的内容可能有助于降低移动应用开发过程中的障碍,并减少那些对教授移动应用开发感兴趣的人的学习曲线。本文的重点是我们的项目 - 即设计和开发学生服务应用程序。它的主要功能是显示我们校园的学生服务信息。具体来说,我们的论文结构如下。首先,它描述了项目的背景,客户端和建议的解决方案。然后,描述了逐步开发过程,并显示了所使用的书面代码和技术的说明。接下来介绍学生服务Web应用程序的工作原理。最后,本文最后总结了该研究的实际意义和未来的发展工作。
项目背景
正确认知应用程序的需求
起初,我们只是想要探索研究不同的服务于学生的手机应用的开发方法。我们希望有一款有效且适用于学生的应用软件,我们想到了几种潜在的应用程序方案,这个应用程序的主要目的是为学生们提供我们学校的服务信息。对于这样一款应用程序,我们预期其不仅能为现有学生提供服务,还可以为来学校参观的新学生提供服务。
基于这种需求,我们着手收集了有关学生所有相关服务的信息,我们列举了超过20项在大学校园里最普遍的服务,包括服务于学生的财政,学分和技术支持等服务。在这些前提条件下,我们试图设计开发一款可以为学生提供特殊服务并且可以在手机端接收到这种基本信息的软件,更重要的是,我们希望这款软件可以同时跨平台运行在苹果、安卓和微软等系统上。
了解移动应用程序开发的三个主要选项
根据与行业专业人士的讨论,Agrawal和Gill(2013)表示,移动应用程序的开发基本上有三种主要选项:第一个选项是用平台特有的开发工具开发单平台应用软件;第二个选项是用HTML/JQuery and CSS等软件开发应用;最后一个选项是使用RAD工具比如Sencha和RhoMobile去开发一个中立平台的基于网页的应用程序(Agrawal and Gill, 2013)。在第一个选项下,使用平台特有的开发工具,结果是会开发一个局限于特有平台的原生应用。原生应用通常是使用工具以及硬件/设备提供商提供的应用程序接口(API),例如谷歌和苹果都与特定的平台如谷歌安卓、苹果iOS、微软(Lutes, 2012)。原生应用一般是由编译的编程语言编写如Java、Objective C, or C#。原生应用通常很强大,因为它们可以访问特定于设备的功能(Lutes, 2012)。所有的原生应用的下载都要通过应用商店如苹果应用商店、谷歌应用商店等,本机应用程序直接安装在设备本身上,可在本地使用,因此无需连接到网络即可运行。第二个选项使用HTML/JQuery和CSS,则会开发出移动网络应用程序。移动网络应用程序的功能基本上与使用针对移动设备优化的用户界面设计的网站相同,它不依赖于设备,因为它通常使用基于标准的Web浏览器技术进行编码,例如HTML,CSS,JavaScript,PHP(Lutes,2012)而不是编译的程序语言。虽然它运行起来像一个原生应用,一个网页应用不需要被下载或安装在设备上,移动设备上的Web浏览器通过指定的URL调用它,因此,运行它需要互联网连接。最后一个选项使用平台中立的基于Web的应用程序创建混合型应用程序。这种应用程序结合了本机应用程序和移动网页应用程序的特性。它和手机网页应用一样是用HTML、CSS、JavaScript或PHP编写,但它被编译成本机应用程序,以便通过供应商应用程序商店进行分发。从使用者的角度来看,原生应用与混合型应用还是有些许差别的,只要设备具有Web浏览器,跨平台应用程序就可以像本机应用程序一样运行。从开发者的角度来看,混合型应用程序是真正的跨平台的。同样的HTML代码可以运行于不同的平台上。这可能是因为所有主流智能手机系统都支持可运行HTML5、CSS、JavaScript代码的手机浏览器并且使用本地设备存储。开源库和开发工具以一个Web浏览器小部件形式的提供了一个带有主用户界面(UI)的shell项目,正是这个小部件处理HTML5,CSS和JavaScript代码并将它们打包到本机应用程序中(Lutes,2012)。
在原生应用、网页应用、混合型应用中做选择
多年以来,关于原生应用、网页应用、混合型应用之间的讨论数不胜数(Charland amp; Lerourx, 2011; Heitkouml;tter, Hanschke, amp; Majchrzak, 2013; Hinchly, 2014)。就从最近的来看,Hinchly(2014)在他的官方博客上描述了金融时报上关于网页应用与原生应用的的辩论。这篇博客指出了使用这两种方法开发应用程序的优劣势,随着时代的飞速发展,很难预测这两种方式最终谁会胜利。在不久的将来,这两种方法的界限可能会渐渐模糊当这两者的区别不再的时候,由于本文的重点不是探索哪种开发方案是更好的选择,我们更感兴趣的是分享适合我们项目的方法。因此,在本文中,我们将更详细地讨论我们如何以我们具有的资源和知识使用所选方法来设计,开发和提供功能应用程序。在项目的初始阶段,鉴于其固有的优势,我们考虑了原生应用的方法,从使用者角度来看,大家都会很容易上手这些软件,通过现有的应用商店向用户发布软件也会很方便;从开发者角度来看,它也有着更好的表现,因为该应用程序只要安装一次,每次用户想要使用该应用程序时都会运行已安装的应用程序,此外,有一些较低级别的API允许原生代码访问设备存储空间,传感器和数据(Charland&Leroux,2011)。然而,为不同平台开发原生应用也面临着许多难题:首先,它要求开发者掌握不同开发环境,比如说,iOS系统要求掌握Object C或Swift,谷歌安卓要求Java,微软手机则要求C#.NET;其次,它会带来更高的成本,因为每个平台都需要使用不同的开发组件和工具;最后,发布应用也会很困难,因为原生应用只能通过第三方批准,并由他们发布,iOS系统需要经过Apple商店发布,Android系统需要通过Google Play商店发布,部分应用商店比如苹果商店还要求开发者支付一部分应用发布费。
由于以上种种原因,我们并没有选择使用原生应用的方法,于是只剩下了两个选择,网页应用或混合型应用,我们决定采用网页应用方法。我们会在未来的开发中尝试混合型应用的方法,我们习惯使用RAD工具比如PhoneGap以开发平台中立的网页应用,然而,这将花费我们一段时间用于学习。因此,当下,网页应用方式被认为更可行和更合适,原因有二:1.我们想要开发一款可以跨平台运行在手机设备上的应用。网页应用允许我们只写一次代码就能够在所有移动设备上运行包括台式机和笔记本电脑,只要它拥有浏览器。这种方法也同样与我们的资源限制、时间要求和可用工具契合,因为我们不具备开发原生应用和混合型应用所必须具备的知识。
2.我们具备开发网页应用所需的知识和工具使用权。这些工具包括PHP、JQuery、JavaScript以及运用Ubuntu OS和MySQL作为我们数据库的服务器,这些工具最大的优点就是它们都是开源软件,因此,我们可以不花钱就能使用,此外,这些软件也较为普及且有庞大的用户基础。
具体开发步骤
步骤1:设计概念,基本要求和开发工具的选择
我们首先做的一件事就是概念化我们的网页应用,我们定下了我们的基础需求然后选择我们开发所需要的工具。在明确需求并且了解不同开发方式后,我们有了一个关于我们想要的学生服务应用和具体如何实现这个应用程序的方案。必须声明的是,我们想要开发一款面向大学生的应用,这款应用的内容由我们学校的各种可用的基础服务信息组成,这款软件允许学生从不同的移动设备平台上以名字和种类搜索特定的服务,搜索结果显示以下信息:一键导航链接,服务名称,位置,电话,电子邮件,官方网站和简要说明。图1是我们的学生服务网页应用程序的用例图,在该图中,使用者指使用这款网页应用的学生而管理员指我们这些主要负责设计、开发和运维这款网页应用的人,使用者可以运行这款应用使用搜索词查找信息,如果搜索词与数据库中的词匹配,那么应用程序就会显示这项信息。除此以外,管理员需要更新信息或者收集查找失败的信息。虽然用例图表明了用户群体以及用户可能采取的操作,但它缺少一系列运行流程。在图2中,我们建立了一个流程图以捕捉一系列的流程以及涉及的逻辑,这个简洁的图,这个简单的图表有助于指导学生服务网页应用程序中关键功能的开发。
为了开发我们的学生服务网页应用,我们使用了几种开源软件和工具,其中有服务器运行软件Ubuntu v.14.04、MySQL、Apache以及PHP,我们也使用了JQuery和JQuery Mobile以让我们的网页界面更加契合手机。表1提供了这些软件和工具的简介。
步骤2:为学生服务网页应用建立一个在线数据库
在我们确定并收集我们校园内可用的学生服务数据后,我们将其输入并保存在了一个Excel电子表格中。接下来,我们开始从Excel电子表格中传输数据到一个在线的MySQL数据库中,以我们的经验来看,将Excel数据导入MySQL的最佳格式是将其保存为OpenDocument电子表格格式,原因是MySQL可以更有效准确的读取和输入OpenDocument电子表格,尤其是当数据中包含外文字体和特殊字符时。这项操作需要使用Excel中的“保存为hellip;类型”以将数据保存为OpenDocument电子表格格式,如图三所示。
接下来我们在Ubuntu服务器上记录并通过名为PhpMyAdmin的程序访问MySQL,我们通过网页浏览器运行PhpMyAdmin,网址如下:http://localhost/phpmyadmin,通过PhpMyAdmin,我们使用“输入”功能从OpenDocument电子表格中读取数据并将他们保存在Ubuntu服务器上的MySQL数据库中的一个表格中,如图4。
步骤3:在PHP中编写代码并从JQuery和JQuery Mobile整合JavaScript库
在编写学生服务网页应用程序代码的过程中,我们在PHP中创建了几个重要的文件,表2包含了对这些PHP文件主要功能的描述。为了阐明应用内部的工作过程,我们在附录A中加入了所选文件的实际代码以供参考,除了提供的代码外,还有功能和设计逻辑的解释,这些注释适用于任何有兴趣下载和使用这款应用以用于教学的人或者更进一步将这款应用开发成适用于他人的背景。
鉴于学生服务网页应用的所有代码都成功编写并调试,它们可以被复制并轻易适用于开发任意一款相似的网页应用,因此,它不要求深入了解PHP、JavaScript、CSS等编程语言以采用此应用程序并在另一背景下实现。所有人只需要获取源代码并设置新的数据库即可。然后,接下来的步骤就是去修改代码中的几个部分并在新的服务器环境中正确的配置代码。我们使用GitHub存储库托管服务来存储我们的应用程序代码。学生服务网页应用程序的源代码以及文档可供公众访问,并可从此链接下载:https://github.com/mqhuynh/Mobile-CMS,附录B提供
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。