王玉琴
(烏蘭察布醫(yī)學(xué)高等??茖W(xué)校 內(nèi)蒙古 烏蘭察布 012000)
近些年來,智能手機(jī)的普及促進(jìn)了移動(dòng)學(xué)習(xí)的研究與應(yīng)用。不同的資源站點(diǎn)可以在移動(dòng)設(shè)備上安裝所有的微課應(yīng)用程序。有些學(xué)校比較落后,有些大學(xué)和小學(xué)擁有自己的資源網(wǎng)站,然而,學(xué)校資源應(yīng)用程序默認(rèn)不使用移動(dòng)平臺(tái)。針對(duì)學(xué)生在移動(dòng)終端上隨時(shí)隨地上網(wǎng)的學(xué)習(xí)需求,設(shè)計(jì)開發(fā)了基于iOS平臺(tái)的學(xué)習(xí)應(yīng)用軟件。學(xué)生可在任何時(shí)間瀏覽學(xué)校現(xiàn)有的微課資源,觀看有關(guān)的微課視頻。
整體而言,它包含三個(gè)層:數(shù)據(jù)層、應(yīng)用層和表示層,表示層將HTTP查詢發(fā)送到應(yīng)用層,以顯示JSON數(shù)據(jù)作為應(yīng)用層的應(yīng)答;應(yīng)用層主要是響應(yīng)表示層的HTTP請(qǐng)求,處理業(yè)務(wù)邏輯,以及數(shù)據(jù)層的返回格式,然后在表示層處理。
從2007年起,蘋果IOS的操作系統(tǒng)就不斷改進(jìn)。蘋果手機(jī)也是隨著IOS的發(fā)展而發(fā)展起來的,在蘋果手機(jī)中的應(yīng)用越來越廣泛。與其它應(yīng)用相比,IOS系統(tǒng)更安全,Apple獨(dú)特的設(shè)備和軟件使系統(tǒng)運(yùn)行更平穩(wěn)。與此同時(shí),AppleSystem的界面也很漂亮,給用戶帶來了很好的體驗(yàn)。它是移動(dòng)設(shè)備上最受手機(jī)用戶歡迎的操作系統(tǒng)。
PHP是在不同服務(wù)器上廣泛使用的腳本語言。相對(duì)于其他技術(shù),PHP是一個(gè)開放源碼的免費(fèi)技術(shù)。支持開放數(shù)據(jù)庫連接的PHP,可以與MySQL、DB2和其他標(biāo)準(zhǔn)的數(shù)據(jù)庫交互式地使用,而且也支持?jǐn)?shù)據(jù)到PHP的轉(zhuǎn)換。它們被廣泛用于應(yīng)用界面開發(fā),通常是PHP、MySQL的后臺(tái)開發(fā)。它是一個(gè)小型的、快速的數(shù)據(jù)庫系統(tǒng)。本系統(tǒng)支持標(biāo)準(zhǔn)的SQL查詢語言,可廣泛應(yīng)用于中小型網(wǎng)站同步,并支持開發(fā)高級(jí)語言,如Java、C++和PHP。所以這個(gè)應(yīng)用選擇了PHP+MySQL作為一個(gè)測試服務(wù)器來管理后臺(tái)數(shù)據(jù)和開發(fā)界面。
作為Java腳本的一個(gè)子組,JSON是一個(gè)小型的數(shù)據(jù)交換格式,它的數(shù)據(jù)格式獨(dú)立于開發(fā)語言,在多個(gè)語言間交換數(shù)據(jù)。這種數(shù)據(jù)交換格式廣泛應(yīng)用于Android和IOS應(yīng)用程序開發(fā)。JSON中主要有兩種數(shù)據(jù)結(jié)構(gòu)。首先,數(shù)據(jù)結(jié)構(gòu)由不同語言實(shí)現(xiàn)的密鑰對(duì)組成。其次,可以使用nsarray、vector、 Data和sequence實(shí)現(xiàn)此數(shù)據(jù)結(jié)構(gòu),因?yàn)镴SON數(shù)據(jù)屬性可以被轉(zhuǎn)換成不同語言的數(shù)據(jù)類型,所以JSON數(shù)據(jù)可以被轉(zhuǎn)換成相應(yīng)語言的數(shù)據(jù)格式。
微課以簡短、完整的課堂活動(dòng)為主,圍繞課堂視頻和相關(guān)資源的有機(jī)結(jié)構(gòu)展開演講、習(xí)題練習(xí)、難題、實(shí)驗(yàn)作業(yè)等。根據(jù)這一概念,可以得出結(jié)論:“微型課堂”是一種短小而完整的教育活動(dòng)。內(nèi)容既有視頻,也有練習(xí)等。
主體以這些屬性為基礎(chǔ)。第一,微型視頻只需幾分鐘,視頻文件很小,可以通過網(wǎng)絡(luò)在移動(dòng)設(shè)備上傳輸播放。該 APP不僅能播放微課程視頻,還能離線上傳和下載相關(guān)微課程學(xué)習(xí)資源。除針對(duì)微課特點(diǎn)設(shè)計(jì)相關(guān)功能外,APP還結(jié)合了學(xué)生的學(xué)習(xí)特點(diǎn),從簡單與有趣入手。接口及功能設(shè)計(jì)非常簡單。這款應(yīng)用主要涉及賬戶管理、視頻學(xué)習(xí)、在線咨詢和課后練習(xí)。登記和登錄也是基于方便和實(shí)用的原則。用戶只需用手機(jī)號(hào)注冊(cè)和登錄即可,也可以通過iPhone的指紋識(shí)別技術(shù)在APP上注冊(cè)指紋。在網(wǎng)上推薦使用QQ登錄,上課結(jié)束后的練習(xí),使用游戲答題法。
通過上述分析,本項(xiàng)目主要實(shí)現(xiàn)了以下功能。(1)完成用戶注冊(cè)和帳戶管理。(2)用學(xué)生身份證注冊(cè)功能將學(xué)生手機(jī)號(hào)碼綁定為萬能鑰匙。(3)用學(xué)生卡或者指紋密碼登錄。(4)聯(lián)機(jī)下載視頻學(xué)習(xí)功能,也可在本地播放。(5)課余訓(xùn)練功能是一種考試游戲,課后訓(xùn)練成績可為教師評(píng)價(jià)學(xué)生總體表現(xiàn)提供參考。(6)網(wǎng)上咨詢可通過第三方騰訊QQ接口實(shí)現(xiàn)在線溝通。
通過對(duì)項(xiàng)目需求的分析,我們精心設(shè)計(jì)了一個(gè)基于 IOS平臺(tái)的小型課程視頻學(xué)習(xí)系統(tǒng)。圖1展示了系統(tǒng)架構(gòu)。
圖1 系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)主要包括登錄、注冊(cè)、網(wǎng)站、視頻分類、視頻練習(xí)、個(gè)人中心等模塊。登陸登記模塊為師生設(shè)置了兩個(gè)登陸界面。包括用戶登陸、密碼修改、密碼查詢。首頁模塊包括啟動(dòng)應(yīng)用程序,載入和顯示視頻列表。其中包括視頻的分類、播放、下載、收集、分享、評(píng)論等功能。采用左側(cè)導(dǎo)航設(shè)計(jì),頁面分類清晰,使用方便,能夠很容易地找到并查看各種任務(wù)。錄像練習(xí)模塊包括觀看錄像和練習(xí)。使用者可通過練習(xí),學(xué)習(xí)如何掌握知識(shí),熟悉課程進(jìn)程和學(xué)習(xí)計(jì)劃。個(gè)人中心模塊包含了個(gè)人信息、收藏、歷史記錄、安全升級(jí)、系統(tǒng)設(shè)置和反饋等。主要用來記錄觀看視頻、運(yùn)動(dòng)、賬戶信息以及最后使用時(shí)間。這一部分的主要內(nèi)容是用清晰而簡潔的列表樣式和列表設(shè)計(jì)顯示模塊,使用戶能夠一目了然。
作為應(yīng)用程序的核心,MVC框架(Model-View-Controller)用于整個(gè)應(yīng)用程序客戶端,它將業(yè)務(wù)邏輯、數(shù)據(jù)和接口分離開來。要改進(jìn)界面和用戶交互,無需重新檢查業(yè)務(wù)邏輯和數(shù)據(jù)模型,這些都由應(yīng)用程序的輸入、處理和輸出表示。這個(gè)方法用來處理應(yīng)用程序需要的數(shù)據(jù),該視圖代表一個(gè)應(yīng)用程序的單個(gè)數(shù)據(jù)格式,也就是應(yīng)用程序的數(shù)據(jù)顯示。通過uilabel、uitext、uibutton、uicollectionview和其他IOS提供的控件,可以為需要的應(yīng)用程序數(shù)據(jù)實(shí)現(xiàn)頁面布局。通??紤]美觀,功能和效率等因素。代表了用戶交互和應(yīng)用程序邏輯的通用控制。
通常使用的控制器有uivi-EW控制器、非發(fā)送控制器、輸出控制器和uiviewcontroller,這些都是用來控制功能模塊或與用戶交互的。這個(gè)應(yīng)用程序使用了Uinavgate控制器和輸出控制器,包括四個(gè)主要模塊:首頁、分類、練習(xí)、登錄、注冊(cè)模塊。uitarbarcontroller和nondepartmentcontroller負(fù)責(zé)控制和管理這兩個(gè)部分,對(duì)各個(gè)功能模塊進(jìn)行控制和跳轉(zhuǎn),見圖2。
圖2 整體架構(gòu)
這個(gè)應(yīng)用程序的主頁主要用來查看用戶可以瀏覽的課程,包括我的課程、最新的課程、推薦的課程等,這些內(nèi)容會(huì)隨著背景數(shù)據(jù)的改變而改變,但是首頁會(huì)被修正。IOS提供了重用機(jī)制,以避免應(yīng)用程序重復(fù)地為不同數(shù)據(jù)創(chuàng)建可見的對(duì)象。分析格式屬性,并通過以上分析,充分利用uicollectionview的復(fù)用功能來顯示所使用的視頻資源。分類器是用來分類和顯示系統(tǒng)中的所有視頻資源的。在IOS環(huán)境下,通過可配置的視圖可以實(shí)現(xiàn)該模塊,并且表視圖是一個(gè)典型的多路控制。這個(gè)視頻列表是由一個(gè)獨(dú)立的單元組成,通過這個(gè)界面分配的數(shù)據(jù)可以在同一時(shí)間顯示不同的視頻信息,包括最近的數(shù)據(jù)加載或者重新加載數(shù)據(jù)。左欄中使用了自定義視圖,可以通過選擇不同的標(biāo)簽來識(shí)別不同類型的自然視頻資源。
錄像回放是最重要的應(yīng)用功能。這一頁用 avfoundation框架中的avplayer類定義了一個(gè)玩家。評(píng)論區(qū)也同時(shí)設(shè)在該界面上,使用者可以相互評(píng)論教學(xué),詢問問題。
將我的緩存添加到下載中,方便以后查看,還可以添加到我的收藏中。
在IOS應(yīng)用開發(fā)中,數(shù)據(jù)請(qǐng)求是非常重要的。無數(shù)據(jù)的應(yīng)用程序只有一個(gè)shell。MySQL數(shù)據(jù)庫存儲(chǔ)應(yīng)用程序數(shù)據(jù)。要訪問數(shù)據(jù),使用PHP技術(shù)你可以查詢數(shù)據(jù)庫,把它轉(zhuǎn)換成JSON數(shù)據(jù)格式。JSON數(shù)據(jù)格式提供了所有數(shù)據(jù)接口,可以通過網(wǎng)絡(luò)進(jìn)行下載或查詢。需要時(shí),數(shù)據(jù)庫中使用的圖像、問題、答案和其他信息將被轉(zhuǎn)換成JSON文件格式。此格式的數(shù)據(jù)采用鍵對(duì)表示[1]。通過網(wǎng)絡(luò),應(yīng)用程序的接口數(shù)據(jù)可以接收J(rèn)SON數(shù)據(jù)內(nèi)容用于實(shí)現(xiàn)接口表示。單獨(dú)的內(nèi)容和獨(dú)立的界面布局用于閱讀某些界面內(nèi)容,以確保目錄和服務(wù)器頁面數(shù)據(jù)與客戶站點(diǎn)數(shù)據(jù)的一致性,同時(shí)接受相對(duì)獨(dú)立的數(shù)據(jù),這對(duì)于數(shù)據(jù)和接口的傳輸具有實(shí)際意義。
服務(wù)器中存儲(chǔ)的數(shù)據(jù),客戶機(jī)必須向服務(wù)器發(fā)送 HTTP請(qǐng)求以供使用。對(duì)應(yīng)用程序而言,數(shù)據(jù)采集的類型和次序會(huì)影響數(shù)據(jù)采集的速度,而整個(gè)應(yīng)用程序的數(shù)據(jù)包括文本數(shù)據(jù)、圖像數(shù)據(jù)和視頻數(shù)據(jù)。采用異步郵政數(shù)據(jù)請(qǐng)求模式以滿足需求[2]。多任務(wù)處理是在異步需求過程中伴隨的,例如數(shù)據(jù)需求和采集數(shù)據(jù)的顯示。這個(gè)問題必須用線程來解決。每一個(gè)線程每次只能處理一個(gè)任務(wù)。當(dāng)多任務(wù)同時(shí)執(zhí)行時(shí),必須使用多線程。要求提供資料是一種耗費(fèi)時(shí)間的活動(dòng)。包括伺服器的反應(yīng)速度、網(wǎng)路延遲及其他問題,在資料要求完成前,必須在使用者介面顯示。這是一種非常糟糕的體驗(yàn),如果用戶在此期間沒有得到任何回應(yīng)。當(dāng)用戶交互操作放在主線程時(shí),數(shù)據(jù)請(qǐng)求操作放在線程上,以確保應(yīng)用程序及時(shí)響應(yīng)用戶的操作[3]。將多線程技術(shù)GCD用于GCD的多任務(wù)處理是Apple針對(duì)多核計(jì)算的一種解決方案,它基于C語言自動(dòng)增加GCD處理器的數(shù)量。該工具負(fù)責(zé)創(chuàng)建線程和任務(wù)調(diào)度。System Administrations.GCD提供一個(gè)隊(duì)列,用于在成功的數(shù)據(jù)請(qǐng)求之后,在應(yīng)用程序中管理多個(gè)任務(wù),分析服務(wù)器從JSON返回的數(shù)據(jù),并更新UI界面以顯示結(jié)果。
在實(shí)現(xiàn)了應(yīng)用程序之后,必須通過模擬器或者實(shí)機(jī) can測試系統(tǒng)來測試。Xcode提供了iPhone模擬器的不同版本。要確保應(yīng)用程序與每種iPhone的版本都是與之兼容的,根據(jù)需要選用屏幕尺寸。另外,通過實(shí)機(jī)測試,可以更好地反映應(yīng)用程序在實(shí)機(jī)上的運(yùn)行性能。這個(gè)程序已經(jīng)在iphone6和iphone6 plus上測試過了。為了注冊(cè)App ID并在測試前申請(qǐng)開發(fā)人員證書,真正的測試系統(tǒng)需要開發(fā)人員證書。體系測試主要是功能的測試與性能的測試[4]。
在微課堂視頻學(xué)習(xí)應(yīng)用功能設(shè)計(jì)的基礎(chǔ)上,選擇了以下幾個(gè)主要功能:用戶注冊(cè)和登錄功能,根據(jù)手機(jī)驗(yàn)證碼進(jìn)行用戶注冊(cè);用戶可以使用他們的手機(jī)號(hào)碼和密碼在成功注冊(cè)之后進(jìn)行注冊(cè)。成功登入移動(dòng)電話號(hào)碼后,系統(tǒng)還可以覆蓋登入碼的使用,初始設(shè)計(jì)必須在測試服務(wù)器上進(jìn)行,通過應(yīng)用程序可以讀取多種微講座視頻及相關(guān)練習(xí)視頻,App的視頻播放和練習(xí)功能也能正常使用。可播放、可停止、可快進(jìn),通過練習(xí)可實(shí)現(xiàn)選課及判錯(cuò)[5]。
當(dāng)確定應(yīng)用程序已經(jīng)正確地運(yùn)行并且實(shí)現(xiàn)了設(shè)計(jì)功能后,最后的步驟是測試它的性能。通過運(yùn)行Analyze Performance Test Tool,沒有出現(xiàn)內(nèi)存泄漏、空指針、對(duì)象引用、值映射等錯(cuò)誤。Instruments Publishing有多個(gè)動(dòng)態(tài)分析和跟蹤內(nèi)存的跟蹤模塊,存儲(chǔ)器可動(dòng)態(tài)地分析和跟蹤。對(duì)CPU和文件系統(tǒng)應(yīng)用程序的代碼進(jìn)行了優(yōu)化和改進(jìn),并對(duì)應(yīng)用程序的性能進(jìn)行了測試,包括負(fù)載和壓力測試。其目標(biāo)是檢查是否能夠?qū)崿F(xiàn)用戶推薦的性能指標(biāo),識(shí)別系統(tǒng)性能瓶頸,進(jìn)一步優(yōu)化系統(tǒng)。
微課程的視頻學(xué)習(xí)應(yīng)用具有很高的適用性和移植性。基于IOS的微課程平臺(tái)設(shè)計(jì),為學(xué)習(xí)者提供了一個(gè)移動(dòng)的學(xué)習(xí)平臺(tái),滿足了個(gè)體化、交互式、可調(diào)節(jié)的學(xué)習(xí)需求。