

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
为iOS开发一个移动学习应用
保罗·帕卡提路
经济信息与控制论院系
罗马尼亚布加勒斯特经济研究所
ppaul@ase.ro
移动市场的发展对包括教育在内的各个领域都有着很高的影响。智能移动设备开始变得实惠,在教育过程中的大量使用也不会太长远。移动学习应用针对于所有主要的基于本地应用程序或Web的移动操作系统。本文的目的是展示为一个iOS设备开发的移动学习应用的评价模块的实现。移动学习应用是针对高等教育机构。该应用程序使用网络服务来获取内容并验证用户。
关键词:移动学习;移动应用开发;iOS;模式视图控制器;Web服务;评估
- 介绍
移动学习是许多学者和从业者的一个研究课题。在世界各地有几个项目正在进行或完成,针对不同的移动平台或基于网络应用程序的移动设备,优化移动学习应用程序,如[1],[2],[3]和[4]。
移动学习应用可能包括模块:
· 内容呈现(课程);内容包括文字,视频,音频,图形;它可以简单地只显示文本或加载PDF或其他文件,或者使用多媒体组件的非常复杂的文件[5];
· 短期评估(测验);这些都是提供给学生,以供他们测试掌握的知识;这些用户可以在他们想且不受限制的任何时刻进行这些测试;
· 最终评估(测试);这些测试在给定时间给出,它们具有有限的持续时间;
· 培训师-学生沟通;这涉及使用众所周知的组件(电子邮件或社交网络),或使用基于特定协议的专门组件。
· 内容共享(电子邮件,社交网络,云计算等);这将允许用户与其他注册的用户甚至任何人共享内容或结果;
· 家庭作业和任务;学生可以根据要求加载文件或者填写一些数据;
每个开发人员选择在他们的应用程序中包含一个或多个模块。应用程序可被开发为独立的应用程序(全部内容存储在设备上),分布式应用程序(本地客户端和提供学习内容的服务器)和基于网络的应用(客户机是一个简单地移动网络浏览器[6])。它设计应用考虑到基于用户要求和行为的几个质量特性是很重要的[8]。
用于连接的移动学习应用程序的客户端与服务器通信,使用标准化的协议(如HTTP协议)或专用协议。此外,连接的应用程序可以将移动设备与服务器同步。
在这一领域,在一个研究项目的框架中开发几个移动学习应用程序的原型。在这方面,它的开发基于肥皂网络服务,提供给学生评估方法。最近的工作包括为Android设备的移动应用程序学习的实施。结果在[4]中提出。
作为以前的项目,主要目的是保持用户接口尽可能简单和集中的基本功能。进一步的版本需要更多关注图形界面和用户交互(比如通过手势等)上。
使用Web服务具有的优点在于:
· 客户端应用程序可以是任何类型的(移动设备,桌面);
· 客户端应用程序可以用几乎任何现有的语言或技术开发;
· 客户端应用程序可以定向在几乎任何现有的平台或操作系统;
Web服务包括对学生的考核方法。每个学生可以登录并选择一个测试为一个主题。该主题与移动应用程序的开发相关。图1描述了移动设备和网络服务之间的交互,突出一些Web服务的方法。
图1.使用Web服务的评估模块交互
Web服务可以很容易地通过实施新的方法来扩展去支持其他功能。
本文介绍了适用于iOS设备的移动学习应用在实施过程中取得的主要成果,使用相同的Web服务。该应用程序实现了复杂选择测试。
本文按如下内容组织:
本节标题为iOS应用程序开发提出了iOS操作系统的主要特点和iOS应用程序开发的特殊性。
Web服务访问解决了用于从iOS应用程序使用Web服务的主框架。
移动学习中的应用部分提出针对iOS开发的移动学习应用。
本文以结论和未来工作作为结束。
- iOS应用程序开发
iOS系统是苹果公司在2007年为他们的移动设备开发的操作系统。核心操作系统类似于OS X,基于UNIX。操作系统支持处理器的架构。目前iOS是Android后第二个最流行的平台,在2013年的第三季度用户占到超过12%[8]。
图2描述了iOS平台的主要层次:核心操作系统,核心服务,媒体和Cocoa Touch。
核心操作系统包括内核(基于UNIX Mach_kernal),驱动程序库和系统使用程序。
图2,.iOS平台层次
核心服务层提供文件管理,线程,网络,内存管理和其他基本服务的支持。
媒体层包括印刷和图形(OpenGL,QuickTime等)的支持。
Cocoa Touch是Mac OS X的Cocoa API的子集。它处理用户交互的GUI。Cocoa Touch包括UIkit框架,基础架构和系统资源提供访问,例如通讯录,GPS,相机等其他框架[9]。在顶部是用户和系统/预装的应用程序。
窗体顶端
iOS原生应用开发以Xcode IDE和objective-C作为主要编程语言。Objective-C是C编程语言,允许使用类和对象的扩展。
objective-C类的@interface块中声明。消息(方法)的实施是@implementation部内。对于类向前声明@class关键字使用。
窗体顶端
作为惯例,类声明将存储在头文件(.H)和源文件类实现(.M)。
实例变量在@interface部分声明,在花括号之间。
方法(也称为消息)的名称包括用冒号分隔的参数“标签。方法调用从C / C 或Java方法调用时不同。例如,Test类声明的方法:
setRaspunsuriPentruIntrebare:cuVarianta
通过这个方式:
@interface Test : NSObject
//...
-(void) setRaspunsPentruIntrebare: (
int)idIntrebare cuVarianta :
(int)varianta;
@end
窗体顶端
减号( - )中的方法的前面表明是一个实例方法。在一个方法前的加号( )被用于类方法(静态方法)。该方法用方括号,就像这个例子:
[self.testCurent
setRaspunsPentruIntrebare: idIntrebare
cuVarianta: idVarianta];
窗体顶端
方法不能重载和参数标签区分。
窗体顶端
所有类类型的对象必须被动态分配。对象创建涉及使用两种方法:alloc(用于存储器分配及默认实例构件初始化)和init(具体成员初始化,事件为超类成员)。
窗体顶端
为了访问数据成员,属性可以被添加到类。属性被宣布与@property关键字,以在内部生成getter和setter方法,@synthesize关键字执行块中使用的属性和相应的数据成员之间的关联。
Cocoa类是从NSObject类继承的。
iOS应用程序是基于模型视图控制器设计模式[10],[11],图3。
窗体底端
窗体底端
图3.模型视图控制器涉及模式
窗体顶端
该模型是指数据和数据管理。这里是应用程序的业务逻辑。对于移动学习应用的代表类模型是测试类。它管理当前测试,知道目前的问题,并控制当前测试的问题之间的导航。
视图解决用户界面和用户交互。移动学习应用包括三个观点:一种与所有可用的测试(TestViewController类),一个用于当前问题和可能的答案(InterbareViewController类),和最后一个显示用户响应列表(RaspunsuriViewController类)。
窗体顶端
控制器保证了视图和模型之间的联系。它处理用户的操作的接口上,改变模型的状态,并显示所请求的意见。通常为每个视图有一个控制器。移动学习应用的控制器:
· 处理用户的选择(测试和答案);
· 填充列表和用户控制数据(问题,测试,答案等);
· 显示出当用户的行为或通过其他正常或特殊情况(如显示错误)所需的其它视图。
用户界面是用故事板和Interface Builder实现。故事板是场景(视图)的集合。该场景被赛格斯连接。图4描述了在Xcode中为移动学习应用设计的场景。
图4.故事板文件中的移动学习应用场景
为了测试和在实际设备上的iOS应用程序,开发人员必须注册苹果的iOS开发者计划[12]。需定期缴纳注册的年费。移动学习应用是使用Xcode5与OS X Mavericks的iOS7 SDK开发的。
这个应用使用iPhone Retina(4英寸)的iOS模拟器进行测试。当前版本不使用传感器或者照相机,对于该阶段,模拟器是足够的。
- 获取Web服务
Web服务可以用SOAP和WSDL协议或使用REST架构风格来实现。REST服务需要使用URLs,如果使用HTTP协议,那么需要HTTP命令(GET,POST,DELETE等)。
对于当前的应用中,Web服务是基于SOAP和WSDL协议,使用.NET技术实现的。该网络服务包括获取测试的数量的方法,用于获得测试的问题的数量和获得特定问题的基于其数量和测试号码等。该网络服务为其用户提供登录提供可能性。
iOS有多种使用Web服务的方法:
· 第三方开源代码使用Web服务例如RESTKit和Spaghetti或者先进的网络框架例如AFNetworking;
· 开发者拥有实现库,类或使用标准的网络类像NSURLRequest和NSURLConnection的Web服务通信方式;
· 用于基于WSDL的Web服务URL代理的第三方工具,像wsdl2objc[13]和SudzC[14]。
窗体顶端
所提出的解决方案使用基于SOAP的Web服务,并为当前实现使用了wsdl2objc。基于Web服务地址,使用WSDL,该工具生成访问Web服务所需的所有客户端文件。 Web服务的名称是服务1,工具会生成多个文件:
· 一些文件需要网络访问和结果处理
· 两个文件关联Web服务:一个头文件(Service1.h)和一个实现文件(Service1.m)。
表1列出了从Web服务和所发挥的作用wsdl2objc工具生成一些类。
如可以看到的那样,为Web服务的每个方法产生两个类:一个用于方法调用和一个用于方法的结果。
表1.Web服务事例产生使用wsdl2objc的类
|
类 |
角色 |
|
Service1SoapBinding |
定义Web服务绑定 |
|
Service1SoapBindingResponse |
管理答复 |
|
Service1_GetNumarTeste |
启动响应的Web服务方法获取NumarTeste |
|
Service1_GetNumarTesteResponse |
关联GetNumarTeste方法的结果 |
窗体底端
窗体顶端
类用于初始化的连接,调用Web服务的方法和得到的结果。
列表1表示用于调用Web服务的方法的功能。窗体顶端
列表1表示用于调用Web服务的方法的功能。该功能是在一类级(静态)实现,并且调用由Web服务所提供的方法GetNumarTeste,获得的评估平台上可用的测试的次数。
表1.网络服务获取功能的事例
|
(int) getNumarTeste :(int)idUser { Service1SoapBinding* binding = [Service1 Service1SoapBinding]; Service1SoapBindingResponse* response; //request initialization Service1_GetNumarTeste* request = [[Service1_GetNumarTeste alloc]init]; //pass the parameter request.idUser = [NSNumber numberWithInt:-1]; response = [binding GetNumarTesteUsingParameters:request]; NSArray *responseBodyParts = response.bodyParts; id raspuns; @try { 剩余内容已隐藏,支付完成后下载完整资料 资料编号:[29286],资料为PDF文档或Word文档,PDF文档可免费转换为Word |
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
