畢業(yè)論文-創(chuàng)意生活館iOS客戶端開發(fā)_第1頁
畢業(yè)論文-創(chuàng)意生活館iOS客戶端開發(fā)_第2頁
畢業(yè)論文-創(chuàng)意生活館iOS客戶端開發(fā)_第3頁
畢業(yè)論文-創(chuàng)意生活館iOS客戶端開發(fā)_第4頁
畢業(yè)論文-創(chuàng)意生活館iOS客戶端開發(fā)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 河北農(nóng)業(yè)大學(xué) 本科畢業(yè)論文(設(shè)計)題 目: 創(chuàng)意生活館iOS客戶端開發(fā) 學(xué) 院: 信息科學(xué)與技術(shù)學(xué)院 專業(yè)班級: 計算機科學(xué)與技術(shù)1002班 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 講師 二O一 四 年 六 月 六 日摘 要 風(fēng)起云涌的高科技時代,智能終端的普及不僅推動了移動互聯(lián)網(wǎng)的發(fā)展,也帶來了移動APP應(yīng)用的爆炸式增長。憑借便攜、觸屏、高清的豐富體驗,以iphone和android為代表的手機移動設(shè)備正悄然改變著企業(yè)的運行方式。傳統(tǒng)的pc端,人們只能靠瀏覽器打開網(wǎng)頁,在網(wǎng)站上購物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動端購物客戶端的出現(xiàn),可以幫助人們快速找到

2、自己想要的商品,并快捷安全地完成支付功能。論文簡單介紹了系統(tǒng)的相關(guān)知識及涉及技術(shù),詳細(xì)地介紹了“創(chuàng)意生活館手機應(yīng)用系統(tǒng)開發(fā)”課題開發(fā)的整個過程,包括需求分析、總體設(shè)計、模塊劃分及實現(xiàn)過程等方面的內(nèi)容,最后對各個功能模塊的操作及其界面進(jìn)行描述。本系統(tǒng)開發(fā)的應(yīng)用設(shè)計是基于Xcode5.0的ios項目,使用了多個第三方庫,使用了多種設(shè)計模式,像MVC開發(fā)模式,KVC、KVO設(shè)計模式。本系統(tǒng)具有操作簡便、通俗易懂、便攜、容易使用等大容量的特點,非常適合現(xiàn)代生活和移動互聯(lián)網(wǎng)的發(fā)展。關(guān)鍵詞:Xcode5.0 創(chuàng)意生活 MVCAbstractThe burgeoning high-tech era, the

3、 popularity of intelligent terminal not only promoted the development of the mobile Internet, also brought the explosion of mobile APP. With portable and rich experience of touch screen, high definition, represented by the iphone and android mobile devices are changing the operation mode of the ente

4、rprise. Traditional PC, people can only be opened by the browser page, shopping on the website, website information in large and complex, it is not easy to find the goods you want. And mobile terminal shopping client, can help people quickly find goods they want, and fast and safely complete payment

5、 functions.Paper introduces the related knowledge and technology involved in the system, detailed introduces the creative life hall mobile application system development the whole process of project development, including requirements analysis, overall design, module partition, and the content of th

6、e implementation process, etc, finally to the operation of the various functional modules and its interface is described.The system design is based on the development of application Xcode5.0 ios project, USES more than one third party libraries, using the MVC development pattern, observer pattern de

7、velopment. This system has simple operation, easy to understand, portable, easy to use, such as the characteristics of large capacity, very suitable for modern life and the development of mobile Internet.Keywords: Xcode5.0, Creative Life, MVC目 錄TOC o 1-3 h u HYPERLINK l _Toc2104 1 緒論 緒論近幾年隨著蘋果手機的熱賣,

8、智能手機終端越來越普及;結(jié)合3G網(wǎng)絡(luò)的大力發(fā)展,移動互聯(lián)的時代已經(jīng)正式到來。此次把生活創(chuàng)意館系統(tǒng)搬到iOS手機操作系統(tǒng)上,是對移動開發(fā)的一次簡單嘗試。寄希望于此次嘗試能夠熟悉iOS移動平臺的開發(fā),綜合自己所學(xué)知識,運用到這個項目中來,同時期待自己有所突破和創(chuàng)新,最后能夠積累一定的移動開發(fā)經(jīng)驗。此次我把這些知識和信息在iOS手機平臺上展示出來,在如今智能機逐漸普及的基礎(chǔ)上將會是一個新的空間。 1.1 課題開發(fā)背景風(fēng)起云涌的高科技時代,智能終端的普及不僅推動了移動互聯(lián)網(wǎng)的發(fā)展,也帶來了移 動APP應(yīng)用的爆炸式增長。憑借便攜、觸屏、高清的豐富體驗,以iphone和android為代 表的手機移動設(shè)備

9、正悄然改變著企業(yè)的運行方式。 近年來,移動購物市場已具有一定的規(guī)模而且還將繼續(xù)擴大,伴隨消費者移動設(shè)備使 用目的的轉(zhuǎn)變,不再只局限于看視頻、刷微博、看電子書、聽音樂等形式,移動購物開 始挑戰(zhàn)傳統(tǒng)購物和PC購物模式,成為各大電商力捧的新盈利點。 今年5月1日當(dāng)天,天貓無線端成交額增達(dá)到53.8%,首次超過PC端成交額。而5月2 日-5月3日,天貓無線日均支付寶成交占天貓總成交比也達(dá)到49.8%,追平PC端成交量。 這說明人們的線上生活正在從pc端逐漸轉(zhuǎn)向移動端,這是移動互聯(lián)網(wǎng)帶來的巨大機遇。 移動app的數(shù)量增長也在于移動設(shè)備的便捷,操作方便,界面簡單親切。在每一個垂直領(lǐng)域內(nèi),app能夠快速幫助

