李艷平 廖子炎
摘要:該軟件基于iOS平臺(tái)開發(fā),使用storyboard設(shè)計(jì)軟件的視圖,使用SQLite存儲(chǔ)數(shù)據(jù)。主要為在校大學(xué)生提供個(gè)人日程、課程表、備忘錄以及學(xué)校周邊信息檢索功能。通過實(shí)時(shí)全景地圖,可使學(xué)生快速定位學(xué)校周邊的餐飲、娛樂和交通等信息。
關(guān)鍵詞:iOS平臺(tái);storyboard;SQLite;信息檢索;地圖
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)03-0079-03
Abstract: The software Based on the iOS platform is developed to provide the retrieving of personal schedule, curriculum, memorandum and informations around the school for college students. The view of the software is designed by the storyboard,with the storing data by SQLite. Through maps, students can quickly retrieve the information of the food, entertainment and transportation around the university,which are needed by them.
Key words: iOS operating system; storyboard; SQLite; information retrieval; map
1 背景
隨著互聯(lián)網(wǎng)的發(fā)展,到2017 年6 月,全球互聯(lián)網(wǎng)用戶滲透率由2016 年底的47.1%快速升至48%,用戶數(shù)增至35.83億,占全球總?cè)丝诘?0.6%。其中,絕大多數(shù)網(wǎng)民是通過手機(jī)上網(wǎng)的。預(yù)計(jì)在2017年底全球移動(dòng)用戶人數(shù)將達(dá)到30.7 億。截止2017 年三季度,中國(guó)移動(dòng)互聯(lián)網(wǎng)用戶規(guī)模已高達(dá)12.3 億[1]。人們?cè)絹碓较矚g在手機(jī)上搜索信息、聽音樂、看視頻、購(gòu)物等。因此,基于手機(jī)的APP得到迅猛發(fā)展。目前,手機(jī)應(yīng)用的主流操作系統(tǒng)是Android和iOS。
根據(jù)IDC公司的數(shù)據(jù)顯示,iOS 目前占據(jù)全球智能機(jī)系統(tǒng)市場(chǎng)份額的30%,企業(yè)市場(chǎng)占有率達(dá)70%,是全球第二大的智能操作系統(tǒng)[2]。基于iOS的iPhone手機(jī)因其操作系統(tǒng)的創(chuàng)新性、安全性和個(gè)性化等特點(diǎn),在學(xué)生全體中也占據(jù)了極大部分的市場(chǎng)份額。
本文旨在設(shè)計(jì)一款基于iOS的校園助手APP,方面在校大學(xué)生通過手機(jī)隨時(shí)快速地進(jìn)行個(gè)人日程查詢,課表查詢,備忘錄查詢,學(xué)校信息查詢以及學(xué)校周邊的餐飲、娛樂和交通信息的查詢等。
2 開發(fā)環(huán)境
2.1 iOS平臺(tái)
iOS平臺(tái)是一個(gè)完全封閉的系統(tǒng),不開源,而且采用沙盒機(jī)制來保護(hù)用戶數(shù)據(jù),實(shí)現(xiàn)不同程序之間的隔離,因此安全性較好。此外,iOS系統(tǒng)的軟件與硬件的整合度相當(dāng)高,使其分化大大降低,這樣也增加了整個(gè)系統(tǒng)的穩(wěn)定性。因此本軟件選用iOS作為開發(fā)平臺(tái)。
iOS 的系統(tǒng)架構(gòu)分為四個(gè)層次: 核心操作系統(tǒng)層( the Core OS layer) ,核心服務(wù)層( the Core Services layer) ,媒體層( the Media layer) ,可輕觸層( the Cocoa Touch layer) [3]。如圖1所示:
2.2 SQLite數(shù)據(jù)庫
SQLite是一款輕型的數(shù)據(jù)庫,它遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,它最大特點(diǎn)是占用資源非常低[4],故本軟件選用SQLite作為數(shù)據(jù)庫,以減少對(duì)資源的消耗,加快軟件的運(yùn)行速度。
2.3 objective-c語言
objective-c主要用于采用OpenStep標(biāo)準(zhǔn)的Mac OS X和GNUstep系統(tǒng)。在MAC OS X系統(tǒng)下,運(yùn)用蘋果提供的SDK等開發(fā)工具包[5],可以方便的用來做iOS開發(fā)。本軟件采用objective-c語言在Xcode環(huán)境下開發(fā)。
3 系統(tǒng)分析與設(shè)計(jì)
3.1 系統(tǒng)界面設(shè)計(jì)
1) 個(gè)人信息檢索界面:該界面主要為學(xué)生提供方便、快速地查詢個(gè)人日程、課程表和備忘錄等信息。
2) 學(xué)校信息檢索界面:該界面主要為學(xué)生提供學(xué)校通知、開展的活動(dòng)和講座等信息查詢。
3) 學(xué)校周邊信息檢索界面:該界面提供了360全景地圖,學(xué)生可以方便地在地圖上進(jìn)行拖拽,從而查看學(xué)校周邊的餐飲、娛樂和交通等信息。
4) 評(píng)論界面:通過該界面學(xué)生可以對(duì)學(xué)校周邊的餐飲、娛樂等設(shè)施添加評(píng)論和評(píng)分。
系統(tǒng)用例圖如圖2所示:
3.2 系統(tǒng)功能結(jié)構(gòu)
4 關(guān)鍵技術(shù)
4.1 Storyboard框架
基于iOS的移動(dòng)APP的開發(fā),以往主要采用nib和xib框架,程序的代碼量相對(duì)較多,運(yùn)行效率受到很大影響。為了解決這一問題,蘋果公司,研制出了新的解決方案,即storyboard框架。本軟件采用storyboard框架進(jìn)行軟件視圖的設(shè)計(jì)。
storyboard是一個(gè)將多個(gè)應(yīng)用整合在一起的框架,通過添加不同的viewcontroller來顯示不同的內(nèi)容。與nib框架和xib框架在邏輯處理和視圖設(shè)計(jì)方面區(qū)別如下:
1) 邏輯處理
與NIB和XIB不同,storyboard可以直接在視圖界面處理各個(gè)控制器之間的推送關(guān)系。NIB與XIB都是interface builder的圖形界面設(shè)計(jì)文檔,但在使用的過程中,這些方式都是將所有的界面分開單個(gè)編輯,利用代碼進(jìn)行關(guān)聯(lián)。在較大型或者圖形界面較多的系統(tǒng)中,這兩種實(shí)現(xiàn)方式就需要程序員耗費(fèi)更多的精力關(guān)注于segue identifier,從而給圖形界面邏輯關(guān)系上的設(shè)計(jì)和實(shí)現(xiàn)造成了很大的負(fù)擔(dān)。而storyboard作為xcode的新技術(shù),可以直接設(shè)計(jì)程序的跳轉(zhuǎn)流程,所以不會(huì)出現(xiàn)視圖界面跳轉(zhuǎn)混亂的問題。
2) 視圖設(shè)計(jì)
運(yùn)用storyboard可以便捷的管理視圖界面,能夠在短時(shí)間內(nèi)完成整體的頁面跳轉(zhuǎn)的流程設(shè)計(jì),大大提高編程的工作效率。而且storyboard與nib和xib在本質(zhì)上采用的是相同的編碼方法,但與代碼的關(guān)聯(lián)性更高,是編碼過程中減少很多不必要的操作,能大大減少代碼量,提高程序的運(yùn)行效率。
4.2 控制器controller
在信息檢索系統(tǒng)的主視圖中,界面是通過不同的控制器controller來控制的,而控制器則由相應(yīng)的控制類來實(shí)現(xiàn)。本系統(tǒng)中,主要應(yīng)用 TabBarController、TableViewController 和UIViewController 三種控制器類。
1) TabBarController:通過tab橫向劃分不同的功能模塊供用戶選擇,更適用于分類顯示內(nèi)容;
2) TableViewController:一個(gè)表格視圖控制器,用于以表格的形式顯示內(nèi)容;
3) UIViewController:是storyboard中的基礎(chǔ)視圖控制器,在其中可以很方便地添加各種控件完成顯示或者輸入的功能。
4.3 Mapview控件
360全景地圖則由MapViewController類中的mapView控件實(shí)現(xiàn)。
mapview是Xcode自帶的控件,用于地圖的顯示和相關(guān)操作。在該類中,利用
[self.mapView setRegion:MKCoordinateRegionMakeWithDistance(coordinate, 100, 900) animated:YES];確定地圖顯示的范圍。再利用
CLLocationCoordinate2D coordinate;
coordinate.latitude = 39.990000;
coordinate.longitude = 116.381500;
確定地圖中心點(diǎn)位置。
其中coordinate.latitude和coordinate.longitude用于確定地圖中心點(diǎn)的經(jīng)度和緯度。
5 軟件實(shí)現(xiàn)效果
5.1 登錄頁面
5.2 個(gè)人日程頁面
5.3 備忘錄頁面
5.4 課程表頁面
5.5 學(xué)校及學(xué)校周邊信息顯示頁面
5.6 評(píng)論頁面
6 結(jié)束語
基于iOS平臺(tái)開發(fā)的校園助手APP,使用Xcode最新的storyboard框架和輕量級(jí)的數(shù)據(jù)庫SQLite進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),經(jīng)測(cè)試軟件功能運(yùn)行正常,用戶體驗(yàn)效果較好。基本上滿足了在校大學(xué)生對(duì)于學(xué)校和學(xué)校周邊信息查詢的需求。
參考文獻(xiàn):
[1] 中國(guó)信通院.2017-2018年互聯(lián)網(wǎng)發(fā)展趨勢(shì)報(bào)告[R/OL]. http://www.199it.com/archives/663760.html.
[2] Wood Timothy. iOS Wow Factor Apps and UX Design Techniques for iPhone and iPad[J]. Journal of Womens Health,2011.
[3] 邱燦青.基于IOS的智慧生活信息服務(wù)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2017, 13(29):44-48.
[4] 戴澤淼,黃存東,袁明磊,等.基于Android平臺(tái)的智能家居終端監(jiān)控系統(tǒng)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2016,34(4):574-579.
[5] Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高級(jí)編程:iOS與OS X多線程和內(nèi)存管理[M]. 北京: 人民郵電出版社,2013:1-189.