基于iOS的微课视频学习APP的设计与实现

摘 要:移动学习日益成为一种流行的新型学习模式,针对高职院校学生学习特点及微课特征,借助基于iOS的移动应用开发技术,设计并开发一款可用于微课学习的APP。该软件实现了微课视频在线观看、下载收藏、课程问答、课后练习、资源搜索、历史查看等功能,为学习者提供了一个随时随地的进行学习与互动交流的移动平台,能够满足个性化学习、移动化学习、碎片化学习的需求。
关键词:微课;视频;iOS;应用开发
中图分类号:TP311.1 文献标识码:A
1 引言(Introduction)
近年来智能手机的普及加速了对于移动学习的研究和实践。各类资源网站将微课应用的各项功能全部在移动终端上实现。而学校这一块相对落后,部分高校和中小学虽然建立了自己校内的资源网站,但基本上没有针对本校的资源应用的移动平台。为了满足学生随时使用移动终端上网的碎片化学习的需要,设计和开发一款基于iOS的移动终端学习APP。通过搜索和展示学校已有的微课资源,方便学生随时学习与课程相关的微课视频。
2 相关技术(Related technology)
本系统在iOS平台基础上采用B/S三层模式,即数据层、应用层和表示层,数据层由通常所说的服务器端后台构成,后台以Mysql+PHP的模式,其主要功能是响应服务层,以及系统的数据存储和管理。表示层向应用层发送HTTP请求并显示应用层响应的JSON数据;应用层主要响应表示层的HTTP请求、处理业务逻辑及对数据层返回的数据进行格式化处理,处理后将数据在表示层显示[1]。
2.1 iOS 系统
iOS是苹果公司早在2007年专为其手机产品开发的操作系统,随着苹果产品的发展,iOS逐渐演变为苹果移动产品的专有操作系统,被广泛应用在苹果的各种移动终端。iOS系统因为其相对封闭,对软件产品安装审核要求较严,因此生态坏境较其他应用系统安全性更高[2]。iOS系统作为苹果设备的专属系统,软硬件可以较好的配合,运行更为流畅和稳定。同时,苹果系统界面设计美观,其人性化的设计给用户很好的体验,是当前手机用户青睐的移动终端操作系统。
2.2 PHP+MySQL
PHP是一种脚本语言,被广泛应用于各類服务器端,和其他技术相比,PHP是开源的,可以免费使用。由于PHP支持开放数据库互连,因此PHP可以连接任何支持该标准的数据库,如MySQL、SQL Server和DB2等。PHP还支持将数据转为XML/JSON格式。目前被广泛用于APP数据接口的开发,PHP和MySQL经常被一起使用作为后台开发[3]。
MySQL是一种中小型关系数据库系统,体积小、速度快,支持标准的SQL查询语言,广泛应用于中小型网站数据库服务器。同时,MySQL支持Java、C#、PHP等高级语言的数据接口开发,因此本应用选择PHP+MySQL用于测试服务器后台数据的管理与接口的开发。
2.3 JSON数据解析
JSON是一种轻量级的数据交换格式,是基于Java Script的一个子集。它是一种与开发语言无关的数据格式,可以实现在多种语言之间进行数据交换的能力,是一种广泛应用的数据交换格式,当前被常应用于安卓和iOS应用开发的数据交换。JSON主要有两种数据结构。第一种是由键值对组成的数据结构,这种数据结构在不同的语言中实现也不同,在Objective-c中是一种NSDictionary对象。第二种是有序集合,这种数据结构在不同语言中可能有NSArray、vector、数据和序列等实现,在Objective-c中是以NSArray来实现。因为JSON数据的这些特征,因此JSON数据可以转换成不同语言的数据类型,JSON数据解析就是将JSON数据转换成对应语言的数据格式[4,5]。
3 需求分析与系统功能设计(Requirement analysis
and system function design)
3.1 需求分析
微课是以教学视频为主要呈现形式,围绕课程知识点、例题习题、疑难问题、实验操作等开展的简短、完整的教学活动,以及相关资源的有机结体。从这个概念可以得出“微课”是简短又完整的教学活动,它不仅仅包含视频,而且包括与之相关的ppt、习题等[6]。
本项目根据微课的这些特点进行设计。首先微课视频都是限制在几分钟之内,视频文件较小,适合网络传输和移动设备播放;其次APP除了可以播放微课视频,还可在线或下载学习微课相关资源。
APP除了根据微课的特点设计相关功能外,还结合学生的学习特点,从易用性、趣味性着手。界面和功能设计力求简单,APP主要包括账户管理、视频学习、在线咨询、课后练习等功能。注册登录也以简单实用为原则,仅需通过手机号进行注册和登录,还可以利用iPhone的的指纹识别技术,实现APP指纹登录,对于在线咨询采用QQ在线咨询。课后练习从趣味性考虑采用游戏答题积分的方式。
根据以上分析,项目主要实现以下几个功能。账号管理实现用户的注册、登录,注册功能以学号作为主键,绑定学生的手机号。登录可以学号登录,或者手指指纹识别登录。视频学习功能可以在线播放或者下载视频在本地播放。课后练习功能设计成答题积分游戏,课后练习的积分可以作为老师给学生平时成绩的参考。在线咨询可以利用腾讯QQ的第三方接口,实现QQ在线交流。
3.2 系统功能设计
针对项目需求分析,对基于iOS的微课视频学习系统进行详细的功能设计,系统结构图如图1所示。
系统总体框架主要包括登录注册模块、主页面模块、视频分类模块、视频练习模块和个人中心模块。登录注册模块设置师生两种不同角色的登录界面,涉及用户注册、登录、密码修改,以及找回等内容。主页面模块包括App启动,以及视频列表加载和展示。视频分类模块包括视频的分类、播放、下载、收藏、分享和评论等,页面采用了左侧导航的设计,使分类清晰简洁,方便用户寻找与观看等一系列操作。视频练习模块包括视频的观看和对应习题的练习,用户通过练习来了解自己对知识点的掌握情况,以便调整学习进度和学习计划。个人中心模块包括个人信息、我的收藏、我的缓存、我的历史、我的练习、安全升级、系统设置和意见反馈等,该模块主要是用户观看视频和练习的状态的记录,以及账户信息和安全的管理,由于版块功能过多,采用列表式的设计显示模块,清晰简洁,使用户一目了然。
4 APP实现及关键技术(APP implementation and
key technologies)
4.1 总体架构
APP客户端整体采用MVC(Model View Controller)框架。MVC是一种将业务逻辑、数据、界面分离的方法组织代码的框架。在改进界面及用户交互的同时,不需要重写业务逻辑,将app的输入、处理和输出分离。其中Model表示数据模型,它是应用程序的核心,用来对应用所需数据进行加工处理,为应用提供统一的数据形式。View表示视图,也就是应用的数据显示,可以通过iOS提供的UILabel、UIText、UIButton、UITableView、UICollectionView等控件对应用所需数据进行页面布局,一般从美观、实用和高效三个方面来考虑。Controller代表控制器,用于用户交互,和应用逻辑整体控制。
常用的控制器有UIViewController、UINavgationController、UITabBarController、UIViewController用于对某一功能模块的控制或者与用户的交互,UINavgationController和UITabBarController用于对一个或多个控制器的管理。本应用包含首页、分类、练练、我的四个主要模块,以及登录注册模块,应用UITabBarController和UINavgationController分别对这两个部分进行控制管理,实现各功能模块彼此之间的控制和跳转,如图2所示。
4.2 界面实现
APP首页主要用于展示用户可浏览的课程,包括我的课程、最新课程、推荐课程等,这些内容会随着后台数据的变化而变化,但整个首页面显示形式基本上是固定的。为了不让APP针对不同的数据反复创建视图对象,可以采用iOS提供的重用机制,反复使用可重用的视图对象。首页页面如图3所示,根据其格式特征,以及上述分析,可以很好的利用UICollectionView的重用功能来实现视频资源的展示。
分类模块用于分类显示系统所有视频资源(图4),该模塊采用表视图(UITableView)来实现,表视图也是iOS中典型的可采用重用机制的控件,视频列表采用一个自定义cell来进行布局,实现界面的统一协调,根据接口返回的数据的不同,显示不同的视频信息。同时,采用下拉刷新的方式用于加载最新的数据或者在在网速较慢的情况下重新加载数据。左边栏采用自定义的视图,通过选择不同的标签得到不同分类的课程视频资源[7]。
视频播放是APP最重要的一个功能,在该页面自定义了一个播放器(图5),使用AVFoundation框架中的AVPlayer类实现播放功能[8]。同时在这个界面设置了评论区,用户可以相互评论交流,也能对微课视频发表评论。视频播放界面左下角咨询按钮利用腾讯的接口,实现QQ联系授课教师答疑解惑,在播放界面还可以将视频添加到我的缓存中进行下载方便以后观看,也可以添加到我的收藏。
5 数据请求(Data request)
数据请求是iOS应用开发最重要的一个环节,没有数据的应用只是一个空壳。本应用数据均使用MySQL数据库进行存储,对需要调用的数据,使用PHP技术对数据库进行查询,转换成JSON数据格式。所有要从网络下载或查询的数据均采用JSON数据格式作为数据接口,项目中所要使用的图片、问题和答案等信息均通过数据库查询后转换成JSON文件格式,这种格式的数据都以键值对的形式表示,APP的界面数据通过网络获取JSON数据内容,这样可以很好的实现界面呈现内容与界面版式的分离,即用一种界面版式,读取若干界面内容,保证了内容呈现风格的一致性,同时减小了文件的大小。服务器端数据与客户端也保持了相对的独立性,便于数据和界面的移植。
数据存放于服务器端,客户端使用数据需向服务器端发起HTTP请求。在应用中,数据获取的方法和顺序会影响获取数据的速度,进而影响整个应用的速度。在本应用中涉及的数据有文本数据、图片数据和视频数据等,为满足需求使用异步POST数据请求方式。在异步请求过程中,会涉及多任务同时处理的问题,比如请求数据和显示获取到的数据,这时就必须用到线程来处理问题。一个线程同一时刻只能处理一个任务,多个任务同时执行就必须使用多线程。因为数据请求是一个耗时操作,涉及服务器的反应速度、网络延时等问题,需要等数据请求完成后才能在UI上显示数据,如果在这个时间段用户得不到任何响应,将是一种很不好的体验。因此将数据请求操作单独放在一个线程,而与用户交互的操作放在主线程,以此保证应用及时响应用户操作。
在本应用中凡涉及多任务处理均使用GCD多线程技术。GCD是苹果公司为多核的运算提出的解决方案,会自动利用更多的处理器核心。GCD是基于c语言的,会负责创建线程和调度需要执行的任务,有系统提供线程管理。GCD提供了队列(Dispatch Queue)来对应用中的多任务进行管理。
数据请求成功后,会对服务器返回的数据进行JSON解析,并刷新UI界面显示结果。
6 系统测试(System test)
APP实现后必须对其进行系统测试,测试可以用模拟器测试,也可以采用真机测试。Xcode自带有各个版本的iPhone模拟器,为了确保APP能在各个版本的iPhone可兼容运行,可以根据需要选择不同大小的屏幕。除了模拟器测试,还可以采用真机测试,真机测试更能体现APP在真机上的运行效果。本APP在iPhone6、iPhone6 Plus真机通过了测试。在进行真机测试时,系统要求提供开发者证书,因此在测试之前必须注册APP ID,申请开发者证书。系统测试主要包括功能和性能测试。
6.1 功能测试
根据微课视频学习APP的功能设计,选取了其中的几个主要功能进行了测试。首先是用户的注册和登录功能,用户的注册采用的是手机验证码注册,注册成功后采用手机号和密码进行登录。使用了多个手机号进行了注册登录,均可以成功实现发送验证码注册,注册后的手机号也可以成功登录系统,并进行操作。
APP的视频播放功能和习题练习功能也能按照原设计要求正常运行。在测试服务器中存储了几个微课视频和相关的习题,可以通过APP对其进行读取,视频可以实现播放、暂停、快进和停止,练一练可以实现习题的选择和对错判断功能。
6.2 性能测试
性能测试是在保证APP正常运行,实现所设计的功能之后的最后一环。本APP开发工具Xcode自带有专门的性能测试工具—analyze静态分析工具和Instruments-Leaks动态分析工具,通过运行性能测试工具analyze进行测试,没有内存泄露、空指针、对象引用、数值赋值等方面的错误。Instruments-Leaks有很多跟踪模块可以动态分析和跟踪内存,CPU和文件系统。利用这两个工具,对应用代码进行了优化改进。除此之外,APP的性能测试还包括负载测试和压力测试,目的是为了验证能否实现用户提出的性能指标,发现系统中存在的性能瓶颈,用以进一步优化系统[2]。
7 结论(Conclusion)
微課视频学习APP具有较强的针对性和可移植性,通过简单的数据处理可以较好的将学校现有的微课资源通过APP进行在线学习,同时APP简单易用,使用方便,教师如能将APP的使用与教学相结合,可以较好的提高学生的学习兴趣,将为在校学生利用微课进行随时随地的学习提供便利。
参考文献(References)
[1] 胡俊平,谭颖,热依汗古丽.艾尔肯.基于iOS平台的华阳社区资讯共享服务“乐助”的设计与开发[J].西南民族大学学报(自然科学版),2018(2):184-193.
[2] 尚志会,罗旭,李洪进,等.基于iOS平台的新闻播报系统设计与实现[J].安阳工学院学报,2018(2):65-68.
[3] 王玉凡.基于PHP的Web查询系统的实现[J].河北软件职业技术学院学报,2016(4):49-51.
[4] 郭忠南.基于Android的移动微课平台的设计与实现[J].电脑与信息技术,2016(04):38-43.
[5] 周建亮,朱晓民.基于iOS平台智能点餐系统的设计与实现[J].软件,2015(1):131-134.
[6] 李蕾,李晓丽.基于iOS手持终端的移动学习资源设计研究[J].中国电化教育,2014(12):93-97.
[7] 黄浏展.IOS重用机制研究与实践[J].软件导刊,2014(11):122-125.
[8] 曾垂鑫,王加俊,申丽萍,等.基于iOS的移动学习直播互动平台[J].计算机工程,2013(7):314-317.
作者简介:
黄浏展(1975-),男,硕士,副教授.研究领域:高职教育教学,移动应用技术.
相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建