傅佳晨
摘要:隨著蘋果產(chǎn)品的普及,越來越多的人開始使用iPhone和iPad,iOS系統(tǒng)下的移動(dòng)軟件早已走進(jìn)人類的生活。該課題來源于基于考研類手機(jī)軟件在移動(dòng)終端便捷使用的需求?!胞}巴”是基于iOS平臺和SWIFT語言開發(fā)的一個(gè)考研資訊+數(shù)據(jù)挖掘應(yīng)用,該課題主要完成軟件的整體設(shè)計(jì)以及各個(gè)功能的基本實(shí)現(xiàn)。在OSX操作系統(tǒng)平臺下,搭載Xcode開發(fā)環(huán)境,采用SWIFT語言作為主要開發(fā)語言,使用Xcode和Parse完成后臺數(shù)據(jù)庫代碼的編寫,運(yùn)用多線程技術(shù)保證程序性能,結(jié)合Sketch和墨刀為界面UI美化,從而完成的一個(gè)iOS手機(jī)客戶端。
關(guān)鍵詞:SWIFT;iOS;考研;手機(jī)軟件
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)29-0083-04
1概述
1.1課題研究背景
現(xiàn)在社會進(jìn)入了E時(shí)代,移動(dòng)網(wǎng)絡(luò)給我們的生活帶來了便捷和舒適。其中,以Apple公司為代表的iOS操作系統(tǒng)的用戶體驗(yàn)更佳,此課題所研究的軟件應(yīng)用就是基于iOS平臺設(shè)計(jì)的,能夠?qū)崿F(xiàn)考研資訊收集、考研能力評估、考研交流論壇、考研私人訂制等功能;資源占用率小,運(yùn)行效率高,操作簡潔,擴(kuò)展能力強(qiáng)。軟件界面簡潔,風(fēng)格清新,具有很好的用戶體驗(yàn)。此款手機(jī)軟件采用基于swift語言和parse云數(shù)據(jù)庫的i0S編程開發(fā)。
1.2國內(nèi)研究現(xiàn)狀
目前國內(nèi)市場在考研app方面魚龍混雜,各種考研類軟件層出不窮。
據(jù)不完全統(tǒng)計(jì),每年考研人數(shù)占高校應(yīng)屆畢業(yè)生人數(shù)的20%-30%。以下是近幾年的數(shù)據(jù):
可以說考研潮流愈發(fā)激烈。隨著考研人群的不斷壯大,大量準(zhǔn)備考研的學(xué)生對于考研信息的獲取以及資源的渴求也越來越多。在智能移動(dòng)設(shè)備占主導(dǎo)的時(shí)代,考研類APP無疑占有很大的市場需求。
通過考察手機(jī)軟件市場發(fā)現(xiàn),目前市面上已經(jīng)有不少關(guān)于考研類的APP應(yīng)用,常見的APP有考研幫、口袋題庫、粉筆考研以及類似百詞斬這種背英語的APP應(yīng)用。但是,這些APP的功能是否都能夠被學(xué)生們接受并且經(jīng)常使用?是否可以研發(fā)一種權(quán)威的考研類APP,集合目前市場上這種考研類APP的特點(diǎn)功能,還可以防范考研虛假信息等問題。
2軟件設(shè)計(jì)方案
2.1需求分析
調(diào)研結(jié)果顯示:
在使用考研APP的頻率中,25%的被調(diào)查者經(jīng)常使用考研APP,55%的被調(diào)查者偶爾使用考研APP,但還有22%的人沒使用過考研APP。軟件使用的男女比例相差還不大,但總數(shù)上女性偏多,由此可見考研APP目前還有較大的市場空間。
2.2功能設(shè)計(jì)
綜合以上結(jié)論,設(shè)計(jì)方案擬定以資訊傳播為主、能力測試為輔;以分析探討為主,以刷題工具為輔,并且引入大數(shù)據(jù)分析和學(xué)校入駐的一款新型考研APP——鹽巴。其主要功能為資訊速遞、能力雷達(dá)圖、智能題庫、考研工具箱、鹽巴論壇、個(gè)人空間。
3模型設(shè)計(jì)
3.1設(shè)計(jì)思想
1)將軟件分成幾個(gè)相對獨(dú)立的模塊。
2)分層的模塊化程序設(shè)計(jì)思想,整個(gè)軟件采用模塊化結(jié)構(gòu)設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。
3)合理的數(shù)據(jù)流設(shè)計(jì),在應(yīng)用軟件設(shè)計(jì)中,相對獨(dú)立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運(yùn)行,提高系統(tǒng)安全性。
根據(jù)系統(tǒng)需求特點(diǎn)采用了MVC的設(shè)計(jì)模式。
MVC(Model-View-Controllerl設(shè)計(jì)模式被廣泛應(yīng)用于系統(tǒng)開發(fā)中。Model指的是模型層,View指的是視圖層,Controller指的是控制層。MVC設(shè)計(jì)模式將模型層和視圖層分開,使得在軟件設(shè)計(jì)過程中分工明確,降低了各個(gè)模塊之間的耦合度。控制層的主要作用是保證視圖層與模型層之間的更新保持同步,起到了領(lǐng)導(dǎo)作用。MVC狀態(tài)轉(zhuǎn)換示意圖如圖3所示。
此軟件的設(shè)計(jì)就是使用MVC的設(shè)計(jì)思想,MVC的設(shè)計(jì)思想在iOS軟件設(shè)計(jì)中也是最實(shí)用的。
3.2軟件主要功能模塊設(shè)計(jì)圖
軟件主要功能結(jié)構(gòu)圖:如圖4所示。
3.3軟件特色
1)考研資訊大數(shù)據(jù)挖掘
按科目類別分類、按關(guān)鍵詞索引、按學(xué)校分類、按發(fā)布時(shí)間排列、按熱度排序五個(gè)子功能鍵??筛鶕?jù)用戶選定的專業(yè)和學(xué)校進(jìn)行二次篩選。
2)能力測試評估
通過對用戶每一次的測試結(jié)果進(jìn)行分析和記錄,并且和歷史記錄相對比,進(jìn)行一個(gè)科學(xué)計(jì)算,讓每個(gè)用戶的自身變化以曲線圖方式呈現(xiàn)出來,能夠讓用戶更直觀地了解到自身的優(yōu)勢科目和劣勢科目,讓用戶更有針對性的備考。測試的數(shù)據(jù)還會錄入綜合數(shù)據(jù)庫進(jìn)行對比,呈現(xiàn)出所有使用鹽巴APP進(jìn)行測試的用戶進(jìn)行該科目測試的分值排名。
3)智能題庫
通過對用戶的個(gè)人數(shù)據(jù)收集,使用者不斷在題庫中答題,產(chǎn)生的數(shù)據(jù)被后臺進(jìn)行整理和統(tǒng)計(jì),將易錯(cuò)題進(jìn)行對比分析,有針對性的刷新題庫內(nèi)容,提高“鹽巴”的個(gè)性化使用。
4)軟件可擴(kuò)展性
在考研工具板塊可以針對不同的使用者進(jìn)行小功能的添加和修改,讓每個(gè)用戶的“鹽巴”都更符合自己下私人定制。
5)鹽巴論壇
提供一個(gè)專門討論考研相關(guān)話題的平臺。
3.4開發(fā)工具和技術(shù)簡介
3.4.1iOS的系統(tǒng)架構(gòu)
iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(Core OSlayer)、核心服務(wù)層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touchlayer)。如圖5是iOS系統(tǒng)結(jié)構(gòu)圖。
3.4.2Swift
鹽巴APP的框架全部使用Apple公司推出的新型編程語言Swift進(jìn)行編寫。
Swift,蘋果于2014年WWDC(蘋果開發(fā)者大會)發(fā)布的新開發(fā)語言,可與Objective-C共同運(yùn)行于Mac OS和iOS平臺,用于搭建基于蘋果平臺的應(yīng)用程序。
Swift是供iOS和OS x應(yīng)用編程的新編程語言,基于C和Objective-C,而卻沒有C的一些兼容約束。Swift采用了安全的編程模式和添加現(xiàn)代的功能來使得編程更加簡單、靈活和有趣。界面則基于廣受人民群眾愛戴的Cocoa和CocoaTouch框架,展示了軟件開發(fā)的新方向。
3.4.3 Xcode開發(fā)工具
Xcode是蘋果應(yīng)用程序開發(fā)的必備開發(fā)環(huán)境,自從4.0開始,蘋果系統(tǒng)開發(fā)人員就利用Xcode開發(fā)基于iOS的iPad、iPhone、iPad touch設(shè)備應(yīng)用程序。Xcode是運(yùn)行在操作系統(tǒng)Mac OS X上的集成開發(fā)工具(IDE),由蘋果公司開發(fā)。Xcode是開發(fā)OS X和iOS應(yīng)用程序的最快捷的方式。Xcode具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、測試、調(diào)試都在一個(gè)簡單的窗口內(nèi)完成。
3.4.4軟件框架基礎(chǔ)界面
在鹽巴APP的軟件基礎(chǔ)界面上,我們采用TabBar的經(jīng)典模式。TabBar是iOS上最經(jīng)典的基礎(chǔ)界面,導(dǎo)航結(jié)構(gòu)都進(jìn)行了扁平化(Flat)處理,用戶可以在主界面底部通過不同的功能Tab來高效的選擇他們需要的功能板塊。微信、QQ、淘寶以及iOS自帶的音樂APP都采用了這種方式,多個(gè)Tab在底部對功能進(jìn)行了分割,使用不同的icon表示不同的板塊功能,為了降低使用難度,鹽巴在每個(gè)icon下面用文字標(biāo)注含義,當(dāng)然這種標(biāo)注是可以用代碼隱藏的。如圖7。
4軟件模塊設(shè)計(jì)
4.1注冊登錄
為了簡化注冊步驟,鹽巴app設(shè)計(jì)的注冊僅需兩步,第一步輸入手機(jī)號,獲取驗(yàn)證碼;第二步填寫驗(yàn)證碼和設(shè)置密碼。
4.2資訊板塊
資訊板塊為收集考研相關(guān)方面的資訊。旗下設(shè)立按科目類別分類、按關(guān)鍵詞索引、按學(xué)校分類、按發(fā)布時(shí)間排列、按熱度排序五個(gè)子功能鍵。
備考者往往要登陸各種網(wǎng)站查找一些信息,比如各種考研網(wǎng)站,在所報(bào)考院校bbs的考研版面及相關(guān)院系版面,在精華區(qū)尋找一些與該學(xué)校該專業(yè)的考試有關(guān)的情況,發(fā)文詢問有關(guān)試題情況,打電話,托該校該專業(yè)的同學(xué)朋友以及考區(qū)的往屆師兄師姐打聽,一般來說,通過以上途徑才能知道一個(gè)大概。但是,只要用戶在鹽巴的“我的空間”里設(shè)置所需報(bào)考的學(xué)校和專業(yè),以上的步驟統(tǒng)統(tǒng)交給鹽巴來操作,用戶只要刷新一下資訊板塊,想要的資訊就將呈現(xiàn)在眼前。
此版塊主要應(yīng)用到的技術(shù)為UITableView和xib,配合關(guān)鍵詞索引UISearchBar和云數(shù)據(jù)庫Bmob,后期還可以加入了授權(quán)學(xué)校的資訊接口,方便授權(quán)學(xué)校進(jìn)行資訊更新和數(shù)據(jù)處理。
4.3測試板塊
APP將通過每一次用戶的測試結(jié)果進(jìn)行采集,從而得出一份能力指數(shù)圖,再次測試將與歷史測試結(jié)果進(jìn)行比對。此能力指數(shù)圖是隨著測試次數(shù)越來越精確的雷達(dá)指數(shù)圖。該指數(shù)圖可顯示學(xué)生個(gè)人用戶對研究生考試的外語、政治、專業(yè)課和綜合課程的相關(guān)指數(shù),供用戶進(jìn)行參考。針對考研的多科目特性,模型選用雷達(dá)圖進(jìn)行數(shù)值顯示。雷達(dá)圖常用于多項(xiàng)指標(biāo)的全面分析,具有完整、清晰和直觀的優(yōu)點(diǎn)。使用雷達(dá)圖,可對用數(shù)值無法表現(xiàn)的傾向性和印象性進(jìn)行把握,為擬定戰(zhàn)術(shù)是的信息分析提供良好的協(xié)助。
用戶在手機(jī)端可通過雷達(dá)圖非常直觀地了解到自己當(dāng)前的科目長處和短板,從而進(jìn)行有針對性的復(fù)習(xí),達(dá)到事半功倍的效果。此外,針對雷達(dá)圖中數(shù)值較少的科目,資訊版塊和題庫板塊會著重推送相關(guān)考試的內(nèi)容和試題,達(dá)到更加到個(gè)性化和人性化的用戶體驗(yàn)。
采用數(shù)據(jù)一圖標(biāo)的方式進(jìn)行直觀展示,針對考研的特性,鹽巴APP選用雷達(dá)圖進(jìn)行數(shù)值顯示。雷達(dá)圖為UIWebView嵌入HTML雷達(dá)圖,因?yàn)槟壳拔疫€是沒有辦法只是用swift編出雷達(dá)圖,所以用Web嵌入的方法來代替。點(diǎn)擊測試出現(xiàn)的題庫為本地?cái)?shù)據(jù)庫,swift目前還沒有很好的解決云數(shù)據(jù)庫的連接問題。每一道題都是手動(dòng)輸入,再加入switch語句進(jìn)行判斷。
4.4擴(kuò)展板塊
此版塊是一個(gè)可擴(kuò)充板塊,目前有鹽巴論壇、考試提醒功能。此版塊可以添加類似考試倒計(jì)時(shí)提醒、究生考試報(bào)名時(shí)間提醒推送、考研工具書集錦等小功能,后期預(yù)計(jì)加入更多功能?!皵U(kuò)展板塊”的存在就是為了讓鹽巴有無限的可擴(kuò)充性,讓用戶只下載一款考研APP就可以享受到所有的考研APP優(yōu)點(diǎn)。
4.5題庫板塊
因?yàn)槿杂?0%的被調(diào)查者希望有題庫功能,所以鹽巴APP將通過與專業(yè)的培訓(xùn)公司進(jìn)行聯(lián)合方式,打通各高校數(shù)據(jù)接口。從而可以獲取全國大部分高校的研究生考試歷年真題及復(fù)習(xí)題庫,并對這些題目給出答案和相關(guān)思路解析。該功能的要點(diǎn)在于題目采集的廣泛性和解題方案的專業(yè)性,為考生節(jié)省了更多的時(shí)間,并且針對不同大學(xué)不同專業(yè)有不同的側(cè)重點(diǎn),通過學(xué)校下發(fā)的模擬試題,更能確保刷題的準(zhǔn)確和高效。
4.6我的空間
此處為個(gè)人空間板塊,每一個(gè)用戶都有一個(gè)獨(dú)立的私人空間,可以在這里修改個(gè)人信息,子版塊包括我的收藏、我的試題、我的消息、資料修改、系統(tǒng)設(shè)置。
5總結(jié)
“鹽巴”考研應(yīng)用軟件在設(shè)計(jì)上采用了蘋果的sdk-api和iOS設(shè)備進(jìn)行交互,這樣可以減少開發(fā)成本和時(shí)間。此軟件是為了統(tǒng)合目前考研應(yīng)用的優(yōu)點(diǎn),并在其基礎(chǔ)上創(chuàng)新出新概念的一款軟件?!胞}巴”嚴(yán)格按照軟件工程流暢進(jìn)行軟件的開發(fā),首先對軟件進(jìn)行了嚴(yán)格準(zhǔn)確的需求分析,確定系統(tǒng)的基本模塊和功能,并進(jìn)行了可行性研究,然后進(jìn)行了詳細(xì)的需求分析,將軟件大致分為資訊、能力測試、考研工具、個(gè)人空間等主要模塊,并確定了各個(gè)模塊需要實(shí)現(xiàn)的功能,設(shè)計(jì)出軟件結(jié)構(gòu),之后進(jìn)行了軟件的詳細(xì)設(shè)計(jì),確定了軟件使用的數(shù)據(jù)結(jié)構(gòu)、算法以及各模塊的處理流程,并設(shè)計(jì)了簡潔實(shí)用的用戶界面。
具體完成的任務(wù)如下:
1)完成了軟件生命周期各個(gè)階段的文檔。在軟件開發(fā)的過程中,編寫了需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、運(yùn)行及測試文檔。
2)按照軟件生命周期進(jìn)行軟件的開發(fā),并最終取得成功,基礎(chǔ)性能穩(wěn)定,達(dá)到了我預(yù)期的目標(biāo)。
3)界面做到了簡潔清晰、便于使用。
這次項(xiàng)目在暴露出我不足的同時(shí)也讓我的技術(shù)有了很大提高,讓我加深了對iOS開發(fā)設(shè)計(jì)基礎(chǔ)的理解,強(qiáng)化了軟件設(shè)計(jì)思想,增強(qiáng)了自己的編程的能力。同時(shí)也提升了個(gè)人的自學(xué)能力。