![基于IOS開發(fā)的手機旅游客戶端-旅游管理論文_第1頁](http://file4.renrendoc.com/view/140ccfe4349b092bc69f3589aed5fa91/140ccfe4349b092bc69f3589aed5fa911.gif)
![基于IOS開發(fā)的手機旅游客戶端-旅游管理論文_第2頁](http://file4.renrendoc.com/view/140ccfe4349b092bc69f3589aed5fa91/140ccfe4349b092bc69f3589aed5fa912.gif)
![基于IOS開發(fā)的手機旅游客戶端-旅游管理論文_第3頁](http://file4.renrendoc.com/view/140ccfe4349b092bc69f3589aed5fa91/140ccfe4349b092bc69f3589aed5fa913.gif)
![基于IOS開發(fā)的手機旅游客戶端-旅游管理論文_第4頁](http://file4.renrendoc.com/view/140ccfe4349b092bc69f3589aed5fa91/140ccfe4349b092bc69f3589aed5fa914.gif)
![基于IOS開發(fā)的手機旅游客戶端-旅游管理論文_第5頁](http://file4.renrendoc.com/view/140ccfe4349b092bc69f3589aed5fa91/140ccfe4349b092bc69f3589aed5fa915.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
8/8基于IOS開發(fā)的手機旅游客戶端-旅游管理論文
中圖分類號:TN929文獻標識碼:A文章編號:1009-3044(2023)06-0223-04
時代在進步,科技在發(fā)展,手機的作用已經(jīng)不僅僅是打電話,發(fā)短信,其擔(dān)任的更重要的角色是人們信息的提供者,所以手機應(yīng)用行業(yè)逐漸成為熱門行業(yè),現(xiàn)如今移動應(yīng)用的開發(fā)產(chǎn)業(yè)充斥著人們的生活,現(xiàn)在主要的幾大移動平臺有如下幾個:iOS平臺、Android平臺、mobileweb(WAP/XHTML/CSS/Javascript)。其中安卓(Android)具有開放性,多任務(wù),畫面流暢,硬件設(shè)備性能優(yōu)良等優(yōu)點,占據(jù)了智能機市場的絕大部分。但是安卓產(chǎn)品的兼容性較差,有些產(chǎn)品華而不實,用戶體驗較差。就目前而言,其他平臺的市場占有率正在呈下降趨勢,而近iOS產(chǎn)品的市場占有率正在上升。
隨著蘋果產(chǎn)品的不斷更新,相應(yīng)的各類應(yīng)用的開發(fā)也越來越火爆。就目前而言,iOS在智能手機的應(yīng)用軟件中的下載量占了33%,另外,iOS平板電腦應(yīng)用的下載量占據(jù)75%,所以,iOS的相關(guān)應(yīng)用軟件有著龐大的消費群體。由于iOS的應(yīng)用夠創(chuàng)意,夠?qū)嵱茫脩羧后w龐大,iOS軟件發(fā)展形勢樂觀,致使許多開發(fā)者投身其中。隨著人們生活品質(zhì)的提高,生活節(jié)奏的加快,更加注重詩句感官的效果。基于這種現(xiàn)狀,開發(fā)一款旅游類的手機應(yīng)用,為用戶提供詳細的出行信息,旅游信息的介紹,滿足用戶足不出戶就可以右邊全世界的需求是十分符合市場規(guī)律的。整個項目使用基于Foundation框架下得Objective-C?Z言編寫的,使用基于UIKit框架下的UI設(shè)計搭建的用戶界面來與用戶交流,通過使用每個類之間的接口文件關(guān)聯(lián)多個類,使用MapKit框架和CoreLocation框架下來實現(xiàn)地圖定位功能,使用訊飛語音實現(xiàn)了語音錄入功能,使用本地數(shù)據(jù)庫SQLite存儲用戶信息以及收藏的景點信息,除此之外還使用Quartz框架,SystemConfiguration框架,CoreFoundation框架等輔助完成本項目。
本應(yīng)用程序的設(shè)計目標是開發(fā)一款具有界面友好的,注重安全性的,用戶體驗良好的,易于擴展和維護的手機APP。
1界面設(shè)計
1)推薦界面。分為火熱推薦以及趣季推薦兩個部分。該界面整體是一個表視圖,首頁默認顯示北京熱門地點推薦,用戶點擊其他城市跳轉(zhuǎn)到相應(yīng)界面。界面要做到功能齊全,簡介不冗余并且簡單易于用戶操作。
2)目的地界面。該界面是總體介紹世界各地的界面,分為國內(nèi)城市、熱門城市、港澳臺、歐洲國家、亞洲國家以及美洲和大洋洲這幾大模塊,點擊每個模塊時候跳轉(zhuǎn)到相應(yīng)的詳情介紹界面。
3)主題游界面。該界面整體是一個表視圖,展示不同的游玩的主題,點擊跳轉(zhuǎn)到詳細界面。
4)景點界面。首頁默認顯示三亞的相關(guān)景點列表,在此界面可以直接搜索想要去的景點,也可以選擇想要去的城市并展示相應(yīng)城市的景點列表。
5)我的界面。在此界面顯示該項目的一些信息,可以在此界面登錄注冊、查看收藏信息,清除緩存等。
6)登錄界面。登錄時需要填寫用戶名和密碼,與數(shù)據(jù)庫中存儲的用戶信息進行匹配,保證了用戶安全。
2系統(tǒng)模塊
整個系統(tǒng)共分為5個打的模塊:推薦模塊、目的地模塊、主題游模塊、景點模塊、我的模塊。每個模塊實現(xiàn)的功能介紹如下:
1)推薦模塊。本模塊要實現(xiàn)的功能是為用推薦幾個熱門城市的旅游地點以及戶外的旅游信息,首頁默認顯示北京熱門地點推薦,用戶點擊其他城市跳轉(zhuǎn)到相應(yīng)界面。在顯示戶外信息的界面用戶可以根據(jù)自己的意愿選擇想要查看的城市的戶外信息。
2)目的地模塊。界面中將世界分為幾大模塊,每一個模塊中包括相應(yīng)的城市,點擊相應(yīng)的城市之后機會跳轉(zhuǎn)到該城市的景點列表界面,在此界面有地圖定位功能,可以查看該景點的周邊信息。
3)主題游模塊。該模塊為用戶提供旅游的主題,每個主題中包含相應(yīng)的景點信息。
4)景點模塊。該模塊是總體介紹世界各地的景點,可以根據(jù)自己的意愿進行搜索,搜索時有語音識別功能,說出想要查詢的景點即可,方便用戶使用。
5)我的界面。在此界面有登錄注冊功能,查看收藏信息功能,清除緩存等功能。
通過對項目進行功能需求分析,可以初步確定該項目所需的基本數(shù)據(jù)。各模塊的具體數(shù)據(jù)需求如下:
1)推薦模塊。該模塊的數(shù)據(jù)持久化使用相對應(yīng)的plist文件實現(xiàn),此文件中共有8個字典,每一個字典存儲一個熱門城市的數(shù)據(jù),其中url這一個鍵對應(yīng)的值就是我們進行網(wǎng)絡(luò)請求是的鏈接,同時也是該模塊的數(shù)據(jù)來源。
2)目的地模塊。該模塊的數(shù)據(jù)持久化使用DestinationCityList.plist文件實現(xiàn),此文件中共有8個字典,每一個字典存儲一個小模塊的數(shù)據(jù),其中url這一個鍵對應(yīng)的值就是我們進行網(wǎng)絡(luò)請求時的鏈接,同時也是該模塊的數(shù)據(jù)來源,由此得到相應(yīng)模塊的城市列表。在城市列表中點擊得到的詳情頁數(shù)數(shù)據(jù)來源于一個公共鏈接,在此鏈接中有關(guān)數(shù)據(jù)的字段是我們點擊的地點的名稱,由此得到相對應(yīng)的景點信息。3)主題游模塊。
4)景點模塊。該模塊首頁默認顯示三亞的景點信息,每個城市都有自己對應(yīng)的城市ID號,解析根據(jù)此ID得到的不同鏈接從而得到相應(yīng)的數(shù)據(jù),點擊城市列表時根據(jù)一個城市列表的鏈接進行數(shù)據(jù)請求和數(shù)據(jù)解析得到城市列表的Model類,然后將其中的id屬性通過代理回調(diào)回傳給上個鏈接的城市id,從而獲取不同城市的景點信息。
5)我的模塊。使用SQLite本地數(shù)據(jù)庫存儲注冊的用戶信息,以及用戶收藏的景點和目的地信息,用戶查看時從數(shù)據(jù)庫中調(diào)取相應(yīng)數(shù)據(jù)。
應(yīng)用程序致力于為用戶提供詳細的旅游信息,方便用戶出行,圍繞這一中心任務(wù),該應(yīng)用程序用戶分為兩種:注冊用戶和游客。
已經(jīng)注冊的用戶在使用該應(yīng)用程序時可以先進行登錄操作,然后可以收藏目的地和景點信息,并對其進行修改。注冊并已經(jīng)登錄的用戶用例圖如圖1所示:
游客指的是還沒有注冊的用戶,這些用戶只能對本應(yīng)用程序中的信息進行瀏覽不可以進行收藏操作,可以進行注冊登錄操作。游客用戶用例圖如圖2所示:
3系統(tǒng)關(guān)鍵技術(shù)
3.1Objective-C語言
Objective-C,通常寫作ObjC和Obj-C,是擴充C的面向?qū)ο缶幊陶Z言。它主要使用于MacOSX和GNUstep這兩個使用OpenStep標準的系統(tǒng)。Objective-c在運行時可以允許根據(jù)字符串名字來訪問方法和類,還可以動態(tài)鏈接和添加類[1]。
3.2Foundation框架和UIKit框架
Objective-C中的Foundation框架與Java中的SDK類庫相似,是框架的基礎(chǔ),與界面無關(guān),它提供了許多基本的各種基本數(shù)據(jù)類型、集合、操作系統(tǒng)服務(wù)的對象的類,包含了大量的API。
UIKit框架提供一系列的class來建立和管理iOS應(yīng)用程序的用戶界面接口、應(yīng)用程序?qū)ο?、事件控制、繪圖模型、窗口、視圖和用于控制觸摸屏的接口等,是基礎(chǔ)的UI類庫,與Foundation框架是Cocoa框架中的兩個比較重要的框架[2]。
3.3SQLite數(shù)據(jù)庫
SQLite是一款無數(shù)據(jù)類型的輕量級的嵌入式數(shù)據(jù)庫,具備了基本數(shù)據(jù)庫特性的數(shù)據(jù)庫文件,與其他引擎響應(yīng)式數(shù)據(jù)庫不同的是SQLite是程序驅(qū)動。SQLite包含在一個相對小的C庫中,SQLite引擎不是個程序與之通信額獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用[3]。
該項目共有5個模塊:推薦模塊、目的地模塊、主題游模塊、景點模塊和我的模塊。項目總體結(jié)構(gòu)圖如下圖3所示:
3.4系統(tǒng)總體流程圖
當(dāng)用戶作為游客即未注冊用戶使用本應(yīng)用程序時,可以對APP的各個模塊進行瀏覽,當(dāng)要進行收藏操作時,就會跳到登錄或注冊界面,完成此項操作后方可進行收藏操作。具體流程圖如下圖4所示:
3.5APP的結(jié)構(gòu)設(shè)計
3.6數(shù)據(jù)請求代碼
本應(yīng)用程序的數(shù)據(jù)均來自于網(wǎng)絡(luò)數(shù)據(jù),是通過數(shù)據(jù)鏈接直接從網(wǎng)上獲取的,并非是提前在數(shù)據(jù)庫中寫好的固定的數(shù)據(jù)。網(wǎng)絡(luò)請求使用GET方式進行請求,然后使用系統(tǒng)提供的JSON方式進行數(shù)據(jù)解析,主要代碼如下:
-(void)setData{
if([_appinternetReachableOrNot]){
if(self.url==nil){
self.url=@"http:///index2.php?a=sList2&page=1&city_id=1001&type=2";
}
NSURL*urlSrting=[NSURLURLWithString:self.url];
self.allDataArray=[NSMutableArraynew];
for(NSDictionary*dictinmodelDict[@"result"]){
BJModel*bjModel=[BJModelnew];
[bjModelsetValuesForKeysWithDictionary:dict];
[self.allDataArrayaddObject:bjModel];
dispatch_async(dispatch_get_main_queue(),^{
[self.tableView.headerendRefreshing];
[self.indicatorstopAnimating];
[self.tableViewreloadData];
});
}
}];
[dataTaskresume];
}else{
[self.tableView.headerendRefreshing];
[selfalertController];
}
}
首先判?嗤?絡(luò)是否連接,只有在有網(wǎng)的狀態(tài)下才會進行數(shù)據(jù)請求,self.url就是用于數(shù)據(jù)請求的連接,進行數(shù)據(jù)請求的步驟是:創(chuàng)建URL對象――>根據(jù)URL創(chuàng)建請求對象――>獲取當(dāng)前會話(網(wǎng)絡(luò)請求的主體內(nèi)容)――>創(chuàng)建數(shù)據(jù)請求任務(wù)――>啟動任務(wù)。在數(shù)據(jù)請求任務(wù)中有一個block塊,在這里面進行數(shù)據(jù)解析操作。
需要注意的是block塊語法在執(zhí)行數(shù)據(jù)請求操作的時候是異步操作(不影響主線程的執(zhí)行),也就是說程序在執(zhí)行到block塊的時候會同時執(zhí)行block內(nèi)部和外部的代碼,如果此時在外部要使用block內(nèi)部請求的數(shù)據(jù),數(shù)據(jù)可能為空,解決這一問題的方法就是在完成數(shù)據(jù)解析操作之后使用dispatch_async(dispatch_get_main_queue(),^{})這一方法使程序回到主線程刷新數(shù)據(jù),這樣就可以正常運行了。3.7分享功能
分享使用的是友盟第三方分享,可以將本應(yīng)用程序的內(nèi)容分享到新浪微博、豆瓣、人人等交流平臺。首先使用CocoPods導(dǎo)入友盟SDK,然后添加相應(yīng)的依賴庫,在需要分享的類中導(dǎo)入頭文件#import以及#import,分享實現(xiàn)的主要代碼如下:
NSString*shareString=[NSStringstringWithFormat:@"【%@,%@!】%@錯落的時光里,紛繁的生活中,#時遺#帶你體驗簡單的美好!",self.detailsModel.title,self.detailsModel.viceTitle,self.detailsModel.shareUrl];
[[UMSocialDatadefaultData].urlResourcesetResourceType:UMSocialUrlResourceTypeImageurl:self.detailsModel.iconUrl];
[UMSocialSnsServicepresentSnsIconSheetView:selfappKey:@"5732cc6b67e58ecfef0010be"shareText:shareStringshareImage:nilshareToSnsNames:[NSArrayarrayWithObjects:UMShareToSina,UMShareToRenren,UMShareToTencent,UMShareToDouban,nil]delegate:nil];
}
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity*)response
{
if(response.responseCode==UMSResponseCodeSuccess)
{
NSLog(@"sharetosnsnameis%@",[[response.dataallKeys]objectAtIndex:0]);
}else{
NSLog(@"%d",response.responseCode);
}
提前設(shè)置好需要分享的內(nèi)容,然后UMSociaSnsService調(diào)用presentSnsIconSheetView:appKey:shareText:shareImage:shareToSnsNames:方法將需要分享的文字、圖片分享到各個平臺。
3.8語音功能
本應(yīng)用程序提供語音識別功能,需要使用CocoPods導(dǎo)入iflyMSC框架,然后在Appdelegate類中注冊初始化語音通訊,在需要使用語音識別的類中導(dǎo)入頭文件#import"iflyMSC/IFlyRecognizerViewDelegate.h"、#import"iflyMSC/IFlyRecognizerView.h"以及#import"iflyMSC/IFlySpeechConstant.h",然后需要遵循IFlyRecognizerViewDelegate協(xié)議,點擊語音按鈕之后會調(diào)用按鈕的觸發(fā)方法-(void)voiceAction:(UIButton*)button,開始語音識別,然后調(diào)用相應(yīng)的協(xié)議方法-(void)onResult:(NSArray*)resultArrayisLast:(BOOL)isLast;獲取所說的話并將其賦值給搜索文本框,主要實現(xiàn)代碼如下:
-(void)voiceAction:(UIButton*)button{
[self.iflyRecognizerViewstart];
}
-(void)onResult:(NSArray*)resultArr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年加油站信息化建設(shè)與租賃合同
- 2025年度文化中心場地租賃及文化活動舉辦合同
- 2025年度新建農(nóng)村住房四鄰權(quán)益保障協(xié)議范本
- 2025年度房屋租賃押金退還合同要素及爭議解決機制
- 2025年度房地產(chǎn)居間合同協(xié)議(創(chuàng)新服務(wù)版)
- 2025年度建筑垃圾綜合利用項目投資合同
- 2025年度高科技企業(yè)研發(fā)中心建設(shè)合同樣本
- 2025年新型環(huán)保材料研發(fā)與應(yīng)用合作協(xié)議
- 2025年度混凝土預(yù)制構(gòu)件質(zhì)量控制與檢測服務(wù)合同
- 2025年國際知識產(chǎn)權(quán)保護服務(wù)合同
- 山東省濟南市2023-2024學(xué)年高二上學(xué)期期末考試化學(xué)試題 附答案
- 2025 年福建省中考語文試題:作文試題及范文
- 短視頻運營績效考核表KPI-企業(yè)管理
- 慢性心衰的管理:2024年國家心衰指南更新
- 15J403-1-樓梯欄桿欄板(一)
- QC課題提高金剛砂地面施工一次合格率
- 呼吸科護理管理制度
- TCI 331-2024 工業(yè)污染源產(chǎn)排污核算系數(shù)制定通則
- 浙江省(面試)公務(wù)員考試試題及答案指導(dǎo)(2025年)
- 設(shè)備拆裝施工方案
- 注冊安全工程師《安全生產(chǎn)管理知識》科目知識要點
評論
0/150
提交評論