10、人們實現(xiàn)想要做的事情,資訊,社交聊天,訂票,當(dāng)然少不了購物。傳統(tǒng)的pc端,人們只能靠瀏覽器打開網(wǎng)頁,在網(wǎng)站上購物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動端購物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。1.2 系統(tǒng)開發(fā)的意義 這個系統(tǒng)可以實現(xiàn)在iphone終端上的創(chuàng)意商品的瀏覽,還可按類別搜索創(chuàng)意生活用品,用戶可根據(jù)自己的需要來瀏覽選擇商品。能夠獲得最新的最流行的創(chuàng)意商品,讓生活緊跟時代的前沿,讓生活變得更加人性化,讓讓生活變得更簡單,讓豐富多彩的生活不再是有錢人的專屬。PC端的笨重,移動端的方便快捷,隨時隨地的瀏覽商品,收藏上商品,購買商品,支

11、付商品。1.3 本系統(tǒng)預(yù)達(dá)到的目標(biāo)該系統(tǒng)旨為用戶展示一些生活上具有創(chuàng)意的小商品,通過主頁推薦,篩選,分類,搜索,以不同的方式最大程度地為用戶展示用戶需要的商品。用戶能夠獲得最新的最流行的創(chuàng)意商品,讓生活緊跟時代的前沿,讓生活變得更加人性化,讓生活變得更簡單,讓生活更加豐富多彩。最終,用戶可以在本系統(tǒng)完成商品的購買。 1.4 章節(jié)介紹第一章,介紹了課題的開發(fā)背景、課題開發(fā)的現(xiàn)實意義。 第二章,概略地介紹了開發(fā)此系統(tǒng)用到的各種技術(shù)理論基礎(chǔ),ios系統(tǒng)構(gòu)架,程序框架等。第三章,對該的系統(tǒng)結(jié)構(gòu)設(shè)計、系統(tǒng)結(jié)構(gòu)功能、運行環(huán)境等概要分析設(shè)計階段做工了大體介紹即需求分析。第四章,對系統(tǒng)總體流程設(shè)計和功能設(shè)計作

12、了簡要說明,具體介紹了系統(tǒng)各功能實現(xiàn)過程。第五章,總結(jié)。2 理論技術(shù)基礎(chǔ)2.1 理論基礎(chǔ)軟件開發(fā)中理論基礎(chǔ)包括認(rèn)知科學(xué)中關(guān)于概念模式的概念與方法;數(shù)據(jù)庫技術(shù)的理論與方法;編譯技術(shù)的有關(guān)方法;關(guān)于人機界面的理論與方法;管理科學(xué)中關(guān)于項目管理與版本管理的理論與方法;系統(tǒng)科學(xué)與系統(tǒng)工程中的有關(guān)理論與方法,當(dāng)然還有面向?qū)ο蟮拈_發(fā)方法。概念模式是認(rèn)知科學(xué)中的一個用語,指的是人信在認(rèn)識事物過程中,對于某一事物或某一系統(tǒng)形成的抽象的、一般化的框架。概念模式在認(rèn)識過程中十分重要,同時作為交流與表達(dá)工具也是十分重要的,人們在互相配合、互相協(xié)調(diào)、共同完成某項任務(wù)的時候,需要統(tǒng)一認(rèn)識、協(xié)同行動,就必須用某種公認(rèn)的方

13、式來進(jìn)行表述,概念模式正是起了這種作用。概念模式的實現(xiàn)方式包括:框圖:把程序基本步驟分為處理、判斷、輸入輸出、起始或終止等幾個功能,并能不同的記號加以表示,用箭頭表示控制或執(zhí)行的順序。 結(jié)構(gòu)圖:它的基本圖例為模塊,以模塊的調(diào)用關(guān)系為線索,用連線表示調(diào)用關(guān)系,并注明傳遞參數(shù)。基本調(diào)用方式有:順序調(diào)用、選擇調(diào)用、循環(huán)調(diào)用。 數(shù)據(jù)流程圖( DFD ):面對的是系統(tǒng)的信息流程,把信息流看作一個組織或系統(tǒng)運作的線索,簡明扼要地勾畫出全局,基本元素是外部實體,以箭頭表示信息在它們之間的流動狀況。實體關(guān)系圖:用于描述靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模式,以實體、關(guān)系、屬性三個基本概念概括數(shù)據(jù)的基本結(jié)構(gòu)。數(shù)據(jù)字典( DD

14、):描述數(shù)據(jù)內(nèi)容的概念模式,用表格的形式列出數(shù)據(jù)數(shù)據(jù)的基本屬性及相互關(guān)系。時序網(wǎng)絡(luò):描述系統(tǒng)狀態(tài)及轉(zhuǎn)換方式,常用于實時控制方面的軟件。數(shù)學(xué)與邏輯模型:描述客觀世界的狀態(tài)與規(guī)律,包括常用的決策樹與決策表。計算機模擬模型:利用計算機大量、高速處理信息的能力,在計算機內(nèi)設(shè)置一定的環(huán)境,以程序來實現(xiàn)客觀系統(tǒng)中某些規(guī)律或規(guī)則,在二者的基礎(chǔ)上計算機高速運行,以便觀察客觀系統(tǒng)的運行。 信息庫是一個包羅萬象的,隨著開發(fā)項目進(jìn)展而不斷修改與補充的信息集合。數(shù)據(jù)庫是在文件系統(tǒng)基礎(chǔ)上發(fā)展起來的一種管理技術(shù),重點在于合理地組織數(shù)據(jù),減少冗余;數(shù)據(jù)倉庫是為了使數(shù)據(jù)更接近實用,對數(shù)據(jù)進(jìn)行多次加工或提煉,得出許多派生或綜合

