牛麗 殷凡 熊志勇
摘 要: 研究新一代信息技術(shù)背景下移動學習系統(tǒng)的構(gòu)成及資源開發(fā)現(xiàn)狀,根據(jù)移動學習資源構(gòu)建的策略、移動學習資源處理和使用的流程,給出iOS平臺移動學習資源構(gòu)建的方案和相關(guān)技術(shù)。然后講述在iOS平臺進行移動學習終端APP設(shè)計與開發(fā)的思路,并給出系統(tǒng)的原型,分析iOS移動客戶端的網(wǎng)絡(luò)資源獲取技術(shù)及本地數(shù)據(jù)存儲和處理技術(shù),實現(xiàn)iOS平臺的學習資源構(gòu)建及移動學習需求,以期為以后其它移動平臺資源及應(yīng)用開發(fā)提供一定的參考價值。
關(guān)鍵詞:iOS平臺;移動學習;資源構(gòu)建;終端
中圖分類號:G434 文獻標志碼:A 文章編號:1673-8454(2015)12-0018-04
隨著移動互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展和云計算帶來的海量存儲、智能終端設(shè)備功能的日益強大和快速普及,在教育領(lǐng)域中隨時隨地的學習即移動學習需求在不斷地增加。移動學習作為新一代的學習方式,區(qū)別于傳統(tǒng)網(wǎng)絡(luò)學習、數(shù)字化學習的主要特征是其移動性、交互性,具有更加靈活方便及滿足個性化服務(wù)需求等優(yōu)點,能夠?qū)崿F(xiàn)任何人在任何時間、任何地點、以任何方式學習任何內(nèi)容,彌補傳統(tǒng)學習方式存在的問題和不足,能夠促進主體學習方式的深刻變革,逐步成為未來非正式學習、泛在學習、終身學習的研究趨勢,適應(yīng)了學習型社會的構(gòu)建目標及終身教育的發(fā)展需求。
一、移動學習系統(tǒng)及移動學習資源開發(fā)現(xiàn)狀
實施和開展移動學習的相關(guān)活動,前提需要具備完善的移動學習系統(tǒng),它的主要組成部分包含:移動學習網(wǎng)絡(luò)支持環(huán)境、移動學習平臺、移動學習資源、移動學習應(yīng)用軟件等,其中構(gòu)建豐富的移動學習資源是整個移動學習系統(tǒng)的核心,它的實現(xiàn)是進行一切移動學習活動的基礎(chǔ)和重要環(huán)節(jié)[1]。在目前一些移動學習方式中,多為簡單地在移動終端設(shè)備中通過瀏覽器訪問學習資源,或與資源服務(wù)器進行簡單的交互;存在學習資源類型較為單一、內(nèi)容不夠豐富、個性化設(shè)計不足、互動性不夠、主體學習積極性不高等問題;缺乏針對主流移動平臺而設(shè)計的完整和具體學習資源;同時移動學習資源開發(fā)過程中缺乏統(tǒng)一的標準和規(guī)范,使得資源共享率較低,低效重復的開發(fā)情況較多,目前對移動學習資源的研究較多地集中在從理論角度研究其設(shè)計、開發(fā)、應(yīng)用、管理和評價等[2]。
移動終端軟件的開發(fā)是進行移動學習的有效保障,它使得終端具備操作和訪問學習資源的能力,是整個移動學習系統(tǒng)的重要組成部分,其質(zhì)量高低直接決定了移動學習的成效,應(yīng)根據(jù)主流不同移動平臺進行規(guī)劃和設(shè)計開發(fā),以更好的用戶體驗與系統(tǒng)中的移動學習資源進行交互。目前主流的移動應(yīng)用開發(fā)平臺有谷歌的Android、蘋果的iOS、微軟的WinPhone等,以前二者為主,Android平臺由于其應(yīng)用開發(fā)門坎較低、操作平臺開源等因素,擁有最大的市場占有率;而iOS平臺由于其終端產(chǎn)品的卓越性能及其時尚的造型設(shè)計、App應(yīng)用的規(guī)范管理及潛在的無限誘人商機,也吸引大量的應(yīng)用開發(fā)者涌入,但其應(yīng)用開發(fā)門坎相對較高,條件限制更為嚴格?,F(xiàn)有移動學習終端軟件的開發(fā)多以Android平臺為主,較少涉及iOS平臺。
二、基于iOS平臺的移動學習資源構(gòu)建策略及方案
1.移動學習資源構(gòu)建策略
移動學習資源是為在移動終端上開展移動學習活動目的而構(gòu)建的各種數(shù)據(jù)資源,根據(jù)學習內(nèi)容的承載方式主要分為文本資源、圖形圖像資源、音視頻資源、多媒體課件資源、交互性資源等,由于移動終端設(shè)備自身的硬件特點以及學習資源的豐富性、完整性、實用性等要求,應(yīng)將學習資源建立在數(shù)據(jù)庫服務(wù)器上以便維護,并開發(fā)實現(xiàn)相應(yīng)的服務(wù)器端訪問和服務(wù)接口,學習主體通過移動終端設(shè)備上專門開發(fā)的移動學習軟件對學習資源進行移動訪問和交互,它在移動終端設(shè)備上的呈現(xiàn)形式有短信式、網(wǎng)頁瀏覽式、下載存儲式等,滿足主體學習方式的主動性、場景性、持續(xù)性、交互性等特點,在設(shè)計過程中要遵循簡潔友好、功能模塊化、提供真實學習情境、系統(tǒng)可靠性等原則。
在移動學習資源開發(fā)中,應(yīng)該根據(jù)學習主體對象的具體學習需求,緊扣學習目標,綜合考慮知識內(nèi)容、信息承載量、呈現(xiàn)方式及管理方式等眾多因素,遵循知識化、微型化、碎片化、交互性等原則[3],以項目為導向、任務(wù)為驅(qū)動,基于知識點進行移動學習內(nèi)容的設(shè)計,針對主流的不同移動應(yīng)用平臺,設(shè)計內(nèi)容緊湊、短小精焊、形式簡潔的靈活性學習內(nèi)容;移動學習資源是目前已有數(shù)字化學習資源的補充和提升,開發(fā)中要充分使用和挖掘已有各種數(shù)字化學習平臺和網(wǎng)絡(luò)學習資源,在原基礎(chǔ)上針對移動終端設(shè)備訪問特點和交互需求再次開發(fā),避免現(xiàn)有資源的浪費,提高移動學習資源開發(fā)效率,節(jié)約開發(fā)成本。
2.移動學習資源處理與使用流程
移動學習系統(tǒng)包括資源處理子系統(tǒng)和資源學習子系統(tǒng),如圖1所示為移動學習資源處理使用流程[4],資源處理子系統(tǒng)為教師提供資源上傳功能,為管理人員提供資源審核、分類管理和維護等功能,資源上傳時要對資源信息進行具體設(shè)置,包括資源標題、所屬關(guān)鍵詞、包含知識點、資源的描述、資源的類型、資源的大小、上傳時間、上傳者等,上傳成功的資源以列表呈現(xiàn)在待審核區(qū)中,等待管理人員審核,資源審核操作包括審核通過、不通過、刪除資源、資源格式轉(zhuǎn)換等功能,通過審核的資源將統(tǒng)一編輯轉(zhuǎn)換為特定格式保存至資源服務(wù)器中,不通過的資源將從資源區(qū)中刪除。資源學習子系統(tǒng)用于開展移動學習活動,為學習者提供資源推薦、瀏覽、檢索、播放、下載、練習、測試、互動等功能,為教師提供測評和答疑功能。
在資源使用環(huán)節(jié)中,學生通過移動客戶端注冊登錄學習系統(tǒng),對服務(wù)器端的學習資源進行訪問和交互,可將服務(wù)器中文本、音視頻、課件等資源下載到本地進行離線學習,也可通過網(wǎng)絡(luò)登錄資源服務(wù)器進行在線學習、交互學習,學完一階段主題后可進行在線測試,系統(tǒng)對學習效果進行測評并將成績寫到服務(wù)器中。教師根據(jù)學習對象及其學習需求,組織學習內(nèi)容,通過后臺管理系統(tǒng)上傳學習資源,對測評結(jié)果和學習過程進行管理,參與學習過程中的交流和討論、提供針對性答疑和輔導。管理人員通過后臺管理系統(tǒng)對學習資源進行審核、編輯、發(fā)布、維護,對系統(tǒng)用戶及配置進行管理。
3.基于iOS平臺的移動學習資源構(gòu)建方案及相關(guān)技術(shù)
根據(jù)移動智能終端的硬件特點及移動學習的功能需求,移動學習系統(tǒng)宜采用C/S架構(gòu),將學習資源存放在高性能的服務(wù)器中提供資源分發(fā)服務(wù),管理用戶、學習資源及學習進度等各類動態(tài)數(shù)據(jù),為管理員和教師提供資源管理接口,為學員提供資源訪問和交互接口。開源PHP相比于其它Web開發(fā)工具,具有良好的安全性、可移植性、可擴展性,執(zhí)行速度快、效率高、開發(fā)成本低,可操縱多種數(shù)據(jù)庫,支持SOAP、SMTP、IMAP、POP3、DNS等多種通信協(xié)議,采用Apache+PHP+MySQL開源免費的框架結(jié)構(gòu)具有強勁優(yōu)勢,可跨平臺運行。
如圖2所示為本系統(tǒng)移動學習資源構(gòu)建方案[5],數(shù)據(jù)庫和服務(wù)器可放置于同一臺機器上,iOS移動客戶端是用戶訪問系統(tǒng)的入口,在其上面開發(fā)移動學習軟件以可視化界面方式將學習資源展示給主體,提供主體認證、使用引導、數(shù)據(jù)交互、移動學習等視圖,設(shè)計客戶端通信接口存取服務(wù)端的Web Service獲取數(shù)據(jù);MySQL數(shù)據(jù)庫中存放各類豐富的學習資源以及對資源進行處理的數(shù)據(jù)庫對象和接口;PHP服務(wù)器端充當媒介角色,在其上面開發(fā)各類Web Service服務(wù)接口、數(shù)據(jù)庫接口及后臺管理功能,以 Web Service 向客戶端提供訪問接口,攔截客戶端的URL請求,使得客戶端和數(shù)據(jù)庫端進行交互,實現(xiàn)對數(shù)據(jù)庫的存取操作及客戶端的訪問交互需求。
服務(wù)器端與客戶端的數(shù)據(jù)傳輸采用XML或JSON格式,內(nèi)容可是 HTTP、SOAP或Restful等,與服務(wù)器端交互通過GET方式獲取XML數(shù)據(jù)并解釋為JSON格式,提取所需信息,客戶端通過HttpResponse獲取返回的交互信息,在客戶端需進行 XML 的解析。iOS移動客戶端發(fā)起HTTP協(xié)議請求,利用HttpClient類及相關(guān)技術(shù)通過Http協(xié)議與PHP服務(wù)器端進行遠程網(wǎng)絡(luò)通信,包括傳輸請求和響應(yīng)交互命令,通過服務(wù)端開發(fā)的Web Service接受iOS移動客戶端的請求,訪問后臺MySQL數(shù)據(jù)庫獲取相應(yīng)的學習資源,并將處理結(jié)果返回到iOS移動客戶端,實現(xiàn)客戶端通過服務(wù)器端與數(shù)據(jù)庫中各種學習資源的實時交互操作。
三、基于iOS平臺的移動學習終端APP設(shè)計與實現(xiàn)
1.基于iOS平臺的移動學習終端APP設(shè)計思路
這里以iOS客戶端移動學習APP設(shè)計為例,講解如何在移動學習理論的指導下,結(jié)合蘋果移動終端設(shè)備的特性,在服務(wù)器端學習資源開發(fā)實現(xiàn)的基礎(chǔ)上進行移動客戶端應(yīng)用開發(fā)。系統(tǒng)采用Xcode5開發(fā)工具、Objective-C開發(fā)語言、結(jié)合SDK開發(fā)工具包及第三方框架,iOS移動客戶端與PHP服務(wù)器端的網(wǎng)絡(luò)通信及數(shù)據(jù)交互使用開源的第三方框架ASIHTTPRequest,iOS移動客戶端本地數(shù)據(jù)存儲使用嵌入式輕量級關(guān)系型SQLite 數(shù)據(jù)庫,對SQLite 數(shù)據(jù)庫的各種操作使用開源第三方框架FMDB,對內(nèi)存采用自動化管理與手動管理相結(jié)合方式,APP技術(shù)架構(gòu)采用 MVC模式分層設(shè)計模型、視圖、控制器及各層之間的關(guān)系,使系統(tǒng)具有良好的擴展性、重用性、可讀性及維護性。
系統(tǒng)設(shè)計的iOS平臺移動學習終端APP原型主要使用流程為:在學員登錄進入主界面以后可選擇全部課程、我的課程、推薦課程、我的收藏等頁面;選擇某一門課程資源后,可以查看該課程相關(guān)的PPT、講義、視頻資源,APP提供在線練習及測試功能,提交試卷后可查看試題的答案和測評結(jié)果,進入該課程論壇可與教師或同學進行學習和交流;對服務(wù)器中的資源可根據(jù)需要選擇在線瀏覽或下載到終端中進行離線學習的方式,可查看該資源相關(guān)的評價并在學習完后對該資源進行評價。對下載到本地的資源,根據(jù)資源的類型和格式,在終端APP中設(shè)計或調(diào)用已有的工具軟件進行瀏覽或播放。
2.iOS移動客戶端資源獲取技術(shù)
iOS客戶端對PHP服務(wù)端學習資源獲取及交互使用開源第三方框架ASIHTTPRequest,該框架建立在CFNetworkAPI基礎(chǔ)上并對其進行抽象化封裝,適用于基本HTTP請求和基于REST的服務(wù)交互,實現(xiàn)從服務(wù)端獲取數(shù)據(jù)和向服務(wù)端提交數(shù)據(jù),同時支持數(shù)據(jù)同步異步傳輸、隊列請求、斷點續(xù)傳、進度跟蹤、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服務(wù)器端地址,創(chuàng)建ASIHTTPRequest對象時要指定欲訪問的URL目標地址。下面語句為在資源請求成功或失敗時需要調(diào)用的方法demandAchieved和demandFailed,回調(diào)時將demand作為方法參數(shù),通過startAsynchronous方法啟動異歩數(shù)據(jù)請求:[demand setDidFinishSelector: @selector(demandAchieved:)];
[demand setDidFailSelector: @selector(demandFailed:)];
[demand startAsynchronous];
通過如下方法進行返回JSON數(shù)據(jù)的解析,把服務(wù)器端返回的JSON字符串的Data轉(zhuǎn)化成dictionary,解析結(jié)果以NSDictionary對象的形式保存:NSString *demandContext = [demand responseData]; NSDictionary * demandWordBook = [NSJSONSerialization JSONObjectWithData: demandContext options:NSJSONReadingMutableContainers error:nil];
資源文件的下載基于多線程斷點續(xù)傳技術(shù),實時檢測本地已下載文檔長度和從臨時文件讀取斷點值并發(fā)送給服務(wù)端,服務(wù)端與客戶端調(diào)整指標值到斷點處實現(xiàn)續(xù)傳。由于資源獲取操作較為頻繁且不同URL調(diào)用處理邏輯相同,將資源獲取方法歸納并封裝在單獨的類中,方便其它視圖控制器調(diào)用并可進行各自擴展。
3.iOS移動客戶端本地數(shù)據(jù)存儲技術(shù)
在iOS客戶端將資源下載到本地中可進行離線學習,減少網(wǎng)絡(luò)交互所帶來的額外開銷,在Xcode中描述資源服務(wù)器中數(shù)據(jù)表結(jié)構(gòu)并編寫數(shù)據(jù)訪問類,封裝數(shù)據(jù)庫初始化、數(shù)據(jù)表添加、刪除、修改、查詢等操作,在操作訪問SQLite數(shù)據(jù)庫時使用開源第三方框架FMDB,使用時在工程框架屬性中導入libsqlite3.dylib 依賴,主要使用FMDatabase和FMResultSet兩個類來表示單獨的SQLite數(shù)據(jù)庫及在庫中執(zhí)行SQLite命令,返回查詢后的結(jié)果集。工程中要得到應(yīng)用程序沙盒路徑,將SQLite數(shù)據(jù)庫嵌入到本地設(shè)備當前應(yīng)用程序的可讀寫文檔夾里,其主要方法如下:
NSArray* routes=NSSearch Path For DirectoriesIn Domains (NSDocumentDirectory,
NSUserDomainMask,YES);
NSString * fileCatalogue = [routes objectAtIndex:0];
NSString * dataLibraryCatalogue =
[fileCatalogue stringByAppendingPathComponent:@"MobileStudy.Sqlite"];
然后創(chuàng)建FMDatabase實例,F(xiàn)MDatabase *dataLibrary= [FMDatabase databaseWithPath: dataLibraryCatalogue] ;將上述沙盒文件夾中SQLite數(shù)據(jù)庫文件路徑作為參數(shù),執(zhí)行[dataLibrary open]命令打開或新建數(shù)據(jù)庫,在和數(shù)據(jù)庫交互之前,數(shù)據(jù)庫文件必須是打開的。
在數(shù)據(jù)庫中執(zhí)行SQLite命令分為兩類,把除了select查詢語句之外的所有命令均視為更新語句,使用數(shù)據(jù)庫對象的executeUpdate方法執(zhí)行,查詢使用數(shù)據(jù)庫對象的executeQuery,返回的結(jié)果集保存到FMResultSet對象中,調(diào)用其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類提供多種格式轉(zhuǎn)換方法獲取當前記錄對應(yīng)格式的屬性值。
四、結(jié)束語
移動學習是新一代信息技術(shù)背景下數(shù)字化學習、網(wǎng)絡(luò)學習的延伸和拓展,是傳統(tǒng)教學的有效補充和輔助手段,是智慧校園建設(shè)重要組成部分,它的開展有助于實現(xiàn)泛在學習、終身學習的構(gòu)想,移動學習資源的構(gòu)建是移動學習開展的前提和基礎(chǔ),移動終端軟件的開發(fā)是移動學習開展的重要環(huán)節(jié)和保障。本文根據(jù)移動學習資源構(gòu)建策略和方案,針對iOS移動平臺講述移動學習終端軟件的設(shè)計思路和開發(fā)技術(shù),在具體實施中應(yīng)充分集成和利用目前已有的各類課程網(wǎng)站、學習資源和平臺,制定合理的移動學習目標和計劃,完善移動學習相關(guān)的標準和評價體系,實現(xiàn)真正意義上的無所不在的學習。
參考文獻:
[1]黃建軍,張璐.移動學習應(yīng)用環(huán)境構(gòu)建研究[J].電化教育研究,2013(7):59-63.
[2]趙慧,史彥.國內(nèi)移動學習資源研究綜述[J].成人教育,2014(9):28-30.
[3]郭慶春,李靜,寇立群.移動學習的教學資源建設(shè)研究[J].陜西廣播電視大學學報,2014(3):13-17.
[4]劉天放.基于iPad平臺的新聞閱讀客戶端的設(shè)計與實現(xiàn)[D].北京交通大學,2012:46-50.
[5]何天蘭,楊秀菊.基于Android移動網(wǎng)絡(luò)學習平臺的研究[J].智能計算機與應(yīng)用,2014(8):83-86.
(編輯:郭桂真)