iOS平台移动学习资源构建及终端实现研究
2015-09-10牛丽殷凡熊志勇
牛丽 殷凡 熊志勇
摘 要: 研究新一代信息技术背景下移动学习系统的构成及资源开发现状,根据移动学习资源构建的策略、移动学习资源处理和使用的流程,给出iOS平台移动学习资源构建的方案和相关技术。然后讲述在iOS平台进行移动学习终端APP设计与开发的思路,并给出系统的原型,分析iOS移动客户端的网络资源获取技术及本地数据存储和处理技术,实现iOS平台的学习资源构建及移动学习需求,以期为以后其它移动平台资源及应用开发提供一定的参考价值。
关键词:iOS平台;移动学习;资源构建;终端
中图分类号:G434 文献标志码:A 文章编号:1673-8454(2015)12-0018-04
随着移动互联网技术的迅猛发展和云计算带来的海量存储、智能终端设备功能的日益强大和快速普及,在教育领域中随时随地的学习即移动学习需求在不断地增加。移动学习作为新一代的学习方式,区别于传统网络学习、数字化学习的主要特征是其移动性、交互性,具有更加灵活方便及满足个性化服务需求等优点,能够实现任何人在任何时间、任何地点、以任何方式学习任何内容,弥补传统学习方式存在的问题和不足,能够促进主体学习方式的深刻变革,逐步成为未来非正式学习、泛在学习、终身学习的研究趋势,适应了学习型社会的构建目标及终身教育的发展需求。
一、移动学习系统及移动学习资源开发现状
实施和开展移动学习的相关活动,前提需要具备完善的移动学习系统,它的主要组成部分包含:移动学习网络支持环境、移动学习平台、移动学习资源、移动学习应用软件等,其中构建丰富的移动学习资源是整个移动学习系统的核心,它的实现是进行一切移动学习活动的基础和重要环节[1]。在目前一些移动学习方式中,多为简单地在移动终端设备中通过浏览器访问学习资源,或与资源服务器进行简单的交互;存在学习资源类型较为单一、内容不够丰富、个性化设计不足、互动性不够、主体学习积极性不高等问题;缺乏针对主流移动平台而设计的完整和具体学习资源;同时移动学习资源开发过程中缺乏统一的标准和规范,使得资源共享率较低,低效重复的开发情况较多,目前对移动学习资源的研究较多地集中在从理论角度研究其设计、开发、应用、管理和评价等[2]。
移动终端软件的开发是进行移动学习的有效保障,它使得终端具备操作和访问学习资源的能力,是整个移动学习系统的重要组成部分,其质量高低直接决定了移动学习的成效,应根据主流不同移动平台进行规划和设计开发,以更好的用户体验与系统中的移动学习资源进行交互。目前主流的移动应用开发平台有谷歌的Android、苹果的iOS、微软的WinPhone等,以前二者为主,Android平台由于其应用开发门坎较低、操作平台开源等因素,拥有最大的市场占有率;而iOS平台由于其终端产品的卓越性能及其时尚的造型设计、App应用的规范管理及潜在的无限诱人商机,也吸引大量的应用开发者涌入,但其应用开发门坎相对较高,条件限制更为严格。现有移动学习终端软件的开发多以Android平台为主,较少涉及iOS平台。
二、基于iOS平台的移动学习资源构建策略及方案
1.移动学习资源构建策略
移动学习资源是为在移动终端上开展移动学习活动目的而构建的各种数据资源,根据学习内容的承载方式主要分为文本资源、图形图像资源、音视频资源、多媒体课件资源、交互性资源等,由于移动终端设备自身的硬件特点以及学习资源的丰富性、完整性、实用性等要求,应将学习资源建立在数据库服务器上以便维护,并开发实现相应的服务器端访问和服务接口,学习主体通过移动终端设备上专门开发的移动学习软件对学习资源进行移动访问和交互,它在移动终端设备上的呈现形式有短信式、网页浏览式、下载存储式等,满足主体学习方式的主动性、场景性、持续性、交互性等特点,在设计过程中要遵循简洁友好、功能模块化、提供真实学习情境、系统可靠性等原则。
在移动学习资源开发中,应该根据学习主体对象的具体学习需求,紧扣学习目标,综合考虑知识内容、信息承载量、呈现方式及管理方式等众多因素,遵循知识化、微型化、碎片化、交互性等原则[3],以项目为导向、任务为驱动,基于知识点进行移动学习内容的设计,针对主流的不同移动应用平台,设计内容紧凑、短小精焊、形式简洁的灵活性学习内容;移动学习资源是目前已有数字化学习资源的补充和提升,开发中要充分使用和挖掘已有各种数字化学习平台和网络学习资源,在原基础上针对移动终端设备访问特点和交互需求再次开发,避免现有资源的浪费,提高移动学习资源开发效率,节约开发成本。
2.移动学习资源处理与使用流程
移动学习系统包括资源处理子系统和资源学习子系统,如图1所示为移动学习资源处理使用流程[4],资源处理子系统为教师提供资源上传功能,为管理人员提供资源审核、分类管理和维护等功能,资源上传时要对资源信息进行具体设置,包括资源标题、所属关键词、包含知识点、资源的描述、资源的类型、资源的大小、上传时间、上传者等,上传成功的资源以列表呈现在待审核区中,等待管理人员审核,资源审核操作包括审核通过、不通过、删除资源、资源格式转换等功能,通过审核的资源将统一编辑转换为特定格式保存至资源服务器中,不通过的资源将从资源区中删除。资源学习子系统用于开展移动学习活动,为学习者提供资源推荐、浏览、检索、播放、下载、练习、测试、互动等功能,为教师提供测评和答疑功能。
在资源使用环节中,学生通过移动客户端注册登录学习系统,对服务器端的学习资源进行访问和交互,可将服务器中文本、音视频、课件等资源下载到本地进行离线学习,也可通过网络登录资源服务器进行在线学习、交互学习,学完一阶段主题后可进行在线测试,系统对学习效果进行测评并将成绩写到服务器中。教师根据学习对象及其学习需求,组织学习内容,通过后台管理系统上传学习资源,对测评结果和学习过程进行管理,参与学习过程中的交流和讨论、提供针对性答疑和辅导。管理人员通过后台管理系统对学习资源进行审核、编辑、发布、维护,对系统用户及配置进行管理。
3.基于iOS平台的移动学习资源构建方案及相关技术
根据移动智能终端的硬件特点及移动学习的功能需求,移动学习系统宜采用C/S架构,将学习资源存放在高性能的服务器中提供资源分发服务,管理用户、学习资源及学习进度等各类动态数据,为管理员和教师提供资源管理接口,为学员提供资源访问和交互接口。开源PHP相比于其它Web开发工具,具有良好的安全性、可移植性、可扩展性,执行速度快、效率高、开发成本低,可操纵多种数据库,支持SOAP、SMTP、IMAP、POP3、DNS等多种通信协议,采用Apache+PHP+MySQL开源免费的框架结构具有强劲优势,可跨平台运行。
如图2所示为本系统移动学习资源构建方案[5],数据库和服务器可放置于同一台机器上,iOS移动客户端是用户访问系统的入口,在其上面开发移动学习软件以可视化界面方式将学习资源展示给主体,提供主体认证、使用引导、数据交互、移动学习等视图,设计客户端通信接口存取服务端的Web Service获取数据;MySQL数据库中存放各类丰富的学习资源以及对资源进行处理的数据库对象和接口;PHP服务器端充当媒介角色,在其上面开发各类Web Service服务接口、数据库接口及后台管理功能,以 Web Service 向客户端提供访问接口,拦截客户端的URL请求,使得客户端和数据库端进行交互,实现对数据库的存取操作及客户端的访问交互需求。
服务器端与客户端的数据传输采用XML或JSON格式,内容可是 HTTP、SOAP或Restful等,与服务器端交互通过GET方式获取XML数据并解释为JSON格式,提取所需信息,客户端通过HttpResponse获取返回的交互信息,在客户端需进行 XML 的解析。iOS移动客户端发起HTTP协议请求,利用HttpClient类及相关技术通过Http协议与PHP服务器端进行远程网络通信,包括传输请求和响应交互命令,通过服务端开发的Web Service接受iOS移动客户端的请求,访问后台MySQL数据库获取相应的学习资源,并将处理结果返回到iOS移动客户端,实现客户端通过服务器端与数据库中各种学习资源的实时交互操作。
三、基于iOS平台的移动学习终端APP设计与实现
1.基于iOS平台的移动学习终端APP设计思路
这里以iOS客户端移动学习APP设计为例,讲解如何在移动学习理论的指导下,结合苹果移动终端设备的特性,在服务器端学习资源开发实现的基础上进行移动客户端应用开发。系统采用Xcode5开发工具、Objective-C开发语言、结合SDK开发工具包及第三方框架,iOS移动客户端与PHP服务器端的网络通信及数据交互使用开源的第三方框架ASIHTTPRequest,iOS移动客户端本地数据存储使用嵌入式轻量级关系型SQLite 数据库,对SQLite 数据库的各种操作使用开源第三方框架FMDB,对内存采用自动化管理与手动管理相结合方式,APP技术架构采用 MVC模式分层设计模型、视图、控制器及各层之间的关系,使系统具有良好的扩展性、重用性、可读性及维护性。
系统设计的iOS平台移动学习终端APP原型主要使用流程为:在学员登录进入主界面以后可选择全部课程、我的课程、推荐课程、我的收藏等页面;选择某一门课程资源后,可以查看该课程相关的PPT、讲义、视频资源,APP提供在线练习及测试功能,提交试卷后可查看试题的答案和测评结果,进入该课程论坛可与教师或同学进行学习和交流;对服务器中的资源可根据需要选择在线浏览或下载到终端中进行离线学习的方式,可查看该资源相关的评价并在学习完后对该资源进行评价。对下载到本地的资源,根据资源的类型和格式,在终端APP中设计或调用已有的工具软件进行浏览或播放。
2.iOS移动客户端资源获取技术
iOS客户端对PHP服务端学习资源获取及交互使用开源第三方框架ASIHTTPRequest,该框架建立在CFNetworkAPI基础上并对其进行抽象化封装,适用于基本HTTP请求和基于REST的服务交互,实现从服务端获取数据和向服务端提交数据,同时支持数据同步异步传输、队列请求、断点续传、进度跟踪、HTTP 认证等功能,加入Objective-C闭包Block使代码轻简灵活。资源获取的主要方法如下:
NSString *strURL = [NSString stringWithFormat:@"%@/appLoginReg.php",HTTP_SERVER];
NSURL *url = [NSURL URLWithString:strURL];
ASIHTTPRequest *demand = [ASIHTTPRequest requestWithURL:url];
其中HTTP_SERVER常量表示客户端所要访问的PHP服务器端地址,创建ASIHTTPRequest对象时要指定欲访问的URL目标地址。下面语句为在资源请求成功或失败时需要调用的方法demandAchieved和demandFailed,回调时将demand作为方法参数,通过startAsynchronous方法启动异歩数据请求:[demand setDidFinishSelector: @selector(demandAchieved:)];
[demand setDidFailSelector: @selector(demandFailed:)];
[demand startAsynchronous];
通过如下方法进行返回JSON数据的解析,把服务器端返回的JSON字符串的Data转化成dictionary,解析结果以NSDictionary对象的形式保存:NSString *demandContext = [demand responseData]; NSDictionary * demandWordBook = [NSJSONSerialization JSONObjectWithData: demandContext options:NSJSONReadingMutableContainers error:nil];
资源文件的下载基于多线程断点续传技术,实时检测本地已下载文档长度和从临时文件读取断点值并发送给服务端,服务端与客户端调整指标值到断点处实现续传。由于资源获取操作较为频繁且不同URL调用处理逻辑相同,将资源获取方法归纳并封装在单独的类中,方便其它视图控制器调用并可进行各自扩展。
3.iOS移动客户端本地数据存储技术
在iOS客户端将资源下载到本地中可进行离线学习,减少网络交互所带来的额外开销,在Xcode中描述资源服务器中数据表结构并编写数据访问类,封装数据库初始化、数据表添加、删除、修改、查询等操作,在操作访问SQLite数据库时使用开源第三方框架FMDB,使用时在工程框架属性中导入libsqlite3.dylib 依赖,主要使用FMDatabase和FMResultSet两个类来表示单独的SQLite数据库及在库中执行SQLite命令,返回查询后的结果集。工程中要得到应用程序沙盒路径,将SQLite数据库嵌入到本地设备当前应用程序的可读写文档夹里,其主要方法如下:
NSArray* routes=NSSearch Path For DirectoriesIn Domains (NSDocumentDirectory,
NSUserDomainMask,YES);
NSString * fileCatalogue = [routes objectAtIndex:0];
NSString * dataLibraryCatalogue =
[fileCatalogue stringByAppendingPathComponent:@"MobileStudy.Sqlite"];
然后创建FMDatabase实例,FMDatabase *dataLibrary= [FMDatabase databaseWithPath: dataLibraryCatalogue] ;将上述沙盒文件夹中SQLite数据库文件路径作为参数,执行[dataLibrary open]命令打开或新建数据库,在和数据库交互之前,数据库文件必须是打开的。
在数据库中执行SQLite命令分为两类,把除了select查询语句之外的所有命令均视为更新语句,使用数据库对象的executeUpdate方法执行,查询使用数据库对象的executeQuery,返回的结果集保存到FMResultSet对象中,调用其next方法进行记录遍历,主要语句如下:
[dataLibrary executeUpdate:@"drop table Manager where ID=’M002’ "];
FMResultSet * collectionSet = [dataLibrary executeQuery:@"select answer,sj from selection"]
while?([collectionSet next]) { Long *aValue = [collectionSet LongForColumn:@"answer"];
NSDate sjValue = [collectionSet dateForColumn:@"sj"]; }
FMResultSet类提供多种格式转换方法获取当前记录对应格式的属性值。
四、结束语
移动学习是新一代信息技术背景下数字化学习、网络学习的延伸和拓展,是传统教学的有效补充和辅助手段,是智慧校园建设重要组成部分,它的开展有助于实现泛在学习、终身学习的构想,移动学习资源的构建是移动学习开展的前提和基础,移动终端软件的开发是移动学习开展的重要环节和保障。本文根据移动学习资源构建策略和方案,针对iOS移动平台讲述移动学习终端软件的设计思路和开发技术,在具体实施中应充分集成和利用目前已有的各类课程网站、学习资源和平台,制定合理的移动学习目标和计划,完善移动学习相关的标准和评价体系,实现真正意义上的无所不在的学习。
参考文献:
[1]黄建军,张璐.移动学习应用环境构建研究[J].电化教育研究,2013(7):59-63.
[2]赵慧,史彦.国内移动学习资源研究综述[J].成人教育,2014(9):28-30.
[3]郭庆春,李静,寇立群.移动学习的教学资源建设研究[J].陕西广播电视大学学报,2014(3):13-17.
[4]刘天放.基于iPad平台的新闻阅读客户端的设计与实现[D].北京交通大学,2012:46-50.
[5]何天兰,杨秀菊.基于Android移动网络学习平台的研究[J].智能计算机与应用,2014(8):83-86.
(编辑:郭桂真)