15、的數(shù)據(jù)。區(qū)別與特點:它在規(guī)模上不一定像數(shù)據(jù)倉庫那么大,分析提煉的要求也與數(shù)據(jù)倉庫不同,但數(shù)據(jù)結(jié)構(gòu)復(fù)雜,不斷變化,分析的要求也不同,還需要保持一致性,需要供分析人員、程序員、用戶、維護(hù)售貨員等多種人員使用。 人機界面交互原則:輸入盡量自然,輸出必須準(zhǔn)確;界面必須始終一致;界面必須使用戶隨時掌握任務(wù)的進(jìn)展善;界面必須提供幫助;寧可讓程序多做,不可讓用戶多干。重要性:對于用戶來說,界面就是系統(tǒng)本身。因為用戶只關(guān)心能否有效地使用軟件來解決問題,用戶對軟件功能的理解都在界面上表現(xiàn)出來,用戶的輸入是否自然、簡便,是否有充分的提示和幫助,對用戶的錯誤是否有友好的措施,輸出的形式是否易于理解,結(jié)果是否正確,都

16、是用戶關(guān)心的問題,也是界面的特點,界面不友好的軟件就不是成功的軟件。面向?qū)ο笫且环N對現(xiàn)實世界理解和抽象的方法,是計算機編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。早期的計算機編程是基于面向過程的方法,例如實現(xiàn)算術(shù)運算1+1+2 = 4,通過設(shè)計一個算法就可以解決當(dāng)時的問題。隨著計算機技術(shù)的不斷提高,計算機被用于解決越來越復(fù)雜的問題。一切事物皆對象,通過面向?qū)ο蟮姆绞剑瑢F(xiàn)實世界的事物抽象成對象,現(xiàn)實世界中的關(guān)系抽象成類、HYPERLINK /view/125322.htm繼承,幫助人們實現(xiàn)對現(xiàn)實世界的HYPERLINK /view/5293.htm抽象與數(shù)字建模。通過面向?qū)ο蟮姆椒ǎ谟萌死斫獾姆绞綄?/p>

17、復(fù)雜系統(tǒng)進(jìn)行分析、設(shè)計與編程。同時,面向?qū)ο竽苡行岣逪YPERLINK /view/3281.htm編程的效率,通過封裝技術(shù),消息機制可以像搭積木的一樣快速開發(fā)出一個全新的系統(tǒng)。面向?qū)ο笫侵敢环N程序設(shè)計范型,同時也是一種程序開發(fā)的方法。對象指的是HYPERLINK /view/2390.htm類的集合。它將HYPERLINK /view/2387.htm對象作為HYPERLINK /view/17674.htm程序的基本單元,將程序和HYPERLINK /view/38752.htm數(shù)據(jù)HYPERLINK /view/154910.htm封裝其中,以提高軟件的重用性、靈活性和擴展性。2.2

18、技術(shù)基礎(chǔ)此應(yīng)用用到的技術(shù)主要包括兩方面:OC語言和Xcode開發(fā)環(huán)境。OC語言是一門面向?qū)ο蟮拈_發(fā)語言,它是一門非?!皩嶋H”的語言。它使用一個用C寫成、很小的HYPERLINK /view/1032404.htm運行庫,只會令HYPERLINK /view/330120.htm應(yīng)用程序的大小增加很小,和大部分OO系統(tǒng)使用極大的VM執(zhí)行時間會取代了整個系統(tǒng)的運作相反,ObjC寫成的程序通常不會比其原始碼大很多。而其函式庫也和HYPERLINK /view/76337.htmSmalltalk系統(tǒng)要使用極大的內(nèi)存來開啟一個窗口的情況相反。Objective-C的最初版本并不支持HYPERLINK

19、/view/159846.htm垃圾回收。在當(dāng)時這是爭論的焦點之一,很多人考慮到Smalltalk回收時有漫長的“HYPERLINK /view/300354.htm死亡時間”,令整個系統(tǒng)失去功用。Objective-C為避免此問題才不擁有這個功能。雖然某些第三方版本已加入這個功能(尤是GNUstep),HYPERLINK /view/14874.htmApple在其Mac OS X 10.3中仍未引入這個功能。另一個問題是ObjC不包括命名空間機制(namespace mechanism)。取而代之的是HYPERLINK /view/170222.htm程序設(shè)計師必須在其類別名稱加上前綴,時

20、常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有Mac OS X類別和函式均有“NS”作為前綴,例如NSObject或NSButton來清楚分辨它們屬于Mac OS X核心;使用“NS”是由于這些類別的名稱在NeXTSTEP開發(fā)時定下。雖然Objective-C是C的母集,但它也不視C的基本型別為第一級的對象。和C+不同,Objective-C不支援運算子多載(它不支持ad-hoc多型)。亦與C+不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設(shè)HYPERLINK /view/459327.htm多重繼承)。Categories和protocols不但可以提供很多

21、多重繼承的好處,而且沒有很多缺點,例如額外執(zhí)行時間過重和二進(jìn)制不兼容。Xcode是蘋果公司在Mac OS X下的集成開發(fā)環(huán)境(IDE)引擎。它負(fù)責(zé)處理從最開始到工程的最終部署這一過程中的大多數(shù)細(xì)節(jié)。您可以通過這個工具來完成如下工作:(1)創(chuàng)建和管理工程,包括指定目標(biāo)的需求、依賴性、和連編的風(fēng)格。(2)在具有語法染色、自動縮進(jìn)等功能的編輯器上編寫源代碼。(3)在工程的不同組件中進(jìn)行漫游和檢索,包括頭文件和文檔。(4)連編工程在圖形化的源代碼級調(diào)試器上調(diào)試工程。Xcode可以連編由C、C+、Objective-C、Objective-C+、和Java編寫的源代碼組成的工程,可以生成Mac OS X

22、支持的所有類型的執(zhí)行代碼,包括命令行工具、框架、插件、內(nèi)核擴展、程序包、和應(yīng)用程序。Xcode允許您對連編和調(diào)試工具、可執(zhí)行文件的打包方式(包括信息屬性列表和本地化程序包)、連編過程(包括拷貝文件、腳本文件處理、和其它連編階段)、以及用戶界面(包括分立和多視圖的代碼編輯器)進(jìn)行幾乎無限的定制;還支持幾個源代碼管理系統(tǒng)(其中有CVS和Perforce),使您可以將文件追加到代碼庫、提交修改、獲取更新版本、以及進(jìn)行版本的比較。Xcode和另外一個主要的開發(fā)工具Interface Builder良好地集成在一起。在Interface Builder中,您可以定義一個類(包括超類,插座變量,和動作),

23、并為工程中的每個類生成源代碼文件的框架。在Xcode中,您可以為定制類添加插座變量和動作,然后讓Interface Builder將這些實體導(dǎo)入到nib文件中。2.3 iOS系統(tǒng)架構(gòu) iOS是運行于iPhone、iPod touch以及iPad設(shè)備的操作系統(tǒng),它管理設(shè)備硬件并為手機本地應(yīng)用程序的實現(xiàn)提供基礎(chǔ)技術(shù)。iPhone SDK包含開發(fā)、安裝及行本地應(yīng)用程序所需的工具和接口。本地應(yīng)用程序使用iOS系統(tǒng)框架Objective-C語言進(jìn)行構(gòu)建,并且直接運行于iOS 設(shè)備。iOS架構(gòu)和Mac OS的基礎(chǔ)架構(gòu)相似。站在高級層次來看,iOS 扮演底層硬件和應(yīng)用程序(顯示在屏幕上的應(yīng)用程序)的中介,應(yīng)

24、用程序不能直接訪問硬件,而需要和系統(tǒng)接口進(jìn)行交互,這樣可以防止應(yīng)用程序改變底層硬件。iOS系統(tǒng)框架分為四大層,CocCocoa Touch 層、Media層、Core Service層、Core OS層,底層為所有應(yīng)用程序提供基礎(chǔ)服務(wù),高層則包含一些復(fù)雜巧妙的服務(wù)和技術(shù)。 2.3.1 核心操作系統(tǒng)層 System級包含kernel環(huán)境、驅(qū)動以及操作系統(tǒng)級別的unix接口。kernel本身負(fù)責(zé)操作系統(tǒng)的每一個方面:如虛擬內(nèi)存管理、線程、文件系統(tǒng)、網(wǎng)絡(luò)和互聯(lián)通信。在該層的驅(qū)動也提供在可獲得的硬件與系統(tǒng)框架之間的接口。為了安全,對kernel和驅(qū)動的存取被限制到一組有限的系統(tǒng)框架和應(yīng)用。2.3.2

25、核心服務(wù)層CoreServices包含應(yīng)用需要的基礎(chǔ)的系統(tǒng)服務(wù)。這些服務(wù)中的核心是CoreFoundation和Foundation框架,定義了所有應(yīng)用使用的基本類型。該層也包含獨立的技術(shù)來支持一些其它功能, 例如位置、iCloud、社交媒體和網(wǎng)絡(luò)。Net Servicer主要負(fù)責(zé)網(wǎng)絡(luò)服務(wù),在開發(fā)過程中,承擔(dān)應(yīng)用程序與服務(wù)器之間連接的角色,有很強的交互性。媒體層包含圖形技術(shù)、音頻技術(shù)和視頻技術(shù),這些技術(shù)相互結(jié)合就可為移動設(shè)備帶來最好的多媒體體驗,更重要的是,它們讓創(chuàng)建外觀音效俱佳的應(yīng)用程序變得更加容易。您可以使用iOS的高級框架更快速地創(chuàng)建高級的圖形和動畫,也可以通過底層框架訪問必要的工具,從

26、而以某種特定的方式完成某種任務(wù)。它包括以下這些組件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image Picker,Multi-Touch Controls。CocoaTouch層包含創(chuàng)建iOS應(yīng)用程序所需的關(guān)鍵框架。上至實現(xiàn)應(yīng)用程序可視界面,下至與高級系統(tǒng)服務(wù)交互,都需要該層技術(shù)提供底層基礎(chǔ)。在開發(fā)應(yīng)用程序的時候,盡可能不要使用更底層的框架,盡可能使用該層的框架。2.3.3 應(yīng)用程序框架編寫應(yīng)用程序項目,都是從Cocoa Touch層開始的,具體來說是從UIKit

27、Framework開始的。iOS常用的SDK框架如下:AddressBook.framework提供訪問存儲核心數(shù)據(jù)庫中用戶聯(lián)系人信息的功能。AddressBook.framework提供一個用戶界面,用于顯示存儲在地址薄中的聯(lián)系人詳情。AudioUnit.framework提供一個接口,讓我們的應(yīng)用程序可以對音頻進(jìn)行處理。AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時也負(fù)責(zé)管理音頻硬件。CFNetwork.framework訪問和配置網(wǎng)絡(luò),像HTTP,F(xiàn)TP和Bonjour Services等。CoreFound

28、ation.framework提供抽象的常用數(shù)據(jù)類型,如Unicode、strings、XML、URL等。CoreGraphics.framework提供2D繪制的基于C的API。Foundation.framework提供Object-C的基礎(chǔ)類(像NSObject)、基本數(shù)據(jù)類型和操作系統(tǒng)服務(wù)等。GameKit.framework為游戲提供網(wǎng)絡(luò)功能,點對點互聯(lián)和游戲中的語音交流。MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。MediaPlayer.framework提供視頻播放和音頻的功能。MessageUI.framework提供視圖控制接口用以處理E-mail和短信。O

29、penGLES.framework提供簡潔而高效的繪制2D和3D圖形的OpenGL API。QuartzCore.framework提供動畫特效以及通過硬件進(jìn)行渲染的能力。StoreKit.framework為應(yīng)用程序提供在程序運行中消費的支持。SystemConfiguration.framework檢測當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。2.3.4 Unix內(nèi)核iOS系統(tǒng)同mac系統(tǒng)都是是以Darwin為基礎(chǔ)的,是在有Unix衍生出來的BSD基礎(chǔ)上開發(fā)出來適合在移動設(shè)備上運行的系統(tǒng)。2.3.5 開發(fā)環(huán)境配置需要裝有Mac操作系統(tǒng)的Mac本一臺,有條件的可以配一部蘋果手機。Xcode 5.

30、0,是ios開發(fā)唯一的工具,Xcode內(nèi)集成大量框架,功能強大,方便易用。3 系統(tǒng)分析與設(shè)計3.1 需求分析該部分主要介紹各種需求分析,主要包括:技術(shù)條件可行性描述,硬件可行性描述,社會因素可行性描述,市場因素可行性描述等。具體描述內(nèi)容如下。3.2 系統(tǒng)需求分析本系統(tǒng)是基于iOS平臺開發(fā)的一款創(chuàng)意生活館系統(tǒng),將要應(yīng)用在iOS移動通訊設(shè)備上,能夠盡可能的滿足用戶更方便更快捷的需求,能夠在在任何地方瀏覽商品,選擇商品,購買商品,不受地點的限制。創(chuàng)意生活館手機應(yīng)用客戶端總體的架構(gòu)圖如圖3-1所示。創(chuàng)意生活館創(chuàng)意生活館搜索分類我首頁搜索分類我首頁人氣價格銷量搜索內(nèi)容一級分類二級分類人氣價格銷量搜索內(nèi)容

31、一級分類二級分類申請用戶注冊用戶圖3-1總體架構(gòu)圖 3.3 可行性分析可行性分析主要分析該系統(tǒng)的實現(xiàn)可行性,主要包括技術(shù)條件可行性,硬件條件可行性,社會因素可行性,市場因素可行性。3.3.1技術(shù)條件可行性說到技術(shù),首先也是最重要的就是開發(fā)語言,IOS應(yīng)用客戶端開發(fā)使用的是Objective-C語言,它是一門面向?qū)ο蟮恼Z言,高效而優(yōu)雅。相對于其他面向?qū)ο笳Z言它主要有以下幾種特性:1.動態(tài)綁定函數(shù)和消息的最根本不同是:函數(shù)和它的參數(shù)是在編譯的時候已經(jīng)確定下來,但是消息和接收對象知道程序已經(jīng)在運行,消息在傳遞時才能確定下來。確切的消息方法實現(xiàn)依賴于消息的接收者,不同的接收者可能有相同的方法名不同的方

32、法實現(xiàn),只有在消息接收時才能確定(動態(tài)類型),通過源代碼的類型定義并不能完全確認(rèn)接收者的類型。運行時消息例程查找接收者和消息方法,找到消息方法實現(xiàn)的機器碼,呼叫這個方法,傳遞給它消息實例變量指針。2.類別Objective-C 的標(biāo)準(zhǔn)的類聲明,使用interface 關(guān)鍵字。但類別與類聲明區(qū)別的是在括號中聲明了一個類別名字。類別能為任何類添加類別,包括不知道源代碼的類(例如標(biāo)準(zhǔn)的Cocoa Touch 類等)。已聲明類別的類,類及其子類的所有實例都可以使用聲明在類別中的方法,在運行時,通過類別為類添加的方法與類本身的方法沒有任何區(qū)別。類別也通常在頭文件中進(jìn)行聲明,在分離的源文件中進(jìn)行類別方法的

33、實現(xiàn)。為了使用為類添加的類別,需要在使用的地方輸入聲明類別的頭文件。類別可以作為一種設(shè)計模式使用,用來使用類別把一個實現(xiàn)復(fù)雜的類分離為幾個實現(xiàn)文件。也可以為不同的平臺提供不同的類別實現(xiàn)方法。類別用來聲明實例方法或類方法,但不適合聲明額外的屬性。在一個類別接口中聲明一個屬性是有效的,但在類別中聲明一個額外的實例變量是不可能的,這意味者編譯器不能夠生成任何實例變量,也不能夠生成任何屬性存取方法。但你能夠在類別實現(xiàn)中實現(xiàn)自己的屬性存取方法,但你不能夠保持和跟蹤一個屬性值,除非它已經(jīng)在原先的類中存儲。另外需要注意的是類別中定義的方法名字不能與該類已有的方法或為該類(或其超類)定義的其它類別中的方法沖突

34、。3.協(xié)議在Objective-C中,每個類都都對外提供自己的接口,類包括接口聲明和類實現(xiàn)。而沒有像其它語言(如java)那樣,接口與類定義是獨立的,一個類可以實現(xiàn)多個接口。但在Objective-C中協(xié)議可以起到類似的作用,協(xié)議用來聲明與任何特定的類獨立的方法,如果一個類聲明符合某種協(xié)議,則其實現(xiàn)中必須實現(xiàn)協(xié)議中聲明的方法,但與其它語言接口定義不同的是在協(xié)議中不僅能聲明對象方法,還能聲明類方法以及屬性。 4.繼承性與C+不同的是,OC中繼承只能是單繼承,不存在多繼承,這為開發(fā)者省去了復(fù)雜的繼承模式。要實現(xiàn)多繼承的效果,可以使用類別。繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了

35、一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。在Objective-c中所有的類都是繼承NSObject的,因為NSObject有一些基本的方法。類的繼承關(guān)系圖3-2所示:NSObjectNSObjectUIResponderUIScreenUIWindowUIViewUILabelUIScrowViewUITextViewUITableView圖3-2類的繼承關(guān)系圖5.開發(fā)工具:

36、xcode 5.0。6.操作系統(tǒng):mac 10.8操作系統(tǒng)。3.3.2硬件條件可行性硬件方面只需要一臺裝有mac系統(tǒng)的mac本即可。有條件的可以配一部Apple移動設(shè)備。3.3.3社會因素可行性如今社會發(fā)展迅速,人們對應(yīng)用的要求越來越高,移動購物市場已具有一定的規(guī)模而且還將繼續(xù)擴大,伴隨消費者移動設(shè)備使 用目的的轉(zhuǎn)變,不再只局限于看視頻、刷微博、看電子書、聽音樂等形式,移動購物開始挑戰(zhàn)傳統(tǒng)購物和PC購物模式,成為各大電商力捧的新盈利點。 今年5月1日當(dāng)天,天貓無線端成交額增達(dá)到53.8%,首次超過PC端成交額。而5月2 日-5月3日,天貓無線日均支付寶成交占天貓總成交比也達(dá)到49.8%,追平P

37、C端成交量。這說明人們的線上生活正在從pc端逐漸轉(zhuǎn)向移動端,這是移動互聯(lián)網(wǎng)帶來的巨大機遇。 移動app的數(shù)量增長也在于移動設(shè)備的便捷,操作方便,界面簡單親切。在每一個垂直領(lǐng)域內(nèi),app能夠快速幫助人們實現(xiàn)想要做的事情,資訊,社交聊天,訂票,當(dāng)然少不了購物。傳統(tǒng)的pc端,人們只能靠瀏覽器打開網(wǎng)頁,在網(wǎng)站上購物,網(wǎng)站上信息量龐大繁雜,不容易找到自己想要的商品。而移動端購物客戶端的出現(xiàn),可以幫助人們快速找到自己想要的商品,并快捷安全地完成支付功能。3.3.4市場因素可行性近幾年隨著蘋果手機的熱賣,智能手機終端越來越普及;結(jié)合3G網(wǎng)絡(luò)的大力發(fā)展,移動互聯(lián)的時代已經(jīng)正式到來。此次把生活創(chuàng)意館系統(tǒng)搬到iO

38、S手機操作系統(tǒng)上,是對移動開發(fā)的一次簡單嘗試。寄希望于此次嘗試能夠熟悉iOS移動平臺的開發(fā),綜合自己所學(xué)知識,運用到這個項目中來,同時期待自己有所突破和創(chuàng)新,最后能夠積累一定的移動開發(fā)經(jīng)驗。此次我把這些知識和信息在iOS手機平臺上展示出來,在如今智能機逐漸普及的基礎(chǔ)上將會是一個新的空間。3.4總體設(shè)計此應(yīng)用主要由四個大模塊組成,首先最底層的是一個自定義的UITabBarController,它管理了4個UINavigationController,每一個導(dǎo)航控制器又管理了自己的子視圖控制器.子視圖控制器中又有自己的自視圖控制器,且相互之間可以跳轉(zhuǎn)。另外該系統(tǒng)是遵循mvc模式,使用新出的ARC內(nèi)

39、存管理方式??刂破鬟B接視圖和數(shù)據(jù)模型,處理主要邏輯,例如,請求服務(wù)器取得數(shù)據(jù),解析存到數(shù)據(jù)模型里,并將數(shù)據(jù)模型傳給視圖,視圖只處理跟自己顯示有關(guān)的具體邏輯。該系統(tǒng)的體系結(jié)構(gòu)如圖3-3所示。ShoppingCarViewControllerShoppingCarViewControllerParentViewControllerParentViewControllerHomePageViewControllerHomePageViewControllerSearchViewController 控制器SearchViewController 控制器CategoryViewControllerCa

40、tegoryViewControllerIViewControllerIViewControllerUITableviewUITableview視圖視圖UIWebViewUIWebView ClassificationModel ClassificationModel模型模型 HomePageModel HomePageModel圖3-3體系結(jié)構(gòu)圖3.5詳細(xì)設(shè)計1.主頁模塊流程圖,此界面主要顯示推薦的一些創(chuàng)意商品,列表主要顯示商品的基本信息,選擇每個商品可以進(jìn)入對應(yīng)商品詳情界面。首頁首頁 選擇某商品商品詳情購物圖3-4首頁流程圖2.分類模塊流程圖,此模塊分為一級分類和二級分類, 一級分類一級分

41、類 選擇分類 二級類別商品詳情圖3.5專題流程圖搜索模塊流程圖,點擊搜索導(dǎo)航,進(jìn)入搜索界面,顯示一個搜索條,支持關(guān)鍵字搜索,但不支持模糊搜索。輸入關(guān)鍵字,顯示出相應(yīng)的要搜索的內(nèi)容。如圖3-6所示搜索條搜索條 輸入搜索內(nèi)容商品列表 圖3-6 搜索模塊流程圖4.我模塊主要是登陸自己的賬戶,在賬戶在線的情況下實現(xiàn)購物,其流程如圖3-7所示。選擇注冊登錄選擇注冊登錄 我 注冊注冊成功并登錄檢查是否 注冊處 登錄注冊成功并登錄檢查用戶名與密碼是否一致 否 否 是 是 圖3-7我流程圖4 系統(tǒng)實現(xiàn)4.1 代碼結(jié)構(gòu)的實現(xiàn)該系統(tǒng)主要由四個基本界面組成,代碼結(jié)構(gòu)如下:本系統(tǒng)采用MVC設(shè)計模式,M是model,建

42、立的數(shù)據(jù)模型;V是View,是每個model所對應(yīng)View來顯示內(nèi)容;C是Controller,controller是視圖的控制器。系統(tǒng)在實現(xiàn)時用到的這四個方面主要內(nèi)容如下:1、模型Model:ClassifictionNodeModelHomePageModel2、視圖View:ClassCellResultCellMenuClassifyCellHomePageCell3、控制器Controller:RootViewControllerSubjectViewControllerCategoryViewContrpollerSearchControllerIViewControllerPar

43、entViewController4、第三方庫:Hash:用于加密數(shù)據(jù)的第三方庫。Fmdb:數(shù)據(jù)庫第三方庫。EGOTableViewPullRefresh:下拉刷新的第三方庫。AS3DpuuRefresh:下拉刷新的第三方庫。ASIHttpRequest:網(wǎng)絡(luò)請求數(shù)據(jù)的第三方庫。SDWebImage:網(wǎng)絡(luò)解析圖片的第三方庫。4.2 各模塊代碼的實現(xiàn)主頁模塊:此界面主要向用戶展示推薦的生活創(chuàng)意產(chǎn)品,首先向后臺服務(wù)器請求數(shù)據(jù),http請求方式為get請求方式。請求成功后,服務(wù)器返回json數(shù)據(jù),解析之后顯示在頁面上,同時將數(shù)據(jù)存本地數(shù)據(jù)庫。用到的技術(shù)點有:網(wǎng)絡(luò)請求使用ASI庫,解析json數(shù)據(jù)使用

44、SBJson,顯示數(shù)據(jù)使用UITableView,存數(shù)據(jù)庫使用FMDB。主要代碼如下: interface HomepageViewController () DetailListTableView *_tableView; /頭置UIView UIView *_headerView; / NSArray *imagesNormal; / NSArray *imagesSelect;endimplementation HomepageViewController- (void)viewDidLoad super viewDidLoad; self.navigationTitle = 創(chuàng)意生活;

45、 self setNavigationBarRightButtonWithTitleName:篩選 target:self action:selector(chooseClicked); imagesNormal = NSArray alloc initWithObjects:btn_價格_點擊前.png,btn_銷量_點擊前.png,btn_人氣_點擊前.png,nil; imagesSelect = NSArray alloc initWithObjects:btn_價格_點擊后.png,btn_銷量_點擊后.png,btn_人氣_點擊后.png,nil; self createHeade

46、rView; self createTableView; HttpRequest requestWithUrlSting:HomePageUrlString target:self aciton:selector(requestFinished:);分類模塊:此頁面主要根據(jù)各個分類顯示商品信息,包括兩級分類。數(shù)據(jù)模型主要由一個二維數(shù)組實現(xiàn),同樣數(shù)據(jù)從后臺服務(wù)器取得。主要代碼如下:interface SearchViewController () ResultListTableView * _tableView; UIView * _searchView; UITextField * _sear

47、chTextField;endimplementation SearchViewController- (void)viewDidLoad super viewDidLoad;self.navigationTitle = 搜索; self createBackgroundImageView; self createSearchView; self createTableView;搜素模塊代碼如下:搜索模塊實現(xiàn)的功能是,用戶輸入想要搜索的商品,之后請求服務(wù)器返回符合條件的商品列表信息,最后顯示到頁面上。商品點擊進(jìn)入購買頁。主要技術(shù)點為請求網(wǎng)絡(luò)數(shù)據(jù)及顯示商品列表。interface Categor

48、yViewController () NSMutableArray * _classDataArray; UITableView * _tableView;endimplementation CategoryViewController- (void)viewDidLoad super viewDidLoad;self.navigationTitle = 分類; _classDataArray = NSMutableArray alloc init; self setBackground; self startLoadData; self createTableView;我代模塊碼如下:此界面

49、負(fù)責(zé)用戶的注冊和登錄功能,實現(xiàn)方法是加載Web頁,調(diào)用淘寶官方注冊登錄界面。難點為web頁的加載。interface IViewController () UIWebView * _myWebView;endimplementation IViewController- (void)viewDidLoad super viewDidLoad;self.navigationTitle = 我的; self createWebView;4.3 各模塊功能的實現(xiàn)1.第一個模塊是主頁模塊,主頁模塊中又包含幾個子模塊。該頁面主要為用戶提供一些推薦的商品。首先該頁面的數(shù)據(jù)是從后臺服務(wù)器獲得,http請求方

50、式為get方法,服務(wù)器數(shù)據(jù)的返回格式是json格式。代碼實現(xiàn)里用第三方庫ASI請求數(shù)據(jù),返回數(shù)據(jù)用SBJSon解析。本頁數(shù)據(jù)會存本地數(shù)據(jù)庫sqlite,方便下次打開頁面或沒有網(wǎng)絡(luò)時可以正常很快地顯示數(shù)據(jù)。UI界面用ios框架UIKiit里的UITableView實現(xiàn)??梢院芎每焖俚仫@示數(shù)據(jù)。另外,該頁面具有篩選功能,可以分別選擇價格、銷量、人氣來展示不同的數(shù)據(jù)。該頁面的每個商品元素都可以點擊進(jìn)入到對應(yīng)的詳情頁,改詳情頁是web頁面,使用WebView實現(xiàn)。設(shè)計成品圖如圖4-1所示 圖4-1主頁模塊圖2.第二個模塊是分類模塊,通過此頁面用戶可以方便地根據(jù)分類來搜索到自己感興趣的商品,同樣,頁面用

51、UITableView展示,每個cell是某一類,點擊之后可以進(jìn)入到子頁面,子頁面將顯示該類的商品列表,子頁面同主頁面。另外,在該頁面中,用戶可以點擊右上角的分類,在頁面的的左邊彈出分類信息,用戶可以切換類別,瀏覽其他分類商品。設(shè)計成品圖如圖4-2所示 圖4-2分類模塊圖3、搜索模塊。在這個頁面,用戶可以輸入想要搜索的商品,界面將返回符合搜索條件的商品。用戶可以快速找到自己想要的商品。如圖4-3所示 圖4-3搜索模塊圖4.第四個模塊是我模塊登陸賬戶和密碼進(jìn)入,可進(jìn)行相關(guān)操作,完成圖如圖4-4所示 圖4-4個人模塊圖5 總結(jié)本課題由于采用的是純軟件開發(fā)系統(tǒng),采用的系統(tǒng)又是很封閉的IOS系統(tǒng)而且對

52、界面要求和內(nèi)存管理比較嚴(yán)格,故我有如下總結(jié):(1)UI界面要符合iphone一貫的風(fēng)格,動畫要流暢,對于怎么設(shè)計可以隨意發(fā)揮自己想象。(2)內(nèi)存管理要注意,自己創(chuàng)建的對象要自己管理好自己的內(nèi)存,不要造成內(nèi)存過度釋放或者內(nèi)存泄漏而造成程序崩潰。(3)注意設(shè)計的算法,一本小說很長需要分割字符串,要確定怎么樣分割,然后要計算滿屏的字?jǐn)?shù),和下一頁的,這樣需要謹(jǐn)慎考慮和設(shè)計。(4)注意oc語言的風(fēng)格和程序的美觀性。(5)要熟練掌握Xib設(shè)計控件和代碼寫控件。(6)要有嚴(yán)謹(jǐn)?shù)倪壿嬎季S能力和不斷嘗試的創(chuàng)新能力。總之這次畢業(yè)設(shè)計給我很大鼓勵和信心,我完成的不僅僅是一課題更加是對新東西的一種挑戰(zhàn),我對學(xué)過的書本

53、知識有了更深的理解,同時也學(xué)到了許多書本上學(xué)不到的知識。另外,我在工程應(yīng)用、獨立分析解決問題、科技論文寫作等能力方面有了一定的提高,也了解了工程項目開發(fā)的基本思路和方法。畢業(yè)設(shè)計是將平時所學(xué)的專業(yè)知識同實踐相結(jié)合的產(chǎn)物。在這次畢業(yè)設(shè)計中,我重新復(fù)習(xí)了相關(guān)的專業(yè)知識,同時也查閱了大量的資料,對C語言、數(shù)據(jù)庫、oc語言、UI界面等基礎(chǔ)知識的重要性有了新的了解,這也為我以后的學(xué)習(xí)和工作指明了方向。致謝轉(zhuǎn)眼間即將畢業(yè)了,在這個時刻總會有一些不舍,一是自己學(xué)到的東西太少,對比以后將邊工作邊自我學(xué)習(xí)的日子,很懷念這樣全日制學(xué)習(xí)的時刻;二是這里有很多我們敬愛的老師和可愛的同學(xué)們。畢業(yè)設(shè)計成為了大學(xué)階段最后的

54、學(xué)習(xí)標(biāo)記,同時也是檢驗自我、增長經(jīng)驗的難得機會與體驗。在完成畢業(yè)設(shè)計的過程中,每一次成功和進(jìn)步都是寶貴的財富。只有自己從頭到尾從選題、設(shè)計、查找資料、逐步完成,一步一步走過來,才能切實發(fā)現(xiàn)自己的不足。而每次遇到困難,想辦法自我攻克難題,才有長足的進(jìn)步。這次畢業(yè)設(shè)計使我能夠靜下心來,集中注意力工作,逐漸讓我養(yǎng)成了良好的面對錯誤的心態(tài)和編寫程序的習(xí)慣,受益匪淺。同時漸漸掌握了自己的一套編寫代碼,改正錯誤的流程,成長很大。第三是端正了自己的心態(tài),認(rèn)識到自己的不足,同時有信心能夠做得更好。在此特別感謝一下馮老師對我悉心的指導(dǎo),感謝老師給我的幫助和很多建議。參考文獻(xiàn)1 王志剛.編著應(yīng)用程序開發(fā)攻略之iP

55、hone特色傳感器應(yīng)用M.北京:電子工業(yè)出版社,2011:2. 2 Gene Backlin(美)著.岳紅 凌沖譯.iPhone&iPad高級編程M.北京:清華大學(xué)出版社,2012:1.3 Wei-Meng Lee(美)著.張龍譯.IOS 4編程入門經(jīng)典M.北京:清華大學(xué)出版社,2012:1.4 虞斌著. Ios軟件開發(fā)揭秘:iPhone&iPad企業(yè)應(yīng)用和游戲開發(fā)M.北京:電子工業(yè)出版社,2011:1.5 克萊爾(美)著.李強譯.Objective-C2.0Mac和ios開發(fā)實踐指南M.北京:機械工業(yè)出版社,2011:1. 6 Brian W.Kernighan ,Deninis M Rir

56、chie(美)著,徐寶文,李志(譯)The C Programming LanguageM.北京:機械工業(yè)出版社2003:2.7 徐松林,黃猛著.cocos2D-x手機游戲開發(fā)M.北京:人民郵電出版社.8 Ron patton(美)著.王鈺,曹躍譯.軟件測試M.北京:機械工業(yè)出版社,2006:4.9 王水著.軟件工程M.河南:河南科學(xué)技術(shù)出版社,2008:8.10 吳潔明著.軟件工程實例教程M.北京:清華大學(xué)出版社,2010:11.11 郭東恩著.數(shù)據(jù)庫原理及應(yīng)用M.河南:河南科學(xué)技術(shù)出版社,2008:4.12 Dan Pilone著.Head First iPhone Development

57、M.北京:東南大學(xué)出版社,2012:1.13 薩丹著.iPhone開發(fā)秘籍M.北京:人民郵電出版社,2010:1.14 喬納森(美)著.AppStore掘金M.北京:人民郵電出版社,2010:1.15 哈靈頓(美)著.iOS 4實戰(zhàn)M.北京:人民郵電出版社,2012:1. 附錄該附錄附帶各頁面主要代碼,如下:1.主頁界面:-(void)createTableView NSInteger height = 0; if (DeviceManager isiOS7Version = YES) height = 64; _tableView = DetailListTableView alloc in

58、itWithFrame:CGRectMake(0,0, 320, DeviceManager currentDeviceScreenHeight-height-49);/ _tableView.showsHorizontalScrollIndicator = NO;/ _tableView.showsVerticalScrollIndicator = NO; _tableView.navController = self.navigationController; self.view addSubview:_tableView;- (void)createHeaderView _headerV

59、iew = UIView alloc initWithFrame:CGRectMake(0, -44, 320, 44); self.view addSubview:_headerView; NSArray *names = NSArray alloc initWithObjects:價格,銷量,人氣,nil; NSInteger spaceWeidth = (UIScreen mainScreen.bounds.size.width - 40 - 160)/2; NSInteger height = 30; for (int i = 0; i 0) for (int i = 0; i _ta

60、bleView.dataArray.count-1; i+) for (int j = 0; j (HomePageModel *)_tableView.dataArray objectAtIndex:j+1).feedGoodCegerValue) _tableView.dataArray exchangeObjectAtIndex:j withObjectAtIndex:j+1; /NSLog(人氣:%,(HomePageModel *)_tableView.dataArray objectAtIndex:j).feedGoodCount); _tableView reloadData;/

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論