高明福,張?zhí)靾@
(富奧汽車零部件股份有限公司研發(fā)中心,吉林 長春 130013)
隨著互聯(lián)網(wǎng)技術的發(fā)展,手機客戶端逐漸成為各大公司追捧的對象。隨著智能手機的發(fā)展,APP極大地豐富了智能手機的使用體驗。APP間激烈的競爭,使得能否在正確的時間推出符合市場需求的 APP顯得尤為重要,同時后續(xù)能否及時維護也是APP生命力的體現(xiàn)。
開源之所以火熱,是因為源代碼開放、信息共享和使用自由。互聯(lián)網(wǎng)把全球人類的智慧匯聚在一起,迸發(fā)出不一樣的火花。各種優(yōu)秀的Web框架如雨后春筍般涌現(xiàn),極大地縮短了WebApp的開發(fā)周期。Dojo亦為其中之一。Dojo提供了齊全的控件,如果需要,還可以結合CSS制定出個人所需的控件,甚至可以直接修改Dojo的源代碼。本文設計的APP就是以Dojo為框架進行開發(fā),完成相關功能設計。
隨著蘋果的iOS和谷歌的Android兩大智能移動操作系統(tǒng)的流行推廣,APP市場進入了一個高速發(fā)展的階段,APP開發(fā)競爭殘酷,各種類型APP層出不窮。校園APP的開發(fā)也越來越火熱,APP的產(chǎn)業(yè)未來是相當樂觀的。
大學里存在豐富的課外活動,但是目前,通知渠道較為狹窄,電聯(lián)和QQ群里發(fā)通知的方式會存在通知不到位的情況,使得部分同學錯過某些精彩活動;當每次測試完成后,學生需要一臺能登入校園網(wǎng)的電腦,才能進行成績查詢操作;每個學院發(fā)布通知時,學生在官網(wǎng)很難找到相應界面,還有部分同學很少關注校園官網(wǎng),不了解本學院發(fā)生的事宜,這就造成了消息的不流通。本文設計的校園APP,將官網(wǎng)部分功能在手機端實現(xiàn),這樣不但可以為官網(wǎng)分擔流量,也可以為師生提供便利,促進信息交互。
模型—視圖—控制器(Model View Controller,MVC)是軟件工程的一種軟件架構模式,其最早由Trygve Reekskaug提出,是施樂帕多羅奧多研究中心在1980年代為smalltalk發(fā)明的一種軟件設計模式。它是一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,當改進和個性化定制界面及用戶交互時,不需要重新編寫業(yè)務邏輯。在一個邏輯的圖形化用戶界面的結構中,MVC用于映射傳統(tǒng)的輸入、處理和輸出功能,其目的是為了實現(xiàn)一種動態(tài)的程序設計,簡化后續(xù)對程序的修改和擴展,并使程序結構更加直觀。
MVC是一個框架模式,它強制性地使應用程序的輸入、處理和輸出分開。首先,它有低耦合性優(yōu)點,因為它將視圖層面和業(yè)務層面相互分離,這樣就可以實現(xiàn)改變視圖層代碼的同時而不需要重新編譯運行原來處理數(shù)據(jù)的模型代碼和聯(lián)系視圖和模型的控制器。其次,MVC還具有高重用性和可適用性的優(yōu)點,隨著技術的不斷進步,人們的需求時刻發(fā)生著變化,但是最終處理數(shù)據(jù)的方式卻可能不變,因此,不需要重新生成所有代碼,只需要改變界面即可,因此使得使用MVC設計模式編寫的代碼處理起來更加游刃有余。再次,MVC有較低開發(fā)周期的優(yōu)點,MVC使開發(fā)和維護用戶接口的技術含量更低,大大縮短開發(fā)時間。
使用MVC應用程序被分成3個核心部件:模型、視圖、控制器。它們各自處理自己的任務。MVC更多的是一種思想,小到代碼組織結構,大到前端后端,它們均是運用了MVC的設計思想,使彼此相互獨立,每一個模塊的單獨發(fā)展或開發(fā),均不會影響到其他模塊的正常使用。本文設計的校園APP,也是運用的MVC這種思想。
(1)Dojo:本APP采用Dojo開發(fā)框架,所有底層模塊均已封裝,因而只需在代碼中加載Dojo解釋器,調(diào)用Dojo提供的代碼接口進行開發(fā)。
(2)文本編輯器:本APP中采用的是UltraEdit。
(3)瀏覽器:本APP中采用的是Google Chrome。
(4)處理Android項目的工具:本APP利用了集成了Android插件的Eclipse來進行最終APK文件的打包和發(fā)布。
(5)移動終端:Andoid手機一臺,系統(tǒng)版本為5.0以上,根據(jù)cordova官網(wǎng)查詢,API接口支持系統(tǒng)版本為5.0以上。
經(jīng)濟可行性:現(xiàn)今智能手機廣泛應用,市場價格低廉,符合大眾消費水平,因此本APP的運行設備平臺的范圍是很廣泛的。
需求可行性:由于本APP是針對校園而設計的,最終用戶僅限于校園學生,因此人員基數(shù)約為學校在校生數(shù)。
技術可行性:幾乎每款智能手機均具備瀏覽器,技術上不存在障礙。
在編寫軟件的過程中,有3個技術要點:(1)實現(xiàn)業(yè)務邏輯的分離,將UI顯示與數(shù)據(jù)操作分割開來。(2)Dojo中的控件缺少下拉刷新功能,需要單獨實現(xiàn)。(3)APP部分頁面需要根據(jù)具體條目顯示相關控件,所以,有些控件需要針對APP的需求在Dojo的開發(fā)框架下進行相應定制。
3.4.1 業(yè)務邏輯分離
業(yè)務邏輯分離,就是將程序中的數(shù)據(jù)處理和UI顯示進行分離,下層的數(shù)據(jù)處理對于上層的UI顯示而言是透明的,數(shù)據(jù)處理和UI顯示之間通過接口進行交互。本APP利用html頁面負責UI顯示,而頁面布局等內(nèi)容則結合CSS層疊樣式表,每個UI界面的數(shù)據(jù)處理單獨寫一個JavaScript腳本。而html頁面和JavaScript腳本則通過Dojo的解析器聯(lián)系在一起。本APP工作的前提,就是在主頁面加載Dojo的解析器,即所有的UI顯示、頁面跳轉、數(shù)據(jù)查詢和數(shù)據(jù)傳遞的前提,是載入Dojo的解析器。
3.4.2 下拉刷新功能實現(xiàn)
每個頁面在接受用戶點擊時,會傳入一個手指的觸點坐標(x,y),當手指點住不放并進行下拉等操作時,瀏覽器還會傳入一個坐標的位移量。本APP根據(jù)這個坐標值來判斷點擊控件和點擊事件。對于下拉提示,本APP將一個Div塊提前布置在html頁面中。根據(jù)下拉狀態(tài)在JavaScript代碼中進行相應的控制,即當滿足條件時,切換狀態(tài),當事件結束后,更新狀態(tài)。本APP將下拉提示控件默認設為隱藏狀態(tài),同時設置一個事件監(jiān)聽器,監(jiān)聽屏幕坐標狀態(tài),記錄初始坐標位置值,當移動狀態(tài)超過某個固定數(shù)值時,執(zhí)行下拉提示控件顯示狀態(tài)切換函數(shù),將下拉控件狀態(tài)變成顯示狀態(tài),以此來實現(xiàn)下拉提示的功能。
3.4.3 控件定制
Dojo雖然存在相關功能控件,但是對于APP界面的顯示并不友好,因為Dojo為了提高適應性,控件庫中現(xiàn)有的控件都是中規(guī)中矩的,也不會按照每個人的需求來進行相應實現(xiàn),因此需要定制個人需要的控件。Dojo中為實現(xiàn)個人所需控件提供了相關框架,如“declare”“l(fā)ang”“_ItemBase”和“_TemplatedMixin”,是Dojo提供的控件腳本,載入后,根據(jù)Dojo的規(guī)則,可以實現(xiàn)定制功能。
用戶點擊圖標進入APP后,為了減弱突然打開APP時的突兀感,進入APP后首先展示的是APP的splash界面;兩秒后,進入登錄界面;登錄后,進入主界面。
主界面包含3個子界面:第一個子界面,負責通知學校重大消息,包括一些熱門的新聞,每一條內(nèi)容均可點擊查看詳細信息。第二個子界面,是本校各個學院的顯示條目,當用戶點擊相應條目后,會進入各個學院的消息通知界面,每個學院可以根據(jù)本學院的相關情況發(fā)布相應消息,該學院的學生則可以通過這個來查詢所在學院發(fā)生的相關事宜。第三個子界面,是用戶個人中心,可以查詢本人相關的信息,例如正在學習的課程、關注的課程等,還有老師下發(fā)的上課通知等信息。
根據(jù)設計要求,系統(tǒng)分為以下幾個主要模塊:splash模塊、登錄模塊和主界面。主界面包含3個子模塊:學校消息通知模塊、學院列表模塊和個人中心模塊。
(1)splash模塊。用于啟動APP后所進行的視覺緩沖,避免APP顯示過于突兀。在實現(xiàn)上:定義一個頁面,該頁面打開后開始計時,在某個固定時間后,跳轉到登錄頁面。
(2)登錄模塊。用戶在登錄界面可以填寫其賬號和密碼,作為進入主界面的憑證。
(3)主界面。①學校通知模塊:在該模塊中,用戶可以瀏覽學校發(fā)生的一些熱門事件以及重要消息通知,每一條消息用戶均可以點擊查看詳細內(nèi)容。本模塊還具備歷史瀏覽查詢功能,用戶可以看到自己瀏覽過的消息。同時歷史瀏覽查詢界面右上角還可以查看消息通知,可以看到老師發(fā)布的一些通知,起到快速溝通的作用,方便消息的流通。②學院列表模塊:該模塊是本校各個學院的條目列表,每個條目下面都有各個學院對應的消息通知,學校通知模塊定位的是學校級的大事件,而本模塊則由各個學院發(fā)布一些本學院相關的通知。③個人中心模塊:個人中心包括關注的課程、在學習的課程和已經(jīng)完成的課程等相關信息。成績查詢功能可以查詢學校最近發(fā)布的成績和個人的歷史成績。信息中心包括老師和學院的一些通知,方便同學了解學院最新動態(tài)。
隨著移動互聯(lián)網(wǎng)和智能手機的普及與發(fā)展, 人們逐漸習慣使用移動應用客戶端上網(wǎng)的方式,手機APP受到廣大用戶的追捧和喜愛,手機APP的使用群體也越來越龐大。把手機APP應用在校園各項工作中,更是一種新鮮手段, 充滿著創(chuàng)新與挑戰(zhàn)。
[參考文獻]
[1]王暢.手機APP在高校游戲化教學中的應用研究[J].呂梁學院學報,2016(1):84-86.
[2]肖云鵬,劉宴兵.Android程序設計教程[M].北京:清華大學出版社,2013.
[3]張榮.Android開發(fā)與應用[M].北京:人民郵電出版社,2014.
[4]姜翠.校園APP應用探討[J].信息通信,2015(11):266-267.