張 永
(青島科技大學,青島 266000)
隨著移動互聯(lián)網(wǎng)的高速發(fā)展,手機App得到了迅速普及。手機App給用戶帶來了更多體驗和便捷功能。根據(jù)中商情報網(wǎng)艾媒咨詢中國手機App市場研究報告顯示[1],教育學習類App只占總市場份額28.1%,而社交類App卻有64.1%,可見教育學習類App還是一個亟待開發(fā)的市場。
本設(shè)計的開發(fā)初衷就是抓住青島版教材配套的App無人開發(fā)的市場,計劃結(jié)合現(xiàn)在移動端技術(shù)及發(fā)展趨勢,利用iOS移動操作系統(tǒng)開發(fā)一款與青島版數(shù)學教材[2]配套的App。
在計算機安全領(lǐng)域,沙盒是一種安全機制,為運行中的程序提供的隔離環(huán)境。通常是作為一些來源不可信、具破壞力或無法判定程序意圖的程序提供實驗之用[3]。
引用計數(shù)是計算機編程語言中的一種內(nèi)存管理技術(shù),是指將資源的被引用次數(shù)保存起來,當被引用次數(shù)變?yōu)榱銜r就將其釋放的過程。使用引用計數(shù)技術(shù)可以實現(xiàn)自動資源管理的目的。同時引用計數(shù)還可以指使用引用計數(shù)技術(shù)回收未使用資源的垃圾回收算法。
引用計數(shù)的實現(xiàn)過程是:當一個對象被創(chuàng)建時,它的引用計數(shù)為1,每當有一個新的指針指向這個對象的時候,它的引用計數(shù)就會加1,而當某個指向它的指針不再指向它時,它的引用計數(shù)就減1,當對象的引用計數(shù)為0時,就說明這個對象不再被任何指針指向了,這個時候這個對象就應(yīng)該被銷毀,內(nèi)存也就得到了回收。
本app包括小學數(shù)學與口算練習兩個部分。其中App的小學數(shù)學模塊使用科大訊飛的語音合成技術(shù),提供課文朗讀功能,并根據(jù)進度控制暫?;虿シ?。此外,計劃提供目錄方便用戶選擇、跳轉(zhuǎn)章節(jié)??谒憔毩暡糠?,針對不同層級的用戶,計劃提供5以內(nèi)加減、10以內(nèi)加減以及20以內(nèi)加減法的練習。本設(shè)計計劃充分利用iOS系統(tǒng)[4]的沙盒,對用戶信息以及系統(tǒng)內(nèi)的部分資源進行保存,并利用MVC設(shè)計模式,對系統(tǒng)的各模塊的控制器-視圖-模型進行分離處理,降低代碼的冗余度,提高可擴展性和重復(fù)利用性,可以利用AFNetWorking進行網(wǎng)絡(luò)交互,及時處理用戶請求。并對一些頁面做了大規(guī)模的內(nèi)存優(yōu)化,可以最大限度的減少App崩潰的情況。
整個項目的UI用到了代碼和storyboard兩種不同的界面搭建方式;與后臺進行交互的網(wǎng)絡(luò)請求使用的是POST異步請求;嚴格遵守MVC設(shè)計模式;用到了值傳遞、引用傳遞、指針傳遞,使用了正向傳值、反向傳值,其中,反向傳值使用了代理、通知和單例等多種傳值方式。
主界面分為導(dǎo)航控制器和視圖控制器兩大部分。其中,導(dǎo)航控制器用來顯示App名稱,視圖控制器又分為兩個模塊,提供兩個模塊的入口。
小學數(shù)學中的課本模塊,是本App的主要模塊,主要是顯示課本內(nèi)容,其中使用了UIScrollView和三個UIImageView來顯示上百張圖,通過內(nèi)存優(yōu)化,使這幾百張圖占用內(nèi)存極大減少。此外,使用了科大訊飛的語音合成引擎來實現(xiàn)課本的朗讀功能,科大訊飛作為中國最大的智能語音技術(shù)提供商,在智能語音技術(shù)領(lǐng)域有著長期的研究積累,并在中文語音合成、語音識別、口語評測等多項技術(shù)上擁有國際領(lǐng)先的成果[5]。
功能方面,除語音朗讀外,也提供了朗讀的暫停與播放功能,用戶只需輕觸下方按鈕即可,也允許用戶在設(shè)置中取消自動播放語音功能。此外,用戶除通過按鈕改變頁面外,也可以通過左右滑動的收拾實現(xiàn)。如果用戶開啟了設(shè)置中的保存進度功能,當用戶點擊左上角按鈕時,程序跳回主界面,這時程序會保存當前進度,當用戶下次進入該模塊時,自動跳轉(zhuǎn)到上次退出前的頁面。
本設(shè)計基本完成了預(yù)定實現(xiàn)的目標,能夠滿足用戶日常對學習的補充,并能方便的進行預(yù)習,方便對家長幫助孩子學習。在后期的測試過程中,出現(xiàn)了界面不夠友好、閃退的情況,最終通過更換主界面樣式,并對學習課本模塊做了ImageView重用,使內(nèi)存占用大幅減少,很好地解決了問題。但是,這個版本仍然是本系統(tǒng)的一個初級版本,由于資金問題,沒有能夠聘請專業(yè)播音員朗讀,在以后的迭代過程中會逐一增加網(wǎng)絡(luò)數(shù)據(jù)庫統(tǒng)計功能。為了更好的方便學生學習,還會增加不同年級、不同版本的支持。