畢業(yè)設(shè)計(論文)-基于IOS開發(fā)的裝修家居APP的設(shè)計與實(shí)現(xiàn)
《畢業(yè)設(shè)計(論文)-基于IOS開發(fā)的裝修家居APP的設(shè)計與實(shí)現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(論文)-基于IOS開發(fā)的裝修家居APP的設(shè)計與實(shí)現(xiàn)(28頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
河南科技學(xué)院2015 屆本科畢業(yè)設(shè)計基于 IOS 開發(fā)的裝修家居 APP 的設(shè)計與實(shí)現(xiàn)學(xué)生姓名: 所在系別: 信 息 工 程 所學(xué)專業(yè): 信 息 工 程 導(dǎo)師姓名: 完成時間: 2015 - 5 10 基于 IOS 開發(fā)的裝修家居 APP 的設(shè)計與實(shí)現(xiàn)摘 要隨著科技的發(fā)展,移動智能終端人們的日常生活中扮演著越來越重要的角色。基于 iOS 系統(tǒng)的 iPhone 手機(jī)因其獨(dú)特的設(shè)計和極佳的體驗(yàn)深受用戶歡迎。作為當(dāng)前最流行的操作平臺,自然也存在著大量的應(yīng)用服務(wù)需求。本課題是為一家裝修公司設(shè)計的一款幫助人們可以隨心所欲選擇家居裝修樣式的移動應(yīng)用。該APP 以 Object-C 語言編寫,以 Xcode 為開發(fā)工具實(shí)現(xiàn)的。主要有五大界面:首頁,分類圖片,靈感,關(guān)注及設(shè)置界面。首頁展示了設(shè)計師設(shè)計的當(dāng)今流行的一些裝修樣板;分類界面以空間、風(fēng)格、局部三種分類方式向用戶詳細(xì)介紹各種各樣的裝修方法;靈感界面就是用戶記錄自己的裝修方法,以備以后裝修時使用的界面;關(guān)注界面則是自己關(guān)注的設(shè)計師的最新動態(tài);設(shè)置界面可以清空緩存,意見反饋,及 APP 介紹。精 致 優(yōu) 秀 的 設(shè) 計 風(fēng) 格 , 有 多 樣 化 的 選 擇 , 使 用 戶 可 以更 加 賞 心 悅 目 地 體 驗(yàn) 本 軟 件 的 服 務(wù) 。關(guān) 鍵 詞 : Objective_c、 HTTP、 MySQL、 家 居DESIGN AND IMPLEMENTATION OFINFORMATION MANAGEMENT SYSTEMS GRADUATESAbstractWith the development of science and technology, mobile intelligent terminal plays an increasingly important role in daily life IPhone mobile phone based on the iOS system because of its unique design and excellent experience by users. As the most popular operating platform, there is also a lot of natural application service needs. This topic is for a decoration company design of a help people can choose home decoration style mobile application. The APP is written in Object-C language, and implemented by Xcode as the development tool There are five major interfaces: home, classification pictures, inspiration, attention and set the interface. Home page shows the designer of todays popular some decoration model; interface classification to space, style, local three classification to users with the various decoration method; interface inspired is users to record their own decoration method, to preparation after the renovation of the use of interface; interface is designers concern themselves with the latest developments; setting interface can empty the cache, feedback, and app. Exquisite and excellent design style, a variety of choices, users can experience more be good to hear or see the service of this software.Keywords: Objective_c, HTTP, MySQL, Household目錄1. 緒論 12. iOS 系統(tǒng)、環(huán)境以及所用技術(shù)介紹 .22.1 iOS 系統(tǒng)簡介 .22.3 開發(fā)環(huán)境 .32.4 應(yīng)用程序框架 .32.5 設(shè)計模式 .42.6 第三方庫 53. 功能模塊的設(shè)計 .63.1 首頁界面的設(shè)計 .63.2 分類界面 .73.3 靈感界面 .73.4 關(guān)注界面 .83.5 設(shè)置界面 .84. 功能模塊的具體實(shí)現(xiàn) .94.1 各個界面之間的切換 94.2 首頁界面的具體實(shí)現(xiàn)邏輯及代碼 .104.3 分類界面 134.4 靈感界面 154.5 關(guān)注界面 184.6 設(shè)置界面 205. 系統(tǒng)測試 .215.1 測試目的 215.2 測試方法 21小結(jié) 23參考文獻(xiàn) 23致謝 2411. 緒論隨著 IOS 的在當(dāng)今社會流行,人們愈發(fā)體驗(yàn)到了其所帶來的科技魅力,給我們的生活帶來了越來越多的幫助,讓我們的生活更加的簡單。本課題研究的是設(shè)計一款 APP,人們通過這個手機(jī) APP 就能找到自己理想的家居裝修方法,讓自己的居住環(huán)境更加的舒適。如今的移動應(yīng)用開發(fā)產(chǎn)業(yè)讓人眼花繚亂,主要的移動平臺有:IOS、Android、Nokia Symbian、blackberry、Java ME、windows phone、mobile web。Android 以其開放性,多任務(wù),大功能。畫面流暢,硬件設(shè)備優(yōu)良多樣等各種優(yōu)點(diǎn),占只能機(jī)一大部分,然而它也存在著明顯的不足,如:兼容性差,各種機(jī)型的配置不一樣,以至于開發(fā)的時候出現(xiàn)各種版本。有些產(chǎn)品華而不實(shí),用戶體驗(yàn)差。Symbian 主要基于 C 語言的應(yīng)用開發(fā),支持多線程運(yùn)行模式,但是開發(fā)代碼量過大給開發(fā)人員造成很大的不便。就目前而言,三大平臺(Android、Symbian、blackberry)的市場占有率也在逐漸下降,IOS 呈現(xiàn)平穩(wěn)上升趨勢。(1)APPstore 的支付模式成熟。不僅僅是這一模式的創(chuàng)新,更重要的人們用蘋果手機(jī)只能從蘋果商店下載應(yīng)用,經(jīng)過長時間的運(yùn)營,APPstore 已經(jīng)形成完備的支付模式,被大部分用戶接受。(2)IOS 是用 object-C 這門語言開發(fā)。從全球的編程語言排行榜來看,雖然object-C 只有蘋果一家公司使用,但是已經(jīng)排名已經(jīng)非??壳傲?,可見 IOS 開發(fā)的普及性和歡迎程度,另外,基于 C 語言,運(yùn)行效率更高計算機(jī)網(wǎng)絡(luò)通信技術(shù)和 Internet 在最近幾年來飛速發(fā)展,基于因特網(wǎng)的手機(jī)移動應(yīng)用逐漸開始成為一種全新的功能需求,并且越來越收到人們的關(guān)注。由于移動應(yīng)用具有簡單性,隨時隨地等諸多優(yōu)點(diǎn),人們通過一部手機(jī)就可以操控一切,它有著傳統(tǒng)計算機(jī)無法比擬的優(yōu)點(diǎn)。而人們也在越來越追求更高的物質(zhì)生活,因此,開發(fā)一個關(guān)于裝修家居的移動應(yīng)用就有必要了,你只需要通過一部手機(jī),就可以看見多種多樣的裝修方式,多樣化的選擇,讓你找到自己心怡的裝修方法。并且你還可以將方法分享給你的朋友,讓更多的人感受到移動應(yīng)用,這個 APP 給人們帶來的簡便?;?IOS 平臺的裝修軟件已經(jīng)有很多,經(jīng)過分析,用戶第一眼往往是一個軟件的外觀,一個好看的界面才能讓用戶以一種愛美之心去嘗試,才能進(jìn)一步了解一個軟件的好壞,所以吸引眼球的界面是爭取用戶的第一步。因此,界面設(shè)計工作對應(yīng)用程序來說非常重要,在界面上吸引了用戶,才能進(jìn)一步讓用戶體驗(yàn)應(yīng)用程序中的功能,使用這個軟件。因此,開發(fā)一種界面美觀,用起來舒適,并且能給人們帶來巨大作用的軟件非常有必要。房屋裝修設(shè)計是個系統(tǒng)工程,并非想像的那么簡單。一般來說,每個人想法都有所不同,對家居的要求不盡相同。但真正能將自己的想法表達(dá)到位的,卻少之又少。一個專業(yè)的房屋設(shè)計師,首先會充分了解裝修業(yè)主的個性化需求,結(jié)合自己的專業(yè)知識、生活閱歷,將裝修業(yè)主理想中的家居通過設(shè)計圖紙表現(xiàn)出來。其次,專業(yè)的設(shè)計師會利用自己對建材材料的了解,在設(shè)計時進(jìn)行合理搭配,施工時推薦最佳材質(zhì)。說簡單些,就是利用設(shè)計元素,突出家居中的某幾個亮點(diǎn)即可達(dá)到裝修最佳效果,而不必堆砌過多的裝修材料,可以為裝修業(yè)主節(jié)省許多不必要的花費(fèi)。第三,專業(yè)的設(shè)計師可以利用自己所累積的社會資源,為裝修業(yè)主拿到單個消費(fèi)者所拿不到材料價格,從而為業(yè)主節(jié)省許多金錢。隨著蘋果產(chǎn)品的不斷推陳出新,相應(yīng)的各類應(yīng)用開發(fā)也越來越火爆。目前,2IOS 在智能手機(jī)應(yīng)用下載量中占比 33%,IOS 平板電腦應(yīng)用下載量占比 75%,由此可見,IOS 相關(guān)應(yīng)用軟件有著龐大的消費(fèi)眾群。而產(chǎn)品的升級換代,新產(chǎn)品的開發(fā),都離不開手機(jī)軟件開發(fā)團(tuán)隊(duì)強(qiáng)有力的支持。現(xiàn)在各大企業(yè)都在積極擴(kuò)充研發(fā)隊(duì)伍,像是游戲軟件開發(fā)的崗位缺口就非常大。其 8-10 萬的年薪,讓很多年輕人加入到學(xué)習(xí) IOS 開發(fā)的隊(duì)伍中。 據(jù)對在讀學(xué)習(xí)人群統(tǒng)計,目前大部分學(xué)員來自應(yīng)屆的大學(xué)生。眾所周知,現(xiàn)在大學(xué)生就業(yè)難,薪水低。而學(xué)習(xí) IOS 開發(fā),不但可以掌握最新的技術(shù),還可以找到薪水福利不錯的工作,未來也有很大的發(fā)揮空間。另一部分人群,則是 IOS相關(guān)從業(yè)人員,隨著技術(shù)的日新月異,希望能通過短時間集中培訓(xùn),使技能得到提升,更好的應(yīng)用到實(shí)際工作中。而目前關(guān)于裝修的 App 少之又少,而人們又迫切需要這樣一款軟件,所以這樣的軟件具有很大的前景。 2. iOS 系統(tǒng)、環(huán)境以及所用技術(shù)介紹iOS 開發(fā)是以 xcode 為開發(fā)工具, OC 為編程語言開發(fā)的,是開發(fā)蘋果移動設(shè)備應(yīng)用的簡稱。2.1 iOS 系統(tǒng)簡介iOS 是 iPad、iPhone、iPod touch 和 Apple TV 的操作系統(tǒng)。是由蘋果公司開發(fā)的移動操作系統(tǒng) 。蘋果公司最早于 2007 年 1 月 9 日的 Macworld 大會上公布這個系統(tǒng),最初是設(shè)計給 iPhone 使用的,后來陸續(xù)套用到 iPod touch、iPad以及 Apple TV 等產(chǎn)品上。iOS 與蘋果的 Mac OS X 操作系統(tǒng)一樣,它也是以Darwin 為基礎(chǔ)的,因此屬于類 Unix 的商業(yè)操作系統(tǒng)。原本這個系統(tǒng)名為iPhone OS,因?yàn)?iPad,iPhone,iPod touch 都使用 iPhone OS,所以 2010WWDC大會上宣布改名為 iOS。iOS 具有簡單的界面、令人驚嘆的功能,以及超強(qiáng)的穩(wěn)定性,已經(jīng)成為 iPhone、iPad 和 iPod touch 的強(qiáng)大基礎(chǔ)。盡管其他競爭對手一直努力地追趕, iOS 內(nèi)置的眾多技術(shù)和功能讓設(shè)備始終保持著遙遙領(lǐng)先的地位。 Objective-C,通常寫作ObjC和較少用的Objective C或Obj-C,是擴(kuò)充C的面向?qū)ο缶幊陶Z言。Objective-C是非常實(shí)際的語言。它是一個用C寫成、很小的運(yùn)行庫,只會令應(yīng)用程序的尺寸增加很小,和大部分OO系統(tǒng)使用極大的VM執(zhí)行時間會取代了整個系統(tǒng)的運(yùn)作相反。Objective-C寫成的程序通常不會比其原始碼大很多。而其函式庫(通常沒附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大的內(nèi)存來開啟一個窗口的情況相反。因此,Objective-C它完全兼容標(biāo)準(zhǔn) C語言(C+對C語言的兼容僅在于大部分語法上,而在ABI(Applicat ion Binary Interface)上,還需要使用extern “C“這種顯式聲明來與C函數(shù)進(jìn)行兼容),而在此基礎(chǔ)上增加了面向?qū)ο缶幊陶Z言特性以及Smalltalk消息機(jī)制。和C+不同,Objective-C不支持運(yùn)算子重載(它不支持ad-hoc多型)。亦與C+不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設(shè)多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點(diǎn),例如額外執(zhí)行時間過重和二進(jìn)制不兼容。32.3 開發(fā)環(huán)境(1).Xcode 開發(fā)工具我們要掌握一門編程語言的話,都必須使用相應(yīng)的開發(fā)工具進(jìn)行學(xué)習(xí)和調(diào)試,比如用 eclipse 學(xué)習(xí) Java。至于 Objective-C,我們可以使用蘋果公司提供的開發(fā)工具-Xcode(2) Mac OS XXcode沒有Windows版本的,只有Mac版本的,也就是只能跑在Mac OS X系統(tǒng)上。 因此,你要先擁有Mac OS X系統(tǒng)才能使用Xcode進(jìn)行Objective-C的學(xué)習(xí)和iOS開發(fā) 。Mac OS X 是蘋果公司為 Mac 系列產(chǎn)品開發(fā)的專屬操作系統(tǒng),目前搭載這款操作系統(tǒng)的設(shè)備有:MacBook、iMac、Mac mini。大概有 3 種途徑可以獲取 Mac OS X 系統(tǒng):虛擬機(jī)、黑蘋果、購買蘋果設(shè)備。(3) 調(diào)試設(shè)備Xcode 自帶了 iOS 模擬器功能,因此我們可以將開發(fā)好的應(yīng)用程序,運(yùn)行到模擬器上進(jìn)行測試,不一定要買 iPhoneiPad 進(jìn)行調(diào)試。當(dāng)然,真機(jī)和模擬器肯定是區(qū)別的,因此在發(fā)布應(yīng)用程序之前肯定要進(jìn)行真機(jī)測試。(4) 開發(fā)者證書如果你是想把開發(fā)好的 iOS 程序發(fā)布到 App Store 上去賣,或者把程序運(yùn)行到真機(jī)(iPhoneiPad)上,那么就必須有 iOS 個人開發(fā)者證書。這個需要向蘋果買,一年 99$。如果純粹是學(xué)習(xí),不用買這個證書,一切開發(fā)都是免費(fèi)的。2.4 應(yīng)用程序框架應(yīng)用程序主要包括以下幾大框架:Foundation、UIKit 、Core Data 、 Core Graphics、 Core Animation 等幾大框架。在你開發(fā)程序時,主要使用框架就是 Foundation 和 UIKit,因?yàn)樗鼈儼阈枰拇蟛糠謻|西,你的應(yīng)用程序,UIKit 和其它的框架都是建立在 Foundation框架上Foundation 框架是用 Object-C 對 Core Foundation 框架里許多特性的封裝。使用Foundation可以: 創(chuàng)建和管理集合,比如數(shù)組和字典 訪問存儲在應(yīng)用程序里的圖片和其它資源 創(chuàng)建和管理字符串 提交和接收通知 創(chuàng)建日期和時間對象 自動發(fā)現(xiàn)IP網(wǎng)絡(luò)上的設(shè)備 操作URL流所有的iOS應(yīng)用程序都基于UIKit,你不能是應(yīng)用程序脫離這個框架。UIKit提供了在屏幕上繪制的機(jī)制,捕獲事件,和創(chuàng)建通用用戶界面元素。UIKit也通過管理顯示在屏幕上的組件來組織復(fù)雜的項(xiàng)目。使用UIKit可以:4 構(gòu)建和管理你的用戶界面 捕獲觸摸和基于移動的事件 呈現(xiàn)文字和web內(nèi)容 優(yōu)化你的多任務(wù)程序 創(chuàng)建定制的用戶界面元素Core Data , Core Graphics, Core Animation,和 OpenGLES 框架都是高級的技術(shù)。所以這些框架對于你開發(fā)應(yīng)用程序也是很重要的,它們都需要時間去學(xué)習(xí)和掌握。Core Data 框架管著理應(yīng)用程序數(shù)據(jù)模型,提供的內(nèi)建 SQLlite 技術(shù)可以高效的管理數(shù)據(jù)。Core Graphics 框架幫助你創(chuàng)建圖形Core Animation 允許你創(chuàng)建高級的動畫和虛擬效果OpenGL ES 框架提供 2D 和 3D 繪圖工具2.5 設(shè)計模式(一)代理模式應(yīng)用場景:當(dāng)一個類的某些功能需要由別的類來實(shí)現(xiàn),但是又不確定具體會是哪個類實(shí)現(xiàn)。優(yōu)勢:解耦合敏捷原則:開放-封閉原則實(shí)例:tableview的 數(shù)據(jù)源delegate,通過和protocol的配合,完成委托訴求。列表row個數(shù)delegate自定義的delegate(二)觀察者模式應(yīng)用場景:一般為model層對,controller和view進(jìn)行的通知方式,不關(guān)心誰去接收,只負(fù)責(zé)發(fā)布信息。優(yōu)勢:解耦合敏捷原則:接口隔離原則,開放-封閉原則實(shí)例:Notification通知中心,注冊通知中心,任何位置可以發(fā)送消息,注冊觀察者的對象可以接收。kvo,鍵值對改變通知的觀察者,平時基本沒用過。(三)MVC模式應(yīng)用場景:是一中非常古老的設(shè)計模式,通過數(shù)據(jù)模型,控制器邏輯,視圖展示將應(yīng)用程序進(jìn)行邏輯劃分。優(yōu)勢:使系統(tǒng),層次清晰,職責(zé)分明,易于維護(hù)敏捷原則:對擴(kuò)展開放-對修改封閉實(shí)例:model-即數(shù)據(jù)模型,view-視圖展示,controller進(jìn)行UI展現(xiàn)和數(shù)據(jù)交互的邏輯控制。(四)單例模式5應(yīng)用場景:確保程序運(yùn)行期某個類,只有一份實(shí)例,用于進(jìn)行資源共享控制。優(yōu)勢:使用簡單,延時求值,易于跨模塊敏捷原則:單一職責(zé)原則實(shí)例:UIApplication sharedApplication。注意事項(xiàng):確保使用者只能通過 getInstance方法才能獲得,單例類的唯一實(shí)例。java,C+中使其沒有公有構(gòu)造函數(shù),私有化并覆蓋其構(gòu)造函數(shù)。object c中,重寫allocWithZone方法,保證即使用戶用 alloc方法直接創(chuàng)建單例類的實(shí)例,返回的也只是此單例類的唯一靜態(tài)變量。(五)策略模式應(yīng)用場景:定義算法族,封裝起來,使他們之間可以相互替換。優(yōu)勢:使算法的變化獨(dú)立于使用算法的用戶敏捷原則:接口隔離原則;多用組合,少用繼承;針對接口編程,而非實(shí)現(xiàn)。實(shí)例:排序算法,NSArray的sortedArrayUsingSelector;經(jīng)典的鴨子會叫,會飛案例。注意事項(xiàng):1,剝離類中易于變化的行為,通過組合的方式嵌入抽象基類2,變化的行為抽象基類為,所有可變變化的父類3,用戶類的最終實(shí)例,通過注入行為實(shí)例的方式,設(shè)定易變行為防止了繼承行為方式,導(dǎo)致無關(guān)行為污染子類。完成了策略封裝和可替換性。(六)工廠模式應(yīng)用場景:工廠方式創(chuàng)建類的實(shí)例,多與proxy模式配合,創(chuàng)建可替換代理類。優(yōu)勢:易于替換,面向抽象編程,application只與抽象工廠和易變類的共性抽象類發(fā)生調(diào)用關(guān)系。敏捷原則:DIP依賴倒置原則實(shí)例:項(xiàng)目部署環(huán)境中依賴多個不同類型的數(shù)據(jù)庫時,需要使用工廠配合proxy完成易用性替換注意事項(xiàng):項(xiàng)目初期,軟件結(jié)構(gòu)和需求都沒有穩(wěn)定下來時,不建議使用此模式,因?yàn)槠淞觿菀埠苊黠@,增 加了代碼的復(fù)雜度,增加了調(diào)用層次,增加了內(nèi)存負(fù)擔(dān)。所以要注意防止模式的濫用。2.6 第三方庫圖片異步加載:SDWebImage網(wǎng)絡(luò)通信庫AFNetworkingMKNetworkKitASIHTTPRequest6網(wǎng)絡(luò)狀態(tài)檢查:ReachabilityJSON:SBJSONJSONKitXML:TouchXMLSQLite:FMDB下拉刷新:MJRefreshSVPullToRefresh提示框:MBProgressHUD3. 功能模塊的設(shè)計這個 App 由首頁,分類圖片,靈感,關(guān)注,設(shè)置,及個人信息六個界面組成,每個界面展示的都有明確的信息,讓我們有多樣化的選擇。3.1 首頁界面的設(shè)計首頁由兩部分組成,上方由是一個滾動視圖,能夠無限滾動,并且能夠用手滑動,下方是一個列表,也能夠滑動。首頁展示的是裝修后的家居圖片,并且每張圖片都有相應(yīng)的文字作簡單的介紹。每張圖片都是能點(diǎn)擊的,點(diǎn)進(jìn)去是詳情,詳細(xì)介紹了如何裝修,及這樣裝修的好處,圖片也能都標(biāo)記為喜歡,并收集。設(shè)計流程見圖 3-1:圖 3-1 首頁設(shè)計流程首頁滾動視圖列表視圖圖片詳情已登錄未登錄編輯操作登錄界面73.2 分類界面這個界面通過分類來快速找到你想要的,房間哪個部分的裝修圖片。分為三大類:空間、局部、風(fēng)格。每個大類里面又分為許多小類,客廳、衣帽間,餐廳、廚房、衛(wèi)生間等等。點(diǎn)擊不同的分類,我們能夠進(jìn)入到不同的裝修圖片展示界面。圖片展示界面是一個列表,圖片能夠放大查看,并且也能夠進(jìn)行標(biāo)記。設(shè)計流程見圖 3-2:圖 3-2 分類界面設(shè)計流程3.3 靈感界面在這個界面上我們可以創(chuàng)建格子,能給格子命名,并給格子配上自己喜歡的圖片,能夠進(jìn)行重命名,刪除等一些編輯操作。創(chuàng)建自己喜歡的裝修方法,即靈感。在這個界面我們也能看到自己標(biāo)注過的喜歡的圖片,也能顯示有多少人喜歡了這種裝修方法,圖片點(diǎn)進(jìn)去是裝修方法的詳情,并且能夠編輯,進(jìn)行一些刪除等操作。設(shè)計流程見圖 3-3:分類空間風(fēng)格局部客廳、餐廳、廚房等現(xiàn)代、中式、日式等吊頂、陽臺、樓梯等圖片詳情編輯操作靈感靈感喜歡創(chuàng)建格子命名更換圖片刪除圖片取消喜歡查看詳情8圖 3-3 靈感界面設(shè)計流程3.4 關(guān)注界面每一種裝修方法作品都有相應(yīng)的作者,如果我們關(guān)注了這個作者,那么我們在這個界面就能看到這個作者所有的作品,作品點(diǎn)進(jìn)去也是詳情界面,每張圖片也能夠標(biāo)記為喜歡。并且,在這個界面,也能夠看見別人使用這個 APP 的動態(tài),有哪些人喜歡了哪些作品,看別人的裝修習(xí)慣是什么樣的。設(shè)計流程見圖 3-4:圖 3-4 關(guān)注界面設(shè)計流程3.5 設(shè)置界面這個界面顯示自己的頭像,昵稱。在這個界面我們可以清空緩存,關(guān)于這個APP 的介紹,以及意見反饋,退出登錄。設(shè)計流程見圖 3-5:關(guān)注熱門關(guān)注列表試圖列表試圖圖片詳情編輯操作設(shè)置頭像昵稱清空緩存給我評分意見反饋關(guān)于退出登錄9圖 3-5 設(shè)置界面設(shè)計流程4. 功能模塊的具體實(shí)現(xiàn)見每個界面的具體實(shí)現(xiàn)根據(jù)設(shè)計圖來做,包括各個界面之間的切換和每個界面的具體介紹及代碼編寫。4.1 各個界面之間的切換各個界面之間通過側(cè)邊欄來進(jìn)行切換,點(diǎn)擊相應(yīng)的按鈕可以進(jìn)入到相應(yīng)的界面,上圖即為效果圖,側(cè)邊欄用到了 ZYMenuController 這個第三方框架,將ZYMenuController 的對象作為 window 的根視圖,代碼實(shí)現(xiàn)為:ZYFirstViewController * firstViewController = ZYFirstViewController alloc initautorelease;UINavigationController * nav = UINavigationController alloc initWithRootViewController:firstViewController autorelease;ZYMenuController * menu = ZYMenuController alloc initWithRootViewController:nav leftViewController:leftViewController rightViewController:nil;self.window.rootViewController = menu;self.window makeKeyAndVisible;視圖使用 tableView 寫的,能夠滑動,增強(qiáng)了用戶的體驗(yàn)_tableView = UITableView alloc initWithFrame:CGRectMake(0, 120, self.view.frame.size.width, self.view.frame.size.height - 150);_tableView.delegate = self;_tableView.dataSource = self;_tableView.backgroundColor = UIColor clearColor;_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;self.view addSubview:_tableView;_tableView release;實(shí)際測試效果圖見圖 4-1:10圖 4-1 界面切換效果4.2 首頁界面的具體實(shí)現(xiàn)邏輯及代碼(1)首頁界面首頁上方是一個能夠無限循環(huán)滾動的滾動視圖,用的 scrollView 實(shí)現(xiàn),將button 加到 scrollView 上面,可點(diǎn)擊,并也能夠用手滑動。下方用 tableView實(shí)現(xiàn),是一個列表視圖。將上方的 scrollView 和下方的 tableView 放到一個大的 scrollView 上面,實(shí)現(xiàn)整個界面都能夠滑動。tableView 是自定義的,能夠滿足設(shè)計的需求。代碼實(shí)現(xiàn)為:/創(chuàng)建大scrollView_bigScrollView = UIScrollView allocinitWithFrame:CGRectMake(0,0, 320, self.view.frame.size.height);_bigScrollView.delegate = self;self.view addSubview:_bigScrollView;/屏幕上方的小scrollViewHttpEngine getAdvertisingRequestWithCompletionBlock:(NSMutableArray *array) self.scrollDataArray = array;_scrollView = UIScrollView alloc initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 160);/ _scrollView.backgroundColor = UIColor redColor;_scrollView.delegate = self;11_scrollView.pagingEnabled = YES;_scrollView.contentSize = CGSizeMake(self.view.frame.size.width*self.scrollDataArray.count, 170);_bigScrollView addSubview:_scrollView;實(shí)際測試效果圖見圖 4-2-1:圖 4-2-1 首頁效果(2)詳情界面 詳情界面主要使用自定義 tableView 實(shí)現(xiàn),第一區(qū)顯示的是大標(biāo)題和作者的頭像、昵稱及時間。第二區(qū)顯示的 簡介,是對這個裝修方法的簡單介紹,并且這個高度要根據(jù)文字的多少自適應(yīng)高度。第三區(qū)顯示的是圖片,即裝修后的效果圖。代碼實(shí)現(xiàn)為:-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)12cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“;UIImageView * imageView = UIImageView alloc init;imageView.tag = 1;cell addSubview:imageView;imageView release;/根據(jù)文字多少算高度- (float)stringHeightWithString:(NSString *)string/ 計算文字寬高float height = string boundingRectWithSize:CGSizeMake(270, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:NSFontAttributeName:UIFont systemFontOfSize:14 context:nil.size.height;/ 向上取整return ceilf(height);實(shí)際測試效果圖見圖 4-2-2:圖 4-2-2 詳情界面效果134.3 分類界面從這個界面里能通過具體的分類來找到自己需要的裝修設(shè)計圖,并且能將這些裝修圖片能夠標(biāo)記為喜歡。(1) 分類首頁這個頁面總共分為三個大區(qū),即空間、局部、風(fēng)格。自己想看什么樣的效果可從分類界面里面詳細(xì)的選擇,每一種都有不同的風(fēng)格,讓你有多樣化的選擇。通過自定義 tableView 實(shí)現(xiàn)。隱藏了系統(tǒng)自帶的分割線,自己實(shí)現(xiàn)分割線這個功能。圖片和文字放到一個數(shù)組里面,作為 tableView 的數(shù)據(jù)源數(shù)組-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“ autorelease;/自定義imageView與label,否則圖片太大UIImageView * imageView = UIImageView alloc initWithFrame:CGRectMake(10, 8, 30, 30);imageView.tag = 1;cell addSubview:imageView;imageView release;UILabel * label = UILabel alloc initWithFrame:CGRectMake(50, 5, 100, 30);label.tag = 2;cell addSubview:label;label release;UIImageView * imageView = (UIImageView *)cell viewWithTag:1;UILabel * label = (UILabel *)cell viewWithTag:2;label.text = self.textArrayindexPath.sectionindexPath.row;imageView.image = UIImage imageNamed:self.imageArrayindexPath.sectionindexPath.row;cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;return cell;實(shí)際測試效果圖見圖 4-3-1:14圖 4-3-1 分類首頁效果(2)分類圖片界面通過兩豎排的圖片更為直觀的來展示各種各樣的裝修樣式。從服務(wù)器獲得數(shù)據(jù)后,將數(shù)據(jù)分為兩個數(shù)組,每一個數(shù)組作為每一豎排的數(shù)據(jù)源數(shù)組,自定義tableView 實(shí)現(xiàn)。HttpEngine getClassImageRequsetWithCategoryId:self.cate TagId:self.tag CompletionBlock:(NSMutableArray *array) self.dataArray = array;/ NSLog(“%“,self.dataArray);/將self.dataArray分到兩個數(shù)組中,分別為cell上兩個button的圖片數(shù)據(jù)網(wǎng)址for(int i=0;iself.dataArray.count;i+)if(i%2=0)self.button1DataArray addObject:self.dataArrayi;elseself.button2DataArray addObject:self.dataArrayi;_tableView =UITableView alloc initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64);15_tableView.delegate = self;_tableView.dataSource = self;self.view addSubview:_tableView;_tableView release;return cell;實(shí)際測試效果圖見圖 4-3-2:圖 4-3-2 分類圖片界面效果4.4 靈感界面這個界面包括靈感和喜歡兩個界面,靈感喜歡界面能夠?qū)⒆约红`感展示出來,喜歡界面能夠看到自己已經(jīng)標(biāo)記為喜歡的圖片(1) 靈感界面靈感界面展示的是自己創(chuàng)作的一些靈感,點(diǎn)擊第一個方框即可以創(chuàng)建格子,將自己喜歡的裝修圖片放到格子上面。靈感和喜歡這兩個界面的實(shí)現(xiàn)共用的時同16一個試圖控制器,點(diǎn)擊上面的按鈕時,現(xiàn)將原有的視圖移除,再將將要顯示的視圖添加到視圖控制器上,從而實(shí)現(xiàn)這樣的效果_seg = UISegmentedControl alloc initWithItems:segArray;_seg addTarget:self action:selector(segClick:) forControlEvents:UIControlEventValueChanged;_seg.selectedSegmentIndex = 0;_seg.tintColor = UIColor redColor;self.navigationItem.titleView = _seg;self.viewController = ZYGeziViewController alloc init;self.view addSubview:self.viewController.view;-(void)segClick:(UISegmentedControl *)segif(seg.selectedSegmentIndex = 0)for(UIView * view in self.view.subviews)view removeFromSuperview;self.navigationItem.rightBarButtonItem = UIBarButtonItem alloc initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:selector(itemClick);self.viewController = ZYGeziViewController alloc init;self.view addSubview:self.viewController.view;elseself.viewController = ZYLikeViewController alloc init;self.view addSubview:self.viewController.view;self.navigationItem.rightBarButtonItem = nil;實(shí)際測試效果圖見圖 4-4-1:17圖 4-4-1 靈感界面效果(2)喜歡界面在這個界面我們能看到自己所喜歡的裝修樣式圖片,以及共有多少人喜歡了這個裝修樣式,并且能夠編輯,即刪除。這個界面通過自定義 tableview 實(shí)現(xiàn):-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“ autorelease;/ UIImageView * imageView2 = UIImageView alloc initWithFrame:CGRectMake(10, imageView.frame.size.height, 60, 25);/ imageView2.tag = 3;18/ imageView2.image = UIImage imageNamed:“v110_04Class_liked_b.png“;/ cell addSubview:imageView2;ZYLikedPicList * picList = self.dataArrayindexPath.row;NSLog(“%f“,picList.picId);UIImageView * imageView = (UIImageView *)cell viewWithTag:1;UILabel * label = (UILabel *)cell viewWithTag:2;ZYCustonButton * button = (ZYCustonButton *)cell viewWithTag:3;button.tag = picList.picId;button addTarget:self action:selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside;button setBackgroundImage:UIImage imageNamed:“v110_04Class_liked_b.png“ forState:UIControlStateNormal;imageView setImageWithURL:NSURL URLWithString:picList.picUrl placeholderImage:UIImage imageNamed:“v1_de_nopic2x.png“;label.text = NSString stringWithFormat:“%d 人喜歡了“,(int)picList.likeTimes;return cell;實(shí)際測試效果圖見圖 4-4-2:圖 4-4-2 喜歡界面效果4.5 關(guān)注界面這個界面能過獲得不同的人使用這個 APP 的實(shí)時動態(tài),比如某個人關(guān)注了某19個裝修方法圖片,通過這個界面我們就能看到這個人得昵稱、頭像及裝修的圖片。這個界面的實(shí)現(xiàn)原理和靈感界面大體相似。不過使用的同一個控制器,不同的界面上刷新不同的數(shù)據(jù),也是通過自定義 tableview 實(shí)現(xiàn)的_tableView addPullToRefreshWithActionHandler:NSLog(“下拉刷新“);currentIndex = 0;self requestData;_tableView addInfiniteScrollingWithActionHandler:NSLog(“上拉加載“);currentIndex +;self requestData;/首次進(jìn)入刷新狀態(tài)_tableView triggerPullToRefresh;-(void)requestDataif(_seg.selectedSegmentIndex = 0)NSLog(“qqq“);HttpEngine getHotInfoRequestWithpage:(currentIndex+1) CompletionBlock:(NSMutableArray *array)if (currentIndex = 0)self.dataArray removeAllObjects;self.dataArray addObjectsFromArray:array;/ NSLog(“%d %d“,self.dataArray.count,array.count);_tableView reloadData;實(shí)際測試效果圖見圖 4-5-1:20圖 4-5-1 關(guān)注界面效果4.6 設(shè)置界面這個界面展示了用戶的頭像,昵稱,還有一些 APP 的常用功能,即清空緩存,版本檢測,評分,關(guān)于 APP 等。通過自定義 tableview 實(shí)現(xiàn)。-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathif(indexPath.section =0)ZYPersonViewController * personController = ZYPersonViewController alloc init;personController.personInfo = self.personInfo;self.navigationController pushViewController:personController animated:YES;personController release;if(indexPath.section = 2)if(indexPath.row=2)21ZYPingeViewController * viewController = ZYPingeViewController alloc init;self.navigationController pushViewController:viewController animated:YES;實(shí)際測試效果圖見圖 4-6-1圖 4-6-1 設(shè)置界面效果5. 系統(tǒng)測試5.1 測試目的在項(xiàng)目完成后進(jìn)行系統(tǒng)測試,可以保證所開發(fā)應(yīng)用的流暢性、無措性、滿足需求性。系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進(jìn)行的測試,過程中發(fā)現(xiàn)問題之后,需要開發(fā)人們找出錯誤原因和位置并改正。也不僅僅是為了發(fā)現(xiàn)系統(tǒng)缺陷和錯誤,也是為了對系統(tǒng)整體質(zhì)量水平進(jìn)行度量和評估。在開發(fā)軟件系統(tǒng)的過程中,可能需要面對許多復(fù)雜繁瑣的問題,在軟件開發(fā)生存周期的每個階段都會不可避免的產(chǎn)生錯誤。開發(fā)人員要在每個階段完成之前進(jìn)行嚴(yán)格的技術(shù)審查,盡可能早的發(fā)現(xiàn)并糾正錯誤,以達(dá)到晚上的效果。225.2 測試方法測試程序運(yùn)用最多就是所謂的白盒測試和黑盒測試了。白盒測試就是對軟件系統(tǒng)的相關(guān)代碼進(jìn)行詳細(xì)的測試,查看代碼的正確性和書寫規(guī)則是否正確等。黑盒測試是根據(jù)軟件的規(guī)格進(jìn)行的測試,黑盒測試和白盒測試正好相反,不需要考慮軟件內(nèi)部的組成結(jié)構(gòu),只需要對軟件整體進(jìn)行測試。黑盒測試需要軟件測試人員從用戶的角度來進(jìn)行各項(xiàng)功能測試,來檢測系統(tǒng)的可行性和可操作性,同時觀察軟件中存在的各種錯誤和缺陷。黑盒測試的方法使測試人員只關(guān)心系統(tǒng)是否能夠滿足用戶的需求以及各種需求是如何實(shí)現(xiàn)的,并不關(guān)心系統(tǒng)的設(shè)計過程。對于本 APP 的測試,主要從以下幾個方面進(jìn)行:(1)代碼測試:這款裝修家居 APP 的代碼測試采用的是正常數(shù)據(jù)、異常數(shù)據(jù)和錯誤數(shù)據(jù)輪換進(jìn)行測試的方法。例如:在意見反饋界面輸入正確的文字、輸入很大量的文字、或?qū)D片當(dāng)成內(nèi)容添加到輸入框里,查看程序的運(yùn)行情況。經(jīng)檢測,代碼的正確性和書寫規(guī)范都符合要求,達(dá)到了預(yù)期的效果。(2)程序功能測試:對這款 APP 進(jìn)行大量的相同內(nèi)容的操作,禁行基本功能的體驗(yàn),查看是否完成了基本功能。經(jīng)過測試,本 APP 的基本功能運(yùn)行正常,符合項(xiàng)目的設(shè)計需求。(3)分調(diào)和總調(diào)結(jié)合測試:該測試時貫穿于整個系統(tǒng)測試思想中的,從開始涉及每一個功能模塊開始,到最終完成系統(tǒng)的整體功能模塊設(shè)計,整個過程中,針對每個功能模塊進(jìn)行適當(dāng)?shù)臏y試與修改,最后再將所有功能模塊集成在整個系統(tǒng)中進(jìn)行綜合測試。23小結(jié)本 APP 采 用 OC 語 言 編 寫 , 以 Xcode 為 開 發(fā) 工 具 , 遵 循 Http 通 信 協(xié) 議 ,采 用 MVC 設(shè) 計 模 式 設(shè) 計 實(shí) 現(xiàn) 的 。這 個 APP 的 功 能 基 本 滿 足 了 用 戶 的 所 有 需 求 , 但 是 還 有 一 些 不 完 善 的 地方 , 比 如 這 個 APP 沒 有 推 送 功 能 , 無 法 增 強(qiáng) 用 戶 的 粘 合 性 ; 分 類 界 面 用 戶 無法 通 過 搜 索 功 能 來 搜 索 自 己 想 要 的 裝 修 方 式 , 所 以 后 期 還 需 要 做 很 多 的 工 作來 完 善 這 個 應(yīng) 用 。 這 個 APP 的 實(shí) 現(xiàn) 不 僅 僅 是 對 自 己 的 學(xué) 習(xí) 成 果 的 檢 驗(yàn) , 更 是最 自 己 的 一 個 提 升 。 有 很 多 功 能 只 有 自 己 親 身 實(shí) 現(xiàn) 出 來 才 能 更 好 理 解 這 個 知識 , 讓 自 己 的 能 力 得 到 提 升 。 比 如 在 詳 情 界 面 中 , 有 兩 種 表 , 一 種 是 文 字 性的 , 一 種 是 圖 片 性 的 , 當(dāng) 重 用 這 兩 種 表 時 怎 么 區(qū) 分 就 不 清 楚 了 。 因 此 , 還 要多 加 練 習(xí) 才 能 彌 補(bǔ) 自 己 在 動 手 能 力 上 的 缺 陷 , 更 加 完 善 自 己 的 程 序 功 能 。參考文獻(xiàn)1 Apple Developer,Apple 文檔。2 張亦航,iOS 開發(fā)系列之 C/Objective-C 語言基礎(chǔ),北京:北京人民出版社,20113 美 stephenG.Kochan. Programming in Objective-C 2.0M ,北京:機(jī)械工業(yè)出版社 20104 美Aaron Hillegas. 蘋果開發(fā)之 Cocoa 編程M ,北京:電子工業(yè)出版社.20145 曾源.IOS 編程實(shí)戰(zhàn)寶典M,北京:清華大學(xué)出版社 20146 高俊峰.循序漸進(jìn)服務(wù)器基本知識M,北京:機(jī)械工業(yè)出版社 201324致謝從畢業(yè)設(shè)計的選題、任務(wù)書的書寫、畢業(yè)設(shè)計階段到畢業(yè)論文的完成,這長達(dá)半年的時間里,使我對系統(tǒng)開發(fā)的整個流程有了更深刻的認(rèn)識,對本專業(yè)的基本理論、專業(yè)知識和基本技術(shù)進(jìn)行了梳理,并有了更深入的了解,使我在四年中所學(xué)到的知識得到了升華,真正達(dá)到了學(xué)以致用。歲月如梭,如歌。轉(zhuǎn)眼間,四年的大學(xué)求學(xué)生活即將結(jié)束,站在畢業(yè)的門檻上,回首往昔,奮斗和辛勞成為絲絲的記憶,甜美與歡笑也都塵埃落定。河南科技學(xué)院以其優(yōu)良的學(xué)習(xí)風(fēng)氣、嚴(yán)謹(jǐn)?shù)目蒲蟹諊涛仪髮W(xué),以其博大包容的情懷胸襟、浪漫充實(shí)的校園生活育我成人。值此畢業(yè)論文完成之際,我謹(jǐn)向所有關(guān)心、愛護(hù)、幫助我的人們表示最誠摯的感謝與最美好的祝愿。本次畢業(yè)設(shè)計是在洪新華老師指導(dǎo)下完成的。在設(shè)計過程中,洪老師仔細(xì)耐心地對我的畢業(yè)設(shè)計任務(wù)及內(nèi)容進(jìn)行及時指導(dǎo),并在最后對成果系統(tǒng)的設(shè)計說明書做出了全面、合理、仔細(xì)得修改批注,竭盡全力幫助我完成本次的畢業(yè)設(shè)計任務(wù)。在這里,忠心表示對洪老師的悉心關(guān)懷和耐心指導(dǎo)的無限感謝與感恩。更重要的是,在設(shè)計的過程,洪老師所具備的嚴(yán)謹(jǐn)求真為學(xué)的務(wù)實(shí)精神,也是我之后無論是在學(xué)習(xí)還是在工作中的學(xué)習(xí)榜樣。最后,我要衷心感謝各位老師和同學(xué)們在我的設(shè)計過程中給予我的極大幫助使我能夠及時、順利地完成此次的畢業(yè)設(shè)計。最后再一次在這里也對所有教過我的老師們表示衷心的感謝- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 畢業(yè)設(shè)計 論文 基于 IOS 開發(fā) 裝修 家居 APP 設(shè)計 實(shí)現(xiàn)
鏈接地址:http://m.italysoccerbets.com/p-442523.html