摘 要: 為了滿足學(xué)習(xí)者隨時(shí)隨地學(xué)習(xí)的要求,設(shè)計(jì)了基于iOS移動(dòng)學(xué)習(xí)平臺(tái)的微型課件。該設(shè)計(jì)以微型學(xué)習(xí)理論為基礎(chǔ),以Xcode為開發(fā)平臺(tái),object-c為開發(fā)語(yǔ)言,采用C/S架構(gòu)和MySQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)了客戶端、服務(wù)器、數(shù)據(jù)庫(kù)之間的通信調(diào)用,同時(shí)完成了在手機(jī)端對(duì)微型課件的展示。主要實(shí)現(xiàn)的微型課件模式分為:文本﹑圖片和視頻。經(jīng)測(cè)試,文本﹑圖片和視頻的響應(yīng)時(shí)間均達(dá)到了設(shè)計(jì)要求,實(shí)現(xiàn)了在iOS平臺(tái)上學(xué)習(xí)的目的。
關(guān)鍵詞: iOS操作系統(tǒng);微型課件;移動(dòng)學(xué)習(xí)
0 引言
一種全新的學(xué)習(xí)方式——移動(dòng)學(xué)習(xí)(Mobile Learning),作為一種潛在的新型學(xué)習(xí)方式,可以滿足學(xué)習(xí)者在任何時(shí)間、任何地點(diǎn)獲得任何知識(shí)的學(xué)習(xí)愿望。移動(dòng)學(xué)習(xí)需要以微型的媒體來(lái)呈現(xiàn)微型的內(nèi)容,它是指在終身學(xué)習(xí)的思想指導(dǎo)下,利用現(xiàn)代通信終端,如手機(jī)、PDA等設(shè)備進(jìn)行遠(yuǎn)程學(xué)習(xí)。
隨著智能手機(jī)用戶總數(shù)的大幅提升,手機(jī)已成為人們學(xué)習(xí)的一種工具。iOS作為一款成功的手機(jī)系統(tǒng)[1],具有極為人性化的頁(yè)面和極為強(qiáng)大性能,因此深受用戶的喜愛。由于iOS采用封閉源碼,因此開發(fā)過(guò)程較開源系統(tǒng)更為復(fù)雜。在這樣的背景下,本文提出的微型課件在iOS平臺(tái)上的設(shè)計(jì)與實(shí)現(xiàn),采用Xcode開發(fā)平臺(tái)和object-c開發(fā)語(yǔ)言,目的在于滿足學(xué)習(xí)者在iOS平臺(tái)上移動(dòng)學(xué)習(xí)的需要,同時(shí)通過(guò)C/S模式,解決手機(jī)、PDA等設(shè)備無(wú)法滿足傳統(tǒng)較大容量課件的存儲(chǔ)需求的問(wèn)題。
1 iOS技術(shù)平臺(tái)介紹
1.1 平臺(tái)架構(gòu)
iOS是蘋果公司iPhone、iPod Touch和iPad設(shè)備的核心操作系統(tǒng)。與Mac OS X操作系統(tǒng)一樣,iOS也是以Darwin2為基礎(chǔ),屬于類Unix的商業(yè)操作系統(tǒng)。
iOS系統(tǒng)結(jié)構(gòu)分為4層,如圖1所示。
?。?)Cocoa Touch層:是Objective-C的API,其中最核心的部分是UIKit.Framework。除UIKit之外,Cocoa Touch包含創(chuàng)建iOS應(yīng)用程序所需的所有框架。
(2)Media層:提供了圖片、音樂(lè)、影片等多媒體功能。圖像分為2D圖像和3D圖像,前者由Quartz2D支持,后者由OpenglES支持。
(3)Core Services層:為所有的應(yīng)用程序提供基礎(chǔ)系統(tǒng)服務(wù),它包含了Foundation.Framework和Core Foundation.Framework,它在Core OS層基礎(chǔ)上提供了更為豐富的功能,如:處理字串、排列、組合、日歷等。
?。?)Core OS層:是在FreeBSD4和Mach5基礎(chǔ)上所改寫的Darwin,是開源、符合POSIX標(biāo)準(zhǔn)的一個(gè)Unix核心。
1.2 基本的iOS開發(fā)工具
目前常用的iOS開發(fā)工具和開發(fā)包有:Xcode、iOS模擬器、頁(yè)面創(chuàng)建器(Interface Builder)、微技(Widget)等。本設(shè)計(jì)采用的開發(fā)工具為Xcode,開發(fā)包為Interface Builder和Widget。
(1)Xcode
Xcode是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境(非開源),用于開發(fā)Mac OS X和iOS的應(yīng)用程序,運(yùn)行于蘋果公司的Mac操作系統(tǒng)下。Xcode貫穿整個(gè)開發(fā)應(yīng)用過(guò)程,同時(shí),Xcode為整個(gè)過(guò)程提供所需的各種工具。
(2)Interface Builder
Interface Builder以所見即所得方式組裝用戶界面。通過(guò)Interface Builder可以組裝出應(yīng)用程序的用戶界面。當(dāng)用戶界面達(dá)到要求后,將其保存為.nib格式。
(3)Widget
在互聯(lián)網(wǎng)領(lǐng)域,Widget是一種基于Web技術(shù)的小應(yīng)用,采用HTML/XHTML、CSS、JavaScript等傳統(tǒng)的開發(fā)技術(shù)[2]。將Widget技術(shù)搬到手機(jī)上,從而誕生了移動(dòng)Widget(Mobile Widget)。移動(dòng)Widget的主要特點(diǎn)有:一次開發(fā)、跨平臺(tái)運(yùn)行;在有限的手機(jī)屏幕范圍內(nèi),用戶可以對(duì)界面進(jìn)行個(gè)性化定制。
2 微型課件的設(shè)計(jì)方法
微型課件的開發(fā)主要基于微型學(xué)習(xí)理論。其設(shè)計(jì)與實(shí)現(xiàn)主要基于iOS平臺(tái),同時(shí)采用了C/S架構(gòu)模式。
2.1 客戶端和服務(wù)器端架構(gòu)
客戶端用于接收用戶請(qǐng)求和顯示返回結(jié)果。學(xué)習(xí)者通過(guò)iOS客戶端訪問(wèn)移動(dòng)學(xué)習(xí)資源的入口,調(diào)用封裝好的應(yīng)用程序接口來(lái)使用客戶端的各項(xiàng)功能??蛻舳酥饕ń缑娉尸F(xiàn)、多媒體處理和數(shù)據(jù)通信等模塊。
本平臺(tái)的服務(wù)器端采用的是開源TOMCAT。TOMCAT處理客戶端的各種Http請(qǐng)求,并把請(qǐng)求的信息發(fā)送給Servlet,Servlet根據(jù)請(qǐng)求信息進(jìn)行處理,并通過(guò)數(shù)據(jù)庫(kù)驅(qū)動(dòng)JDBC,訪問(wèn)MySQL數(shù)據(jù)庫(kù)。Servlet把訪問(wèn)數(shù)據(jù)庫(kù)得到的數(shù)據(jù)和最后處理好的結(jié)果封裝到相應(yīng)對(duì)象中,發(fā)送給TOMCAT,TOMCAT把得到的結(jié)果回傳給客戶端。整個(gè)架構(gòu)如圖2所示。
2.2 學(xué)習(xí)資源數(shù)據(jù)庫(kù)的設(shè)計(jì)
MySQL是完全網(wǎng)絡(luò)化的跨平臺(tái)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),具有功能強(qiáng)、使用簡(jiǎn)便、管理方便、運(yùn)行速度快、安全可靠性強(qiáng)等優(yōu)點(diǎn)[3],因此本平臺(tái)采用了該數(shù)據(jù)庫(kù)系統(tǒng)。
本著冗余小和擴(kuò)展性強(qiáng)的原則,設(shè)計(jì)了如下幾張表:tb_book、tb_chapter、tb_mchip、tb_problem和tb_video。
本數(shù)據(jù)庫(kù)在充分考慮參照完整性的前提下,通過(guò)各表之間的關(guān)系將多個(gè)表結(jié)合在一起。根據(jù)各個(gè)關(guān)系之間的聯(lián)系,設(shè)計(jì)出的該數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)冗余小且易于功能的擴(kuò)展。
2.3 微型課件的展示
溫伯格把微內(nèi)容定義為“小組快、松散連接、一直處于動(dòng)態(tài)重組中的信息單元”[4]?;谶@些特征的限定,微型課件的內(nèi)容可以是小文本、圖片圖像、視頻小片段或小動(dòng)畫等。本文對(duì)微型課件內(nèi)容的開發(fā)以小文本、小圖片、微視頻為主。
2.3.1 文本模式
移動(dòng)學(xué)習(xí)是一種非穩(wěn)定的學(xué)習(xí)方式,隨時(shí)可能因外界的環(huán)境變換,使學(xué)習(xí)處于一種分散、只能接受小容量知識(shí)的狀態(tài)。而文本的展示優(yōu)點(diǎn)在于簡(jiǎn)潔、說(shuō)明性強(qiáng),所以本文以文本的方式將學(xué)習(xí)的知識(shí)點(diǎn)微型模塊化,一個(gè)模塊對(duì)應(yīng)一個(gè)章節(jié)的微型知識(shí)點(diǎn),以此將《多媒體技術(shù)與應(yīng)用教程》的知識(shí)點(diǎn)挖掘出來(lái),分解成很多微小的適合于零碎時(shí)間學(xué)習(xí)的知識(shí)點(diǎn)。展示圖如圖3所示。
文本模塊的部分代碼如下:
-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath
{static NSString*simpleTableIdentifier=@"CcnuTabCell";
UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if(cell==nil)
{cell=[[UITableViewCell alloc]initWithStyle:
UITableViewCellStyleDefaultreuseIdentifier:
simpleTableIdentifier];}
}
2.3.2 圖片模式
圖片模式下展示知識(shí)點(diǎn),具有具體、直觀、形象、生動(dòng)的特點(diǎn),而且可以實(shí)現(xiàn)連貫性。因此針對(duì)《多媒體技術(shù)與應(yīng)用教程》中軟件工具的使用操作,以微型為主題,采用范圍確定、內(nèi)容連貫的學(xué)習(xí)組織方式,設(shè)計(jì)并實(shí)現(xiàn)了圖片學(xué)習(xí)模式。以清晰易懂為特點(diǎn),圖片模式的學(xué)習(xí)將更受歡迎。展示圖如圖4所示。
圖片模塊的部分代碼如下:
serverDic=[[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error]retain];
if(!error)
{bookName=[[NSArray arrayWithObjects:[[serverDic objectAtIndex:0]objectForKey:@"bookName"],
[[serverDic objectAtIndex:1]objectForKey:@"bookName"],nil]retain];
}
2.3.3 視頻模式
將普通長(zhǎng)視頻分割成若干個(gè)微視頻,每個(gè)微視頻中以突出一至兩個(gè)中心知識(shí)點(diǎn)的形式,不僅緩解了學(xué)習(xí)者視覺與聽覺疲勞,同時(shí)也提高了學(xué)習(xí)效率。圖5(a)所示為以微知識(shí)點(diǎn)為主的教師課堂授課視頻在智能手機(jī)中的效果。
播放界面(見圖5(b))下方有一個(gè)提問(wèn)欄,學(xué)習(xí)者可以隨時(shí)提問(wèn),服務(wù)器根據(jù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)匹配來(lái)給予答復(fù),如果問(wèn)題庫(kù)中沒(méi)有相應(yīng)的答案,服務(wù)器會(huì)記錄下該問(wèn)題并提交給教師,教師解答問(wèn)題并更新數(shù)據(jù)庫(kù)。這樣逐步建立起一個(gè)針對(duì)本書的答疑庫(kù)。
視頻模塊的部分代碼如下:
[path appendString:videoPath];
NSURL*url=[NSURL URLWithString:path];
mpcontroller=[[MPMoviePlayerController alloc] initWithContentURL:url];
[self.view addSubview:mpcontroller.view];
mpcontroller.view.frame=CGRectMake(0,0,320,200);
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callbackFunction:);
3 平臺(tái)測(cè)試
運(yùn)行結(jié)果測(cè)試如表1所示。
系統(tǒng)正確實(shí)現(xiàn)了各個(gè)模塊之間的通信功能和通過(guò)數(shù)據(jù)庫(kù)管理基礎(chǔ)數(shù)據(jù)的功能,同時(shí)實(shí)現(xiàn)了數(shù)據(jù)內(nèi)容的多樣化和中英文界面。
4 結(jié)論
本文在iOS平臺(tái)上完成了通過(guò)智能手機(jī)對(duì)微型課件的展示,實(shí)現(xiàn)了客戶端、服務(wù)器、數(shù)據(jù)庫(kù)之間的通信調(diào)用。但是,整個(gè)系統(tǒng)仍然存在一些不足:可靠性控制不夠嚴(yán)密,很多控制是通過(guò)頁(yè)面控制實(shí)現(xiàn)的,如果頁(yè)面控制失效,一旦向數(shù)據(jù)庫(kù)插入數(shù)據(jù),將引發(fā)錯(cuò)誤,這是需要進(jìn)一步改進(jìn)的地方。
iOS開發(fā)在國(guó)內(nèi)已經(jīng)開始流行,其越來(lái)越廣泛的應(yīng)用勢(shì)必使iOS開發(fā)成為熱點(diǎn)。在今后的學(xué)習(xí)和研究中,將進(jìn)一步完成和優(yōu)化本設(shè)計(jì)。
參考文獻(xiàn)
[1] KWAK D H, RAMAMURTHY K. iOS resources,electronic cooperation and performance: a conceptual model[C]. The 44th Hawaii International Conference on System Science,Hawaii, 2011:1-10.
[2] 潘標(biāo).移動(dòng)Widget引擎在iOS平臺(tái)上的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[3] 李會(huì)賢.基于MYSQL/LINUX的LAMOST數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].天文研究與技術(shù),2006,3(1).56-63.
[4] 張浩.微內(nèi)容環(huán)境中的學(xué)習(xí)者體驗(yàn)設(shè)計(jì)初探[J].遠(yuǎn)程教育雜志,2009(6):67-70.