第一篇:ios轉(zhuǎn)正申請(qǐng)書
ios轉(zhuǎn)正申請(qǐng)書
尊敬的領(lǐng)導(dǎo):
我于XX年7月4日進(jìn)入公司,根據(jù)公司的需要,加入了XXX部,加入了XXX項(xiàng)目組,目前擔(dān)任java程序員一職。到今天2個(gè)月試用期已滿,根據(jù)公司的規(guī)章制度,現(xiàn)申請(qǐng)轉(zhuǎn)為公司正式員工。
軟件開發(fā)是我大學(xué)以來的志向,公司給了我這個(gè)機(jī)會(huì),讓我的夢(mèng)想得以實(shí)現(xiàn),這也是我職業(yè)生涯的一個(gè)起點(diǎn),我十分珍惜。初到公司我曾擔(dān)心自己不知道該怎么與項(xiàng)目組的同事溝通,擔(dān)心不知道怎么做好工作,但是項(xiàng)目組的前輩們都很親切,也很耐心的教導(dǎo)我,解答我的疑問,以及他們團(tuán)結(jié)向上的精神,讓我很快的熟悉了工作,融入了項(xiàng)目組。通過兩個(gè)月的不斷學(xué)習(xí),在項(xiàng)目開發(fā)中的不斷鍛煉以及同事、領(lǐng)導(dǎo)的幫助,我已逐漸融入這個(gè)大家庭,個(gè)人的工作技能也有了明顯的提升,雖然仍有不足,但是收獲了不少,我感覺自己成長了,也逐漸成熟了?,F(xiàn)將工作情況簡要總結(jié)如下:
1.我主要在系統(tǒng)軟件事業(yè)部進(jìn)行軟件開發(fā)和熟悉公司業(yè)務(wù)流程,初來乍到,對(duì)公司還有很多不熟悉的地方,但是在領(lǐng)導(dǎo)和同事的耐心指導(dǎo)下,使我在較短的時(shí)間內(nèi)適應(yīng)了公司的工作環(huán)境,也熟悉了公司的部分業(yè)務(wù)流程。
2.熟悉了公司現(xiàn)有項(xiàng)目主要使用的技術(shù)及開發(fā)框架,能迅速上手開發(fā)。
3.通過參與XXX系統(tǒng)、XXX系統(tǒng)兩個(gè)項(xiàng)目的開發(fā),現(xiàn)已能獨(dú)立完成領(lǐng)導(dǎo)交付的任務(wù)。
4.項(xiàng)目基本流程、業(yè)務(wù)種類,有了相關(guān)的掌握與了解。
5.按時(shí)按量的自己給自己分配當(dāng)天應(yīng)當(dāng)完成的任務(wù),保證項(xiàng)目的進(jìn)度。在這兩個(gè)月的學(xué)習(xí)和工作中,我一直嚴(yán)格要求自己,遵循公司的規(guī)章制度,認(rèn)真完成領(lǐng)導(dǎo)布置的每一項(xiàng)任務(wù),遇到的問題虛心的向項(xiàng)目組的前輩們學(xué)習(xí)、請(qǐng)教,不斷的提高、充實(shí)自己。開發(fā)過程中出現(xiàn)的一些問題,前輩們會(huì)耐心的指出和指導(dǎo)我修改,這些經(jīng)歷讓我不斷成熟,處理問題時(shí)考慮得更全面,避免類似情況的再次發(fā)生。在此我要特地感謝部門的領(lǐng)導(dǎo)和同事們對(duì)我的指引和幫助,感謝他們對(duì)我工作上失誤的提醒和指正。
經(jīng)過這兩個(gè)月,我已經(jīng)能獨(dú)立進(jìn)行開發(fā)任務(wù),按時(shí)按質(zhì)的完成分配的工作任務(wù),當(dāng)然還有許多不足,開發(fā)的經(jīng)驗(yàn)仍有待提高,編寫代碼的簡潔性和完整性也
需要進(jìn)一步增強(qiáng),需要不斷的繼續(xù)學(xué)習(xí)以提高自己的工作能力。
總之,這兩個(gè)月來我學(xué)到了很多,感悟了很多??吹焦镜难杆侔l(fā)展,看到部門的同事越來越多,我深深地感到驕傲和自豪,也更加迫切的希望以一名正式員工的身份在這里工作,實(shí)現(xiàn)自己的奮斗目標(biāo),體現(xiàn)自己的人生價(jià)值,和公司一起成長。
在此我提出轉(zhuǎn)正申請(qǐng),希望自己能成為公司的正式員工,懇請(qǐng)領(lǐng)導(dǎo)給我繼續(xù)鍛煉自己、實(shí)現(xiàn)理想的機(jī)會(huì)。我會(huì)用謙虛的態(tài)度和飽滿的熱情做好我的本職工作,為公司創(chuàng)造價(jià)值,同公司一起展望美好的未來!
此致
敬禮 申請(qǐng)人:XXX XX年9月3日
尊敬的領(lǐng)導(dǎo):
我于XXXX年X月X日進(jìn)入公司,根據(jù)公司的需要,目前擔(dān)任Android軟件工程師 一職,負(fù)責(zé) XXX的開發(fā)工作。到今天3個(gè)月試用期已滿,根據(jù)公司的規(guī)章制度,現(xiàn)申請(qǐng)轉(zhuǎn)為公司正式員工。軟件開發(fā)是我自幼以來的志向,公司給了我這個(gè)工作,讓我的夢(mèng)想得以實(shí)現(xiàn),也是我職業(yè)生涯的一個(gè)起點(diǎn),我十分珍惜。通過三個(gè)月的不斷學(xué)習(xí),在項(xiàng)目開發(fā)中的不斷鍛煉以及同事、領(lǐng)導(dǎo)的幫助,我已逐漸融入這個(gè)大家庭,個(gè)人的工作技能也有了明顯的提高,雖然仍有一些不足,但三個(gè)月以來我付出了不少,也收獲了不少,我感覺自己成長了,也逐漸成熟了。
初到公司,加入了XXXX部,加入了 XXXX 項(xiàng)目組,我也曾擔(dān)心自己不知道該怎么與項(xiàng)目組的同事溝通,擔(dān)心不知道怎么做好工作,但是項(xiàng)目組的前輩們都很親切,也很耐心的教導(dǎo)我,解答我的疑問,以及他們團(tuán)結(jié)向上的精神,讓我很快的熟悉了工作,融入了項(xiàng)目組。在這三個(gè)月的學(xué)習(xí)和工作中,我一直嚴(yán)格要求自己,遵循公司的規(guī)章制度,認(rèn)真完成領(lǐng)導(dǎo)布置的每一項(xiàng)任務(wù),遇到的問題虛心的向項(xiàng)目組的前輩們學(xué)習(xí)、請(qǐng)教,不斷的提高、充實(shí)自己。開發(fā)過程中出
現(xiàn)的一些差錯(cuò),也有前輩們耐心的指出和指導(dǎo)我修改,這些經(jīng)歷讓我不斷成熟,處理問題時(shí)考慮得更全面,杜絕類似情況的發(fā)生。在此我要特地感謝部門的領(lǐng)導(dǎo)和同事們對(duì)我的指引和幫助,感謝他們對(duì)我工作上失誤的提醒和指正。經(jīng)過這三個(gè)月,我已經(jīng)能獨(dú)立進(jìn)行開發(fā)任務(wù),按時(shí)按質(zhì)的完成分配的工作任務(wù),當(dāng)然還有許多不足,開發(fā)的經(jīng)驗(yàn)仍有待提高,編寫代碼的簡潔性和完整性也需要進(jìn)一步增強(qiáng),需要不斷的繼續(xù)學(xué)習(xí)以提高自己的工作能力。
總之,這三個(gè)月來我學(xué)到了很多,感悟了很多;看到公司的迅速發(fā)展,看到部門的同事越來越多,我深深地感到驕傲和自豪,也更加迫切的希望以一名正式員工的身份在這里工作,實(shí)現(xiàn)自己的奮斗目標(biāo),體現(xiàn)自己的人生價(jià)值,和公司一起成長。
在此我提出轉(zhuǎn)正申請(qǐng),懇請(qǐng)領(lǐng)導(dǎo)給我繼續(xù)鍛煉自己、實(shí)現(xiàn)理想的機(jī)會(huì)。我會(huì)用謙虛的態(tài)度和飽滿的熱情做好我的本職工作,為公司創(chuàng)造價(jià)值,同公司一起展望美好的未來!申請(qǐng)人:XX XXXX年X月X日
第二篇:ios畢業(yè)論文
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
摘 要
隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)和Internet的飛速發(fā)展,基于因特網(wǎng)的手機(jī)移動(dòng)應(yīng)用已經(jīng)開始成為一種全新的功能需求,并且越來越受到人們的關(guān)注。由于移動(dòng)應(yīng)用具有簡單性,隨時(shí)隨地性等諸多特點(diǎn),因此它有著傳統(tǒng)計(jì)算機(jī)所無法比擬的優(yōu)點(diǎn)。這樣一來,手機(jī)移動(dòng)應(yīng)用的開發(fā)工作就顯得尤為重要,開發(fā)出一個(gè)集合手機(jī)應(yīng)用的“商店”極為重要,近年來iphone手機(jī)在中的發(fā)展趨勢(shì)日趨上升,iphone手機(jī)保密性很強(qiáng),很多東西都不對(duì)外開放,愛限免手機(jī)app就是針對(duì)iphone手機(jī)而開發(fā)的一款手機(jī)應(yīng)用,日趨擴(kuò)大的市場(chǎng)也使得應(yīng)用于iphone手機(jī)的app開發(fā)日趨緊迫,可以說愛限免的開發(fā)不僅是客戶的需求更是市場(chǎng)的需求。
愛限免項(xiàng)目的開發(fā)使用了iphone自己研發(fā)的開發(fā)軟件xcode6.0,主要有UIkit框架和Foundation框架組成。愛限免的項(xiàng)目開發(fā),對(duì)數(shù)據(jù)進(jìn)行展示主要應(yīng)用列表控制器UIableview,在使用UItableview是對(duì)cell的復(fù)用是此技術(shù)的難點(diǎn),主要避免在cell復(fù)用是出現(xiàn)內(nèi)存泄露狀況而導(dǎo)致的程序崩潰,數(shù)據(jù)的獲取應(yīng)用了AFHttpNetWork第三方庫,對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行g(shù)et獲取,把獲取的數(shù)據(jù)用數(shù)據(jù)模型接收,這樣有利于降低耦合性,是程序更順暢。在對(duì)數(shù)據(jù)保存時(shí)用到了FMDB第三方數(shù)據(jù)庫,此數(shù)據(jù)庫的底層也是對(duì)squlite的封裝,是開發(fā)者應(yīng)用起來更順手簡介,提高效率,界面之間的數(shù)據(jù)傳輸難點(diǎn)blcok的應(yīng)用,這點(diǎn)要求開發(fā)者對(duì)block有比較深刻的理解,以及應(yīng)用熟練度。關(guān)鍵詞:ios,squlite,block,應(yīng)用,控件
I
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
Abstract
With the rapid development of computer network communication technology and the Internet, based on Internet mobile phone application has begun to become a kind of new functional requirements, and people have paid more and more attention.Because of its simplicity, anytime, anywhere, etc., it has the advantages that the traditional computer can't match..In this way, the mobile application development work is particularly important, the development of a collection of mobile application store “is very important, in recent years the iPhone in the development trend is rising day by day, iPhone mobile phone security is very strong, a lot of things are not open to the public, love limit free mobile app is for the iPhone and the development of a mobile application, widening the market also make the application to iPhone app development is becoming more and more urgent, you can love limit free development is not only the needs of customers is the demand of the market
The development of love limited free project use of iPhone own R & D software xcode6.0, mainly UIkit framework and Foundation framework.Love free for a limited time of project development, the data for display of the main application list controller UIableview, in the use of UItableview is reuse of the cell is the difficulty of this technology, mainly to avoid memory leak condition, which leads to the program crashes in the cell multiplexing and data acquisition application the AFHttpNetWork third-party libraries, the network data to get access to, to get the data model data receiving, which help to reduce coupling is process smoother.In to save the data used in the FMDB database of the third party, the bottom of this database is to squlite package is more comfortable profile application developers, improve efficiency, application of interface between data transmission difficulties blcok, this requires developers to more profound understanding of block, as well as the application of proficiency Keywords: IOS, squlite, block, application, control II
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
目 錄
摘 要............................................................I 第一章 前 言.....................................................1
1.1 課題開發(fā)背景................................................1 1.2 愛限免手機(jī)app框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義........................2 1.3 國內(nèi)外研究狀況..............................................2 1.4 論文內(nèi)容和結(jié)構(gòu)..............................................3 第2章 愛限免手機(jī)應(yīng)用開發(fā)技術(shù)簡介.................................5
2.1 Objective-c簡介.............................................5 2.1.1 ios系統(tǒng)框架...........................................6 2.1.2核心操作系統(tǒng)層和核心服務(wù)層.............................7 2.1.3應(yīng)用程序框架...........................................8 2.2 SQLite數(shù)據(jù)庫介紹............................................9 2.3 XCode......................................................10 第3章 愛限免手機(jī)應(yīng)用app需求分析................................11
3.1 愛限免手機(jī)應(yīng)用app的可行性分析.............................11 3.2 愛限免手機(jī)應(yīng)用app功能需求分析.............................13 3.2.1 功能需求..............................................14 第4章 愛限免手機(jī)應(yīng)用app設(shè)計(jì)....................................16
4.1 模塊功能設(shè)計(jì)...............................................16 4.1.1 限免模塊..............................................16 4.2.1 免費(fèi)模塊..............................................21 4.2.2 專題模塊..............................................26 4.2.3 分享功能模塊..........................................30 4.2.4 收藏功能模塊..........................................32 4.2.5 搜索功能模塊..........................................36 第5章 系統(tǒng)測(cè)試..................................................38
5.1 功能模塊測(cè)試...............................................38 5.2 功能整體測(cè)試...............................................39 總結(jié)與展望.......................................................40
總結(jié)...........................................................40
III
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
展望...........................................................41 參考文獻(xiàn).........................................................43 謝 辭...........................................................44
IV
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
第一章 前 言
1.1 課題開發(fā)背景
如今移動(dòng)開發(fā)產(chǎn)業(yè)讓人眼花繚亂,主要的開飯平臺(tái)有:iOS(iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS/Javascript)。Android以其開放性,多任務(wù),大功能,畫面流暢,硬件設(shè)備優(yōu)良多樣等各種優(yōu)點(diǎn),占智能機(jī)一大部分;然而它也存在著很明顯的不足,如:兼容性差,各種機(jī)型的配置不一樣,以至于開發(fā)的時(shí)候出現(xiàn)各種版本。有些產(chǎn)品華而不實(shí),用戶體驗(yàn)差。Symbian主要基于C語言的應(yīng)用開發(fā),支持多線程運(yùn)行模式,但是開發(fā)代碼量過大給開發(fā)人員造成很大的不便,另外塞班版本之間兼容性差也是SymbianOS需要改進(jìn)的一個(gè)地方。就目前而言,三大平臺(tái)(Android、Symbian、BlackBerry)的市場(chǎng)占有率也在逐漸下降,iOS呈現(xiàn)平穩(wěn)上升趨勢(shì)。
1.App Store的支付模式成熟
App Store的成熟不僅僅是商業(yè)模式的創(chuàng)新,更重要的是無法模仿,經(jīng)過長時(shí)間的運(yùn)營,App Store已經(jīng)形成完備的支付模式,被大部分用戶接受。
2.iOS是用Objective-C開發(fā)
從全球的編程語言排行榜來看,雖然,Objective-C只有蘋果公司一家使用,但是已經(jīng)排名第4,可見iOS開發(fā)的普及性和受歡迎程度,另外,objective-c是對(duì)c語言的封裝,既沒有了c語言寫程序的繁瑣復(fù)雜性,又兼顧了c語言的高效率,這也使得objective-c語言在編程語言中的地位以及受歡迎度日益上升的一個(gè)因素。
3.Iphone性能優(yōu)越
蘋果iPhone以及所有蘋果的硬件軟件策略和控制讓蘋果在用戶體驗(yàn)和控制產(chǎn)品質(zhì)量方面占盡先機(jī),大部分iOS用戶能夠同時(shí)對(duì)他們手中的設(shè)備進(jìn)行更新,這會(huì)吸引更多用戶。
4.iPhone在中國極受歡迎
中國的各大移動(dòng)運(yùn)營商都積極地與蘋果公司合作,各自推出適合中國人使用的手機(jī)套餐和應(yīng)用,比如中國聯(lián)通,中國電信等等,社會(huì)各界也對(duì)iPhone有很好的評(píng)價(jià),還有很多知名手機(jī)應(yīng)用軟件,如qq微信等也加入了app store。
5.iOS在各國開發(fā)者中有很好的學(xué)習(xí)氛圍
如facebook的three 20 iOS開源代碼庫,都是良好的學(xué)習(xí)資源,還有一些
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
前輩大牛發(fā)表的博客如博客園就是一個(gè)ios開發(fā)者很好的交流網(wǎng)站,還有一些如cocoachina里邊集合了很多開發(fā)者的心得及項(xiàng)目,國內(nèi)外的開發(fā)大牛都有在上邊發(fā)表自己的心得。也是ios開發(fā)者良好的學(xué)習(xí)資源。
1.2 愛限免手機(jī)app框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義
隨著科技的發(fā)展技術(shù)的進(jìn)步,手機(jī)的功能也出現(xiàn)了翻天覆地的變化,由原來只是打電話發(fā)短信的基本功能,轉(zhuǎn)變?yōu)楝F(xiàn)在的全功能智能手機(jī),人們對(duì)手機(jī)的要求也越來越高。
1.iphone手機(jī)中國市場(chǎng)無限擴(kuò)大
Iphone手機(jī)的性能優(yōu)越已經(jīng)不言而喻,不用就釋放也使得iphone手機(jī)避免了安卓手機(jī)卡機(jī)現(xiàn)象,然而iphone手機(jī)并不對(duì)外開源,是的其核心技術(shù)只被蘋果公司壟斷,關(guān)于iphone手機(jī)的手機(jī)應(yīng)用也是少之又少,畢竟開發(fā)者有限。因此iphone手機(jī)的app開發(fā)也是迫切的。
2.開發(fā)框架完善
Iphone應(yīng)用的開發(fā)主要平臺(tái)式有iphone公司自己研發(fā)的開發(fā)平臺(tái)xcode,是由蘋果公司的先輩大牛寫出來的,主要用于ios開發(fā)者開發(fā)軟件,集合objective-c,性能比較完善。
3.滿足市場(chǎng)
Iphone主要軟件獲取是從appStore中買或者是免費(fèi)下載,愛限免主要實(shí)現(xiàn)對(duì)iphone手機(jī)應(yīng)用的時(shí)時(shí)推薦,把a(bǔ)pp進(jìn)行條理分類,便于用戶根據(jù)個(gè)人需求獲取自己想要得到的app。
1.3 國內(nèi)外研究狀況
1.國外
第一代iPhone在2007年誕生雖然現(xiàn)在也許很難想象,但是當(dāng)?shù)谝淮鷌Phone發(fā)布的時(shí)候,它相對(duì)來說落后的特性和功能是不足以讓它直接在紙面的參數(shù)對(duì)比上勝過競(jìng)爭(zhēng)對(duì)手的。當(dāng)時(shí)的Windows Mobile, Palm OS, Symbian, 甚至是BlackBerry都是2007年間相對(duì)成熟的系統(tǒng)了,都擁有廣泛而又深厚的特性積累。相比之下,iPhone不支持3G網(wǎng)絡(luò),不支持多任務(wù)操作,也不支持第三方應(yīng)用。你沒有辦法去復(fù)制/粘貼文本,你沒有辦法在想要發(fā)送的電子郵件中添加附件。就連彩信iPhone也沒有辦法提供支持。其他方面的特性缺失還包括:Exchange郵件推送、可自定義的主屏幕、tethering、可見的全局文件管理器、Office文件編輯、語音撥號(hào)、以及對(duì)黑客和開發(fā)者所理應(yīng)由的開放性,iphone發(fā)布三個(gè) 2
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
月之后就迎來了第一次升級(jí),引入了iTunes Wi-Fi MusicStore。它允許用戶直接在iPhone上面購買音樂,它或許是許許多多iPhone新特性中因?yàn)檫\(yùn)營商網(wǎng)絡(luò)壓力或者運(yùn)營利益而遭到壓制的例子中的第一個(gè),在隨之而來的ios2解決了手機(jī)應(yīng)用問題加入了appstore,App Store同時(shí)存在于手機(jī)(AppStore應(yīng)用)和PC(iTunes)兩個(gè)地方,用戶選擇任意一種途徑都可以自由地瀏覽和安裝應(yīng)用程序。這對(duì)于過去分散性極高的移動(dòng)應(yīng)用(大部分通過web直接下載,有些應(yīng)用存在于第三方應(yīng)用商店,整體和OS的整合度較差)來說是一個(gè)巨大的變化。另外重要的是,AppStore和iTunesMusic使用一個(gè)賬號(hào),用戶無需再次輸入自己的信用卡賬號(hào)密碼。這意味著查找和安裝應(yīng)用程序?qū)⑶八从械娜菀?,這大大提高了用戶沖動(dòng)消費(fèi)的可能性,在之后的升級(jí)中也加入了自己原創(chuàng)的地圖的一些高級(jí)功能。2.國內(nèi)
隨著智能手機(jī)的大眾化,越來越多的人應(yīng)用智能手機(jī)。相對(duì)的對(duì)手機(jī)軟件的需求也就越來越多。當(dāng)今時(shí)代手機(jī)不再只是用來打電話、發(fā)短信的工具,反而對(duì)手機(jī)的娛樂功能要求越來越高。手機(jī)新聞也成為了人們的主要獲取信息途徑之一。目前中國新聞行業(yè)已經(jīng)具備了相當(dāng)?shù)囊?guī)模,并在國際市場(chǎng)上已有一定的競(jìng)爭(zhēng)力。蘋果手機(jī)作為當(dāng)今中國智能手機(jī)市場(chǎng)上不可或缺的一個(gè)品牌,基于iOS的手機(jī)軟件需求量也就相應(yīng)的越來越強(qiáng)。市場(chǎng)上的新聞品牌繁多,定位不一,基本滿足了各層次消費(fèi)者的需求,例如:騰訊新聞、搜狐新聞、網(wǎng)易新聞、新浪新聞等等這些大家所熟知的新聞已經(jīng)在蘋果軟件中占據(jù)了一定的地位。智能手機(jī)的普及使得移動(dòng)信息平臺(tái)成為了主流。伴隨著蘋果手機(jī)進(jìn)入中國市場(chǎng),相應(yīng)的iOS技術(shù)逐漸流行起來。而對(duì)于開發(fā)蘋果應(yīng)用的語言O(shè)bjective-C,也成為當(dāng)今社會(huì)最流行的開發(fā)語言,并且保持著強(qiáng)勁的上升趨勢(shì),隱隱有超過C語言的現(xiàn)象。對(duì)于其他的開發(fā)語言,例如java、javascripe,Object-C以其強(qiáng)大的優(yōu)勢(shì)遙遙領(lǐng)先于這些其他的編程語言。本人根據(jù)當(dāng)前的形式,決定引用這種這種技術(shù)來開發(fā)手機(jī)應(yīng)用。
1.4 論文內(nèi)容和結(jié)構(gòu)
本論文主要寫的是一個(gè)ios項(xiàng)目-愛限免的實(shí)現(xiàn)過程,以及一些在實(shí)現(xiàn)過程中遇到的難題,解決方法,自己在解決問題中的體悟和感受,以及對(duì)以后項(xiàng)目的完善的展望,本文把實(shí)現(xiàn)項(xiàng)目過程中的核心代碼張是給讀者看,讓讀者對(duì)我的項(xiàng)目有初步的了解,也對(duì)關(guān)鍵代碼附有文字說明以及代碼運(yùn)行后的圖片展示。具體 3
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
章節(jié)內(nèi)容如下簡介講述:
第一章,介紹了課題的開發(fā)背景、課題開發(fā)的現(xiàn)實(shí)意義、國內(nèi)外研究綜述、論文內(nèi)容及結(jié)構(gòu)。
第二章,概略地介紹了開發(fā)愛限免手機(jī)應(yīng)用多用到的各種技術(shù),比如新技術(shù)Objective-c,SQLite數(shù)據(jù)庫,開源框架的json解析等。
第三章,對(duì)愛限免系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)功能、運(yùn)行環(huán)境等概要分析設(shè)計(jì)階段做工了大體介紹即需求分析。
第四章,對(duì)系統(tǒng)總體流程設(shè)計(jì)、系統(tǒng)整體框架、后臺(tái)邏輯處理功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)作了簡要說明具體介紹了系統(tǒng)各功能實(shí)現(xiàn)過程,如分享、收藏等。
第五章,大體介紹了對(duì)本系統(tǒng)的測(cè)試工作,涵蓋了測(cè)試計(jì)劃、測(cè)試結(jié)果以及測(cè)試分析這三個(gè)方面的內(nèi)容。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
第2章 愛限免手機(jī)應(yīng)用開發(fā)技術(shù)簡介
該部分主要包括對(duì)iOS系統(tǒng)架構(gòu)的分析、核心操作系統(tǒng)的分析、應(yīng)用程序框架的分析、內(nèi)核的分析、開發(fā)環(huán)境的配置信息、選用數(shù)據(jù)庫描述信息等,具體如下:
2.1 Objective-c簡介
Objective-C是非常“實(shí)際”的語言。它使用一個(gè)用C寫成、很吊的運(yùn)行庫,只會(huì)令應(yīng)用程序的占得內(nèi)存增加很小。OC寫成的程序通常不會(huì)比其源代碼大很多。而其函數(shù)庫(通常附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大的內(nèi)存來開啟一個(gè)窗口的情況相反。Objective-C的最初版本并不支持垃圾回收。在當(dāng)時(shí)這是爭(zhēng)論的焦點(diǎn)之一,很多人考慮到Smalltalk回收時(shí)有漫長的“死亡時(shí)間”,令整個(gè)系統(tǒng)失去功用。Objective-C為避免此問題才不擁有這個(gè)功能。雖然某些第三方版本已經(jīng)加入這個(gè)功能(尤其是GNUstep),再起Mac OS X 10.3中仍未引入這個(gè)功能。不過令人欣慰的是在Apple發(fā)布的XCode4中已經(jīng)支持自動(dòng)釋放,我不敢冒昧的說那是垃圾回收,因?yàn)閮烧邫C(jī)制不同,在xCode4中的自動(dòng)釋放,也就是ARC(Automatic Reference Counting)機(jī)制,是不需要用戶手動(dòng)去Release一個(gè)對(duì)象,而是在編譯期間,編譯器會(huì)自動(dòng)幫你添加那些以前你經(jīng)常寫[NSObject release]。
另一個(gè)問題是OC不包括命名空間機(jī)制(namespace mechanism)。取而代之的是程序設(shè)計(jì)師必須在其類別名稱加上前綴,時(shí)常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有Mac OS X類別和函式均有“NS”作為前綴,例如NSobject或NSButton來清楚分別它們屬于Mac OS X核心;使用“NS”是由于這些類別的名稱在NeXTSTEP開發(fā)時(shí)定下。雖然Objective-C是C的母集,但它也不是C的基本型別為第一級(jí)的對(duì)象。和C++不同,Objective-C不支援運(yùn)算子多載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對(duì)象繼承一個(gè)類別(不設(shè)多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點(diǎn),例如額外執(zhí)行時(shí)間過重和二進(jìn)制不兼容。由于OC使用動(dòng)態(tài)運(yùn)行時(shí)類型,而且所有的方法都是函數(shù)調(diào)用(有時(shí)甚至連系統(tǒng)調(diào)用(syscalls)也如此),很多常見的編譯時(shí)性能優(yōu)化方法都不能應(yīng)用于OC(例如:內(nèi)聯(lián)函數(shù)、常數(shù)傳播、交互式優(yōu)化、純量取代與聚集等)。這使得OC性能劣于類似的對(duì)象抽象語言(如C++)。不過OC擁護(hù)者認(rèn)為既然OC運(yùn)行時(shí)消耗較大,OC本來就不應(yīng)應(yīng)用于C++或Java常見的底層抽象
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
2.1.1 ios系統(tǒng)
Cisco的網(wǎng)際操作系統(tǒng)(IOS)是一個(gè)為網(wǎng)際互連優(yōu)化的操作系統(tǒng)--類似一個(gè)局域操作系統(tǒng)(NOS)、如Novell的 NetWare,為LANs而進(jìn)行優(yōu)化。IOS為長時(shí)間有效地維護(hù)一個(gè)互聯(lián)網(wǎng)絡(luò)提供了統(tǒng)一的規(guī)則。簡而言之,它是一個(gè)與硬件分離的軟件體系結(jié)構(gòu),隨網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,可動(dòng)態(tài)地升級(jí)以適應(yīng)不斷變化的技術(shù)
IOS可以被視作一個(gè)網(wǎng)際互連中樞。一個(gè)高度智能的管理員,負(fù)責(zé)管理、控制復(fù)雜的分布式網(wǎng)絡(luò)資源。其早期版本是一個(gè)單獨(dú)系統(tǒng),基本上以路由器為中心。它被排列成一個(gè)過程(Procedure)集,允許任何過程之間相互呼叫。這種單一的結(jié)構(gòu)使數(shù)據(jù)的隱蔽性和獨(dú)立性不強(qiáng)。它的大多數(shù)操作代碼擁有結(jié)構(gòu)和操作的相關(guān)性
iPHONE是Mac出的封閉手機(jī)系統(tǒng),iPhone相對(duì)要穩(wěn)定,不開放源代碼的,擴(kuò)展相對(duì)不足,移植性很好!iPhone開發(fā)用的是Objective-C(一種C語言的第三方拓展版),從眾面小,不能定制UI(界面),只能進(jìn)行功能解鎖 比如:越獄.iPhone定位于高端手機(jī)市場(chǎng),走的是個(gè)性化路線,主要優(yōu)勢(shì)是AppStore(移動(dòng)網(wǎng)上商店),Mac擁有全球最大最成熟的移動(dòng)網(wǎng)上商店
1.模塊性
IOS是Cisco路由軟件的初始品牌名稱。隨著Cisco技術(shù)的發(fā)展,IOS不斷擴(kuò)展,成為Cisco Central ENgineering(中央工程部門)所稱之為的“一系列緊密連接的網(wǎng)際互連軟件產(chǎn)品”。盡管在其品牌名識(shí)別中,IOS可能仍然等同于路由軟件,但是它的持續(xù)發(fā)展發(fā)已使之過渡到支持局域網(wǎng)和ATM交換機(jī),并為網(wǎng)絡(luò)管理應(yīng)用提供重要的代理功能。必須強(qiáng)調(diào)的是,IOS是Cisco開發(fā)的技術(shù):一項(xiàng)企業(yè)資產(chǎn)。它給公司提供獨(dú)特的市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)。許多競(jìng)爭(zhēng)者許可IOS在其集線器和中由模塊內(nèi)運(yùn)行,IOS已尼廣泛成為網(wǎng)際互連軟件事實(shí)上的工業(yè)標(biāo)準(zhǔn)。
2.靈活性
基于Cisco產(chǎn)品的工程開發(fā)以用戶可以獲得適應(yīng)變化的靈活性。IOS軟件提供一個(gè)可擴(kuò)展的平臺(tái),Cisco會(huì)隨著需求和技術(shù)的發(fā)展集成新的功能。Cisco可以更快地將新產(chǎn)品投向市場(chǎng),我們的客戶可以享用這種優(yōu)勢(shì)。
3.可伸縮性
IOS遍布網(wǎng)際互連市場(chǎng);廣泛的Cisco使用伙伴及競(jìng)爭(zhēng)者在他們的產(chǎn)品上支 6
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
持IOS.IOS軟件體系結(jié)構(gòu)還允許其集成構(gòu)造企業(yè)互聯(lián)網(wǎng)絡(luò)的所有部分。Cisco已經(jīng)定義了4個(gè):核心/中樞:網(wǎng)絡(luò)中樞和WAN服務(wù),包括大型骨干網(wǎng)絡(luò)路由器和ATM交換機(jī)。工作組:從共享型局域網(wǎng)移植到局域網(wǎng)交換(VLANs)提供更優(yōu)的網(wǎng)絡(luò)分段和性能。)遠(yuǎn)程訪問:遠(yuǎn)程局域網(wǎng)連接解決方案;邊際路由器、調(diào)制解調(diào)器等。IBM網(wǎng)際互連:SNA和LAN并行集成,從SNA轉(zhuǎn)換到IP.Cisco的IOS擴(kuò)展了所有這些領(lǐng)域,提供了支持端到端網(wǎng)際互連的穩(wěn)健性。
4.可操作性
IOS提供最廣泛的基于標(biāo)準(zhǔn)的物理和邏輯協(xié)議接口——超過業(yè)界任何其他供應(yīng)商:從雙絞線到光纖,從局域網(wǎng)到園區(qū)網(wǎng)到廣域網(wǎng),Novell NetWare,UNIX,SNA以及其他許多接口。即是說,一個(gè)圍繞IOS建立的網(wǎng)絡(luò)將支持非常廣泛的應(yīng)用。
2.1.2核心操作系統(tǒng)層和核心服務(wù)層
位于iOS系統(tǒng)架構(gòu)最下面的一層是核心操作層,它包括內(nèi)存管理,文件管理,電源管理以及一些其他的操作系統(tǒng)業(yè)務(wù),它可以直接和硬件設(shè)備交互。核心操作系統(tǒng)層包括以下這些組件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,F(xiàn)ile System Keychain,Certificates,Security,Bonjour等
開發(fā)人員也可以完全訪問核心服務(wù)層來方問iOS的一些服務(wù),包括數(shù)據(jù)庫連接,URL學(xué)習(xí)等等,它主要包括以下這些組件:Collections,Address Book,Networking,F(xiàn)ile Access,SQLite,Core Location,Net Services,Threading,Preferences,URL Utilities等。
SQLite是嵌入式的和輕量級(jí)的sql數(shù)據(jù)庫,廣泛用于iOS應(yīng)用。iOS系統(tǒng)內(nèi)置SQLite數(shù)據(jù)庫減小了開發(fā)人員的負(fù)擔(dān),是系統(tǒng)的一部分。
Net Servicer主要負(fù)責(zé)網(wǎng)絡(luò)服務(wù),在開發(fā)過程中,承擔(dān)應(yīng)用程序與服務(wù)器之間連接的角色,有很強(qiáng)的交互性。
媒體層,通過它可以在應(yīng)用程序中使用各種媒體文件,進(jìn)行音頻與視頻的錄制,圖形的繪制,以及制作基礎(chǔ)的動(dòng)畫效果。它包括以下這些組件:Core Audio,OpenGL,Audo Mixing,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGL ES。最上面一層是可觸摸層,這一層為應(yīng)用開發(fā)提供了各種有用的框架,并且大部分與用戶界面有關(guān),本質(zhì)上來說它負(fù)責(zé)用戶在iOS設(shè)備上的觸摸交互操作。它包括以下這些組件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image 7
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
Picker,Multi-Touch Controls。
在Cocoa Touch層中的很多技術(shù)都是基于Objective-C語言的。Objective-C語言為iOS提供了相機(jī)集合,文件管理,網(wǎng)絡(luò)操作等支持。例如UIKit框架,它為應(yīng)用程序提供了各種可視化組件,窗口(window),視圖(view)和按鈕組件(UIButton)。Cocoa Touch層中的其他框架,對(duì)我們?cè)趹?yīng)用程序中的開發(fā)來說也是非常有用的,如訪問用戶通信錄功能框架,獲取照片信息功能的框架,負(fù)責(zé)加速感應(yīng)器和三維陀螺儀等硬件支持的框架等等。
2.1.3應(yīng)用程序框架
編寫應(yīng)用程序項(xiàng)目,都是從CocoaTouch層開始的,具體來說是從UIKit Framework開始的。iOS常用的SDK框架如下:
AddressBook.framework 提供訪問存儲(chǔ)核心數(shù)據(jù)庫中用戶聯(lián)系人信息的功能。
AddressBook.framework提供一個(gè)用戶界面,用于顯示存儲(chǔ)在地址薄中的聯(lián)系人詳情。
AudioUnit.framework提供一個(gè)接口,讓我們的應(yīng)用程序可以對(duì)音頻進(jìn)行處理。
AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時(shí)也負(fù)責(zé)管理音頻硬件。
CFNetwork.framework訪問和配置網(wǎng)絡(luò),像HTTP,F(xiàn)TP和Bonjour Services等。
CoreFoundation.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ò)功能,點(diǎn)對(duì)點(diǎn)互聯(lián)和游戲中的語音交流。MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。MediaPlayer.framework提供視頻播放和音頻的功能。
MessageUI.framework提供視圖控制接口用以處理E-mail和短信。OpenGLES.framework提供簡潔而高效的繪制2D和3D圖形的OpenGL API。QuartzCore.framework提供動(dòng)畫特效以及通過硬件進(jìn)行渲染的能力。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
StoreKit.framework為應(yīng)用程序提供在程序運(yùn)行中消費(fèi)的支持。SystemConfiguration.framework檢測(cè)當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。
2.2 SQLite數(shù)據(jù)庫介紹
SQLite是一個(gè)輕量級(jí)、跨平臺(tái)的關(guān)系型數(shù)據(jù)庫。既然號(hào)稱關(guān)系型數(shù)據(jù)庫,支持SQL92標(biāo)準(zhǔn)中常用的事務(wù)(比如視圖、事務(wù)、觸發(fā)器等)就是理所當(dāng)然的了,具體特色有以下幾點(diǎn):
1.輕量級(jí)
先說它的第一個(gè)特色:輕量級(jí)。想必SQLite的創(chuàng)建者很看重這個(gè)特性,連它的Logo都是用的“羽毛”,來顯擺它的輕飄飄。SQLite和C/S模式的數(shù)據(jù)庫軟件不同,它是進(jìn)程內(nèi)的數(shù)據(jù)庫引擎,因此不存在數(shù)據(jù)庫的客戶端和服務(wù)器。使用SQLite一般只需要帶上它的一個(gè)動(dòng)態(tài) 庫,就可以享受它的全部功能。而且那個(gè)動(dòng)態(tài)庫的尺寸也挺小,以版本3.6.11為例,Windows下487KB、Linux下347KB等。
2.綠色軟件
SQLite的另外一個(gè)特點(diǎn)是綠色:它的核心引擎本身不依賴第三方的軟件,使用它也不需要“安裝”。所以在部署的時(shí)候能夠省去不少麻煩。
3.單一文件
所謂的“單一文件”,就是數(shù)據(jù)庫中所有的信息(比如表、視圖、觸發(fā)器、等)都包含在一個(gè)文件內(nèi)。這個(gè)文件可以copy到其它目錄或其它機(jī)器上,也照用不誤。
4.跨平臺(tái)/可移植性
如果光支持主流操作系統(tǒng),那就沒啥好吹噓的了。除了主流操作系統(tǒng),SQLite還支持了很多冷門的操作系統(tǒng)。我個(gè)人比較感興趣的是它對(duì)很多嵌入式系統(tǒng)(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。
5.內(nèi)存數(shù)據(jù)庫(in-memory database)
SQLite的API不區(qū)分當(dāng)前操作的數(shù)據(jù)庫是在內(nèi)存還是在文件(對(duì)于存儲(chǔ)介質(zhì)是透明的)。所以如果你覺得磁盤I/O有可能成為瓶頸的話,可以考慮切換為內(nèi)存方式。切換的時(shí)候,操作SQLite的代碼基本不用大改,只要在開始時(shí)把文件Load到內(nèi)存,結(jié)束時(shí)把內(nèi)存的數(shù)據(jù)庫Dump回文件就OK了。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
2.3 XCode Xcode2.0是開發(fā)人員建立Mac OS X應(yīng)用程序的最快捷方式,也是利用新的蘋果電腦公司技術(shù)的最簡單的途徑。Xcode2.0將Mac OSX的輕松使用,UNIX 能量以及高性能的開發(fā)技術(shù)集合在一起。
不管你用C、C++、Objective-C或 Java編寫程序,在AppleScript里編寫腳本,還是試圖從另一個(gè)奇妙的工具中轉(zhuǎn)移編碼,你會(huì)發(fā)現(xiàn)Xcode編譯速度極快。每次操作都很快速和輕松。
Xcode4的虛擬模型和設(shè)計(jì)功能讓你可以更輕松的開發(fā)和維護(hù)應(yīng)用程序。只需選擇應(yīng)用程序中想要編寫的部分,然后模型和設(shè)計(jì)系統(tǒng)將自動(dòng)創(chuàng)建分類圖表,不僅可以顯示編碼,還可以讓你進(jìn)行瀏覽。Mac OS X Core Data API 幫你的應(yīng)用程序創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。更棒的是,它還自動(dòng)提供撤消、重做和保存功能,無需編寫任何編碼。
Xcode整合的 Apple Reference Library為所有的Apple開發(fā)者文件提供一個(gè)單獨(dú)的搜索和顯示界面,這些文件包括來自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新狀態(tài)。Xcode 將幫你快速找到最新的答案。
Xcode4的核心部分是蘋果電腦公司下一代業(yè)界標(biāo)準(zhǔn)的gcc編譯器gcc4.0。新的編譯器利用許多先進(jìn)的最優(yōu)化技術(shù)幫你從現(xiàn)存編碼中獲得更多性能。從超級(jí)計(jì)算世界借鑒來的自動(dòng)向量化(Auto-vectorization)技術(shù)可以幫助你釋放每臺(tái) Intel 系統(tǒng)中速度引擎的能量,而不需要編寫向量化編碼。其他的最優(yōu)化工具則支持反饋定向的最優(yōu)化,以及隱藏模塊分析。
Xcode 將賦予你創(chuàng)建諸如計(jì)算和渲染引擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過訪問內(nèi)存中的數(shù)據(jù)運(yùn)行速度更快,遠(yuǎn)勝于磁盤訪問。Xcode將為你提供工具來建立并調(diào)試適合 IntelCore i5, i7 和Mac OSX Lion的32或64位應(yīng)用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的 Fat Binaries。
眾所周知,在構(gòu)建中引進(jìn)多重處理器可以提高速度,Xcode 能幫你實(shí)現(xiàn)這個(gè)明顯的結(jié)論。利用支持 Rendezvous 的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構(gòu)建,或者更好是在單獨(dú)的電腦上開發(fā)一個(gè)專門的 Xserve 構(gòu)建寄放區(qū),快速處理那些耗時(shí)的任務(wù)。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
第3章 愛限免手機(jī)應(yīng)用app需求分析
根據(jù)第一章所定義的課題研究方向及目標(biāo),本章將對(duì)系統(tǒng)功能進(jìn)行具體的需求分析,具體分析愛限免app所要實(shí)現(xiàn)的功能以及欲達(dá)到的效果,具體內(nèi)容如下章節(jié):
3.1 愛限免手機(jī)應(yīng)用app的可行性分析
1.使用objective-c編程技術(shù)
Objective-c是非常實(shí)際的語言,他是一個(gè)用c寫成、很小的運(yùn)行庫,只會(huì)令程序的尺寸增加很小,和大部分oo系統(tǒng)使用極大的vm執(zhí)行時(shí)間會(huì)取代整個(gè)系統(tǒng)運(yùn)作相反,Objective-c寫的程序通常不會(huì)比起原始代碼大很多,而其函數(shù)庫亦和Smalltalk系統(tǒng)要使用極大的內(nèi)存來開啟一個(gè)窗口的情況相反,因objective-c它完全兼容標(biāo)準(zhǔn)c語言,c語言具有的高效性也被objective-c繼承,但是我們用的objective-c并不像c語言用起來那么的復(fù)雜,因?yàn)樗菍?duì)c的封裝,把復(fù)雜高效的語言變得簡單高效,這樣更利于ios開發(fā)者使用,也為iOS開發(fā)者帶來了便捷。(1)動(dòng)態(tài)綁定
函數(shù)和消息的最根本不同是:函數(shù)和它的參數(shù)是在編譯的時(shí)候已經(jīng)確定下來,但是消息和接收對(duì)象知道程序已經(jīng)在運(yùn)行,消息在傳遞時(shí)才能確定下來。確切的消息方法實(shí)現(xiàn)依賴于消息的接收者,不同的接收者可能有相同的方法名不同的方法實(shí)現(xiàn),只有在消息接收時(shí)才能確定(動(dòng)態(tài)類型),通過源代碼的類型定義并不能完全確認(rèn)接收者的類型。運(yùn)行時(shí)消息例程查找接收者和消息方法,找到消息方法實(shí)現(xiàn)的機(jī)器碼,呼叫這個(gè)方法,傳遞給它消息實(shí)例變量指針(2)多態(tài)性
在Objective-c中消息的調(diào)用看上去和標(biāo)準(zhǔn)C中的函數(shù)調(diào)用相似,但因?yàn)榉椒▽儆谝粋€(gè)對(duì)象,消息的行為與函數(shù)調(diào)用還是不同。在一些情況下,一些對(duì)象僅能對(duì)針對(duì)它涉及的方法起作用,不能被其他類的方法使用,即使這些類有同樣名稱的方法。這意味著兩個(gè)對(duì)象對(duì)同樣的消息有著不同的響應(yīng),即多態(tài)性。Objective-c中多態(tài)性和動(dòng)態(tài)綁定配合使用,可以使代碼提供給任意數(shù)量不同類型的對(duì)象使用,這些對(duì)象不需要再寫代碼的時(shí)候就已經(jīng)定義好,它們可以是以后開發(fā)的對(duì)象,也可以是其他項(xiàng)目的對(duì)象。(3)面向?qū)ο?/p>
面向?qū)ο蟪绦驑?gòu)建在多種對(duì)象之上,基于Cocoa框架的程序可能使用
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
NSMatrix對(duì)象、NSWindow對(duì)象、NSDirectonary對(duì)象、NSFont對(duì)象以及許多其它對(duì)象。在Objective-c中通過定義類來定義對(duì)象。面向?qū)ο笞岄_發(fā)者更容易開發(fā)應(yīng)用程序軟件,以及更加規(guī)范化(4)繼承性
類的定義是累進(jìn)的,任一個(gè)新類都是在另一個(gè)類的基礎(chǔ)上定義的,新類繼承了它的方法和實(shí)例變量。繼承使所有的類構(gòu)成一顆樹形的結(jié)構(gòu),在Objective-c中使用類一般要繼承或間接繼承于基類:NSObject,因?yàn)镹SObject提供了大量的有用特性。比如,一些圖形類,需要繼承于Shape類,而Shape是Graphic類的子類,Graphic又繼承于NSObject類,因此,還是間接繼承于NSObject類。類的繼承關(guān)系圖3-1所示:
圖3-1 Objective-C類繼承圖
在項(xiàng)目中NSObject集合了所有類的基本方法,所有的=類都繼承或者間接繼承NSObject。2.社會(huì)市場(chǎng)因素可行性
如今社會(huì)發(fā)展迅速,手機(jī)行業(yè)更是赤手可熱,手機(jī)應(yīng)用的開發(fā)也是更新?lián)Q代比較頻繁,一款好的手機(jī)軟件商店,不僅能適應(yīng)市場(chǎng)的發(fā)展方向,更是為廣大用戶帶來福利以及便捷。
按照目前市場(chǎng)情形,越來越多的移動(dòng)開發(fā)者涌進(jìn)iOS開發(fā)領(lǐng)域。iOS平臺(tái)上應(yīng)用軟件,App Store的支付模式更為成熟而且有監(jiān)管,另外iOS的兼容性問題小,開發(fā)人員不用考慮太多的配置兼容問題,美觀大方的外形,更是吸引了大量
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 的用戶。而且其良好的用戶體驗(yàn),都為iOS的發(fā)展奠定了良好的基礎(chǔ)。3.硬件工具可行性
使用工具方面,開發(fā)工具ios xcode6.0版本,要求mac10.8操作系統(tǒng),一臺(tái)已經(jīng)安裝有所有必備的軟件及相應(yīng)軟件設(shè)備的計(jì)算機(jī);內(nèi)存要求大于或等于2G。
3.2 愛限免手機(jī)應(yīng)用app功能需求分析
愛限免手機(jī)應(yīng)用app,設(shè)計(jì)5個(gè)模塊,每個(gè)模塊各司其職,在整個(gè)工程中又到了MVC模式,單例模式,block模式,是每個(gè)功能模塊化各模塊之間的聯(lián)系降到最低,使得每個(gè)模塊都類似一個(gè)小型的家庭,每個(gè)成員各司其職,這樣就降低了程序的耦合性有利于后期代碼的維護(hù),模塊化的設(shè)計(jì)也使得你的app看起來更有你條理性,下邊就是對(duì)模塊化的圖文解釋,具體如圖3-2-1:
圖3-2-1 模塊展示
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
此圖清晰的展示了app的5個(gè)功能模塊,首相是上邊的5個(gè)大模塊,由一個(gè)分欄控制器UITablebarController控制,把這5各模塊放到分欄控制器數(shù)組中進(jìn)行控制,如圖3-2-1設(shè)一個(gè)搜索控制器和一個(gè)詳情控制器,通過正反向傳值把5大功能模塊的信息傳到這兩個(gè)控制器上邊進(jìn)行顯示,其中在詳情頁面還有收藏分享工能,收藏使用了一個(gè)數(shù)據(jù)庫進(jìn)行裝載數(shù)據(jù),分享實(shí)在MOb注冊(cè)了開發(fā)者 根據(jù)官方文檔進(jìn)行了qq空間分享(需要有qq空間客戶端才行)。
3.2.1 功能需求
1.App應(yīng)用的查看功能需求
此項(xiàng)目分別有5各視圖控制器viewcontroller分別有系統(tǒng)的分欄控制器tabbaicontroller控制,可以根據(jù)下標(biāo)來回相互切換,每個(gè)視圖控制器上邊都有一個(gè)表格控制器UITableview來進(jìn)行展示數(shù)據(jù)內(nèi)容,由于數(shù)據(jù)的內(nèi)容各不相同,表格控制器還需要適應(yīng)每個(gè)數(shù)據(jù)的變化,視圖控制器之間還可以相互跳轉(zhuǎn),一般都是通過壓棧的形勢(shì)來進(jìn)行跳轉(zhuǎn)。2.App應(yīng)用詳情查看表功能需求
應(yīng)用詳情的展示由xib可視化編程和代碼兩者結(jié)合實(shí)現(xiàn),可以展示商品的圖片、大小、類型、詳情介紹等內(nèi)容,還有周邊推薦,可以看到周邊人的app,以經(jīng)緯度來確定摸個(gè)區(qū)域。3.在線搜索應(yīng)用功能需求
搜索功能有uiseacrbar來實(shí)現(xiàn),通過app的名字,漢字英文都可以,通過代理方法把輸入框里邊的內(nèi)容和數(shù)據(jù)中的信息對(duì)比,有相同的就保存到數(shù)組中,再通過UItableview展示到界面上來。4.在線app分享功能需求
分享的第三放有很多,我這里只用mob進(jìn)行空間分享,這個(gè)功能需要開發(fā)者注冊(cè)開發(fā)者賬號(hào),在官網(wǎng)上下載分享文檔,提取核心代碼,分享的實(shí)現(xiàn)有mob完成。
5.App收藏功能需求
App的收藏這里與運(yùn)用了數(shù)據(jù)庫,可以通過點(diǎn)擊事件把你點(diǎn)擊的app加到數(shù)據(jù)庫中,再在相應(yīng)的界面進(jìn)行信息展示。6.App圖片保存功能需求
通過點(diǎn)擊事件來觸發(fā)收藏相冊(cè)的代理事件,把相應(yīng)的圖片收藏到相冊(cè),打開相冊(cè)即可觀看。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
7.App應(yīng)用設(shè)置的功能需求
這里的app設(shè)置功能只做了,對(duì)收藏的app進(jìn)行刪除的操作。
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
第4章 愛限免手機(jī)應(yīng)用app設(shè)計(jì)
系統(tǒng)設(shè)計(jì)階段主要的任務(wù)是系統(tǒng)各個(gè)模塊的具體設(shè)計(jì)與實(shí)現(xiàn)。
4.1 模塊功能設(shè)計(jì)
下面以具體的效果來展示各個(gè)功能模塊。
4.1.1 限免模塊
1實(shí)現(xiàn)顯示免費(fèi)app的展示 2 對(duì)限時(shí)免費(fèi)app的詳情查看 3對(duì)現(xiàn)實(shí)免費(fèi)app的時(shí)間倒計(jì)時(shí) 4 app基本信息的顯示
限免功能模塊運(yùn)行效果圖如下4.1.1-1,4.1.1-2所示
圖4.1.1-1限免界面
此圖為限免模塊的展示,如圖界面由一個(gè)uitableview覆蓋真?zhèn)€屏幕,商品在每個(gè)cell上進(jìn)行信息展示,具體的設(shè)計(jì)由xib完成,下面展示cell的設(shè)計(jì):
下邊我就用代碼來展示一下這個(gè)界面的實(shí)現(xiàn): 首先是對(duì)網(wǎng)絡(luò)數(shù)據(jù)的請(qǐng)求startTime;
cell.surplusTimeLabel.text = [NSString stringWithFormat:@”剩余:%.2lld:%.2lld:%.2lld“,time/3600,time%3600/60,time%60];
}else{
AppMode1 *mode = _searchArr[indexPath.row];
cell.nameLabel.text = mode.name;
cell.iconImage.image = [UIImage imageWithData:mode.iconData];
cell.lastPriceLabel.text = [NSString stringWithFormat:@”¥ %.1f“,[mode.lastPrice floatValue]];
cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應(yīng)用“;
cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];
//處理 星星
cell.starImageView.frame = CGRectMake(cell.starImageView.frame.origin.x, cell.starImageView.frame.origin.y, 65/5.0*[mode.starOverall floatValue], cell.starImageView.frame.size.height);//修改fream
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
//處理 倒計(jì)時(shí)問題
NSDate *date = [NSDate date];
long long startTime =(long long)[date timeIntervalSince1970];
NSString *str = [mode.surplusTime componentsSeparatedByString:@”.“][0];
NSDateFormatter *fo = [NSDateFormatter new];
fo.dateFormat = @”YYYY-MM-dd HH:mm:ss“;
NSDate *endDate = [fo dateFromString:str];
long long endTime =(long long)[endDate timeIntervalSince1970];
long long time = endTime(UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“];
if(tableView == _tableView){
AppMode1 *mode = _dataArr[indexPath.row];
cell.nameLabel.text = mode.name;
cell.iconImage.image = [UIImage imageWithData:mode.iconData];
cell.lastPriceLabel.text = @”¥ 0.0“;
cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應(yīng)用“;
cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];
//處理 星星--下面兩項(xiàng) 在xib中已經(jīng)處理過
//
cell.starImageView.contentMode = UIViewContentModeLeft;//設(shè)置圖片填充方式
//
cell.clipsToBounds = YES;//設(shè)置 自動(dòng)切割超出自身fream的部分
cell.starImageView.frame cell.starImageView.frame.origin.y,=
CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall
floatValue], cell.starImageView.frame.size.height);//修改fream
cell.surplusTimeLabel.text = [NSString stringWithFormat:@”評(píng)分:%.2f分“,[mode.starOverall floatValue]];
}else{
AppMode1 *mode = _searchArr[indexPath.row];
cell.nameLabel.text = mode.name;
cell.iconImage.image = [UIImage imageWithData:mode.iconData];25
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
cell.lastPriceLabel.text = @”¥ 0.0“;
cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戲“:@”應(yīng)用“;
cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下載:%@次“,mode.shares,mode.favorites,mode.downloads];
//處理 星星
cell.starImageView.frame cell.starImageView.frame.origin.y,=
CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall
floatValue], cell.starImageView.frame.size.height);//修改fream
cell.surplusTimeLabel.text = [NSString stringWithFormat:@”評(píng)分:%.2f分“,[mode.starOverall floatValue]];
}
UILabel *lebel =(UILabel *)[cell.contentView viewWithTag:10];
lebel.hidden = YES;
return cell;} 4.2.2 專題模塊
1按照一定的專題分類顯示 運(yùn)行效果圖如下4.2.2-1
圖4.2.2-1 專題界面
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書
專題界面實(shí)現(xiàn)如圖所示,從圖上不難看出這個(gè)界面的cell復(fù)雜得多,這個(gè)cell上不僅僅是一個(gè)app的展示,而是集合了多個(gè)app,每個(gè)app都顯示不同的信息,而且點(diǎn)擊每個(gè)app都會(huì)顯示對(duì)應(yīng)的商品詳情,在這里處理這個(gè)就用到了block傳值,下面對(duì)界面的設(shè)計(jì)進(jìn)行代碼展示,首先是請(qǐng)求數(shù)據(jù)的展示: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:PAGE_D_URL parameters:@{@”page“:@”1“,@”limit“:@”5“} success:^(AFHTTPRequestOperation *operation, id responseObject){
NSArray *arr = responseObject;
for(int i=0;i AppMode4 *mode = [[AppMode4 alloc]init]; mode.title0 = arr[i][@”title“]; mode.imageUrlStr1 = arr[i][@”img“]; mode.imageUrlStr6 = arr[i][@”desc_img“]; mode.title5 = arr[i][@”desc“]; mode.title1 = arr[i][@”applications“][0][@”name“]; mode.title2 = arr[i][@”applications“][1][@”name“]; mode.title3 = arr[i][@”applications“][2][@”name“]; mode.title4 = arr[i][@”applications“][3][@”name“]; mode.imageUrlStr2 = arr[i][@”applications“][0][@”iconUrl“]; mode.imageUrlStr3 = arr[i][@”applications“][1][@”iconUrl“]; mode.imageUrlStr4 = arr[i][@”applications“][2][@”iconUrl“]; mode.imageUrlStr5 = arr[i][@”applications“][3][@”iconUrl“]; mode.star1 = arr[i][@”applications“][0][@”starOverall“]; mode.star2 = arr[i][@”applications“][1][@”starOverall“]; mode.star3 = arr[i][@”applications“][2][@”starOverall“]; mode.star4 = arr[i][@”applications“][3][@”starOverall“]; mode.btnTitle1_1 = arr[i][@”applications“][0][@”comment“]; mode.btnTitle1_2 = arr[i][@”applications“][0][@”downloads“]; mode.btnTitle2_1 = arr[i][@”applications“][1][@”comment“]; mode.btnTitle2_2 = arr[i][@”applications“][1][@”downloads“];27 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 mode.btnTitle3_1 = arr[i][@”applications“][2][@”comment“]; mode.btnTitle3_2 = arr[i][@”applications“][2][@”downloads“]; mode.btnTitle4_1 = arr[i][@”applications“][3][@”comment“]; mode.btnTitle4_2 = arr[i][@”applications“][3][@”downloads“]; _IDarray = @[arr[i][@”applications“][0][@”applicationId“],arr[i][@”applications“][1][@”applicationId“],arr[i][@”applications“][2][@”applicationId“],arr[i][@”applications“][3][@”applicationId“]]; [_IDMUarray addObject:_IDarray]; [_dataArr addObject:mode]; } [_tableView reloadData]; } failure:^(AFHTTPRequestOperation *operation, NSError *error){ }];} 下面展示cell的賦值問題,這里我們會(huì)為每個(gè)app打上標(biāo)簽,一遍我們?cè)趥髦档臅r(shí)候能辨認(rèn)我們還點(diǎn)擊的是哪個(gè)app。 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ CustomCell_D *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“]; cell.array = _IDMUarray[indexPath.row]; AppMode4 *mode = _dataArr[indexPath.row]; [cell setBlock:^(NSString *ID){ ViewControllerA_2 *viewCtl_2 = [[ViewControllerA_2 alloc]init]; viewCtl_2.appId = ID; [self.navigationController pushViewController:viewCtl_2 animated:YES]; }]; [cell.myImageView1 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr1] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]]; [cell.myImageView2 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr2] placeholderImage:[UIImage 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 imageNamed:@”topic_TopicImage_Default“]]; [cell.myImageView3 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr3] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]]; [cell.myImageView4 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr4] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]]; [cell.myImageView5 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr5] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]]; [cell.myImageView6 setImageWithURL:[NSURL URLWithString:mode.imageUrlStr6] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]]; cell.myLabel1.text = mode.title1; cell.myLabel2.text = mode.title2; cell.myLabel3.text = mode.title3; cell.myLabel4.text = mode.title4; cell.myLabel5.text = mode.title5; [cell.btn1_2 setTitle:mode.btnTitle1_2 forState:UIControlStateNormal]; [cell.btn1_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle1_1] forState:UIControlStateNormal]; [cell.btn2_2 setTitle:mode.btnTitle2_2 forState:UIControlStateNormal]; [cell.btn2_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle2_1] forState:UIControlStateNormal]; [cell.btn3_2 setTitle:mode.btnTitle3_2 forState:UIControlStateNormal]; [cell.btn3_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle3_1] forState:UIControlStateNormal]; [cell.btn4_2 setTitle:mode.btnTitle4_2 forState:UIControlStateNormal]; [cell.btn4_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle4_1] forState:UIControlStateNormal]; cell.star1.frame = CGRectMake(cell.star1.frame.origin.x, 29 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 cell.star1.frame.origin.y, 65/5.0*[mode.star1 floatValue], cell.star1.frame.size.height); cell.star2.frame = CGRectMake(cell.star2.frame.origin.x, cell.star2.frame.origin.y, 65/5.0*[mode.star2 floatValue], cell.star2.frame.size.height); cell.star3.frame = CGRectMake(cell.star3.frame.origin.x, cell.star3.frame.origin.y, 65/5.0*[mode.star3 floatValue], cell.star3.frame.size.height); cell.star4.frame = CGRectMake(cell.star4.frame.origin.x, cell.star4.frame.origin.y, 65/5.0*[mode.star4 floatValue], cell.star4.frame.size.height); return cell;} 4.2.3 分享功能模塊 1實(shí)現(xiàn)了分享的功能 運(yùn)行效果圖如下4.2.3-1 圖4.2.4-1 點(diǎn)擊分享默認(rèn)界面 在這里分享功能我用了mob第三方分享,通郭mob給的官方文檔,導(dǎo)入系統(tǒng)庫,就可以實(shí)現(xiàn)分享功能,具體代碼如下展示: //注冊(cè)shareSDK [ShareSDK registerApp:@”74f6b479a893“]; //添加QQ空間應(yīng)用 注冊(cè)網(wǎng)址 http://connect.qq.com/intro/login/ [ShareSDK connectQZoneWithAppKey:@”1104627452“ appSecret:@”Usc84bJXmMeTzNCI“ qqApiInterfaceCls:[QQApiInterface class] tencentOAuthCls:[TencentOAuth class]]; 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 //添加QQ應(yīng)用 注冊(cè)網(wǎng)址 http://open.qq.com/ [ShareSDK connectQQWithQZoneAppKey:@”1104627452“ qqApiInterfaceCls:[QQApiInterface class] tencentOAuthCls:[TencentOAuth class]]; //分享點(diǎn)擊事件 -(IBAction)shareButton:(id)sender { //構(gòu)造分享內(nèi)容 id defaultContent:@”測(cè)試一下“ image:[ShareSDK imageWithPath:nil] title:@”ShareSDK“ url:@”http://www.tmdps.cn“ description:@”這是一條測(cè)試信息“ mediaType:SSPublishContentMediaTypeNews]; //創(chuàng)建彈出菜單容器 id [container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp]; //彈出分享菜單 [ShareSDK showShareActionSheet:container shareList:nil content:publishContent statusBarTips:YES authOptions:nil shareOptions:nil result:^(ShareType type, SSResponseState state, id if(state == SSResponseStateSuccess) { NSLog(NSLocalizedString(@”TEXT_ShARE_SUC“, @”分享成功“)); } else if(state == SSResponseStateFail) { 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 NSLog(NSLocalizedString(@”TEXT_ShARE_FAI“, @”分享失敗,錯(cuò)誤碼:%d,錯(cuò)誤描述:%@“), [error errorCode], [error errorDescription]); } }];} 4.2.4 收藏功能模塊 1顯示你是否收藏成功 運(yùn)行效果圖如下4.2.5-1 圖4.2.4-1 點(diǎn)擊收藏顯示界面 收藏功能我這里使用了一個(gè)ios本地?cái)?shù)據(jù)庫codata也是對(duì)sqlite的封裝,這里使用了ios的單例模式,把這個(gè)數(shù)據(jù)庫寫在中轉(zhuǎn)站中,形成一個(gè)單例,所謂的單例就是在整個(gè)項(xiàng)目工程中只會(huì)被實(shí)例化一次,不會(huì)重復(fù)多次實(shí)例化,確保每次取到的都是同一個(gè)數(shù)據(jù)庫,代碼如下 @interface AppDelegate : UIResponder @property(strong, nonatomic)UIWindow *window; @property(readonly, strong, nonatomic)NSManagedObjectContext *managedObjectContext;@property(readonly, strong, nonatomic)NSManagedObjectModel *managedObjectModel;@property(readonly, strong, nonatomic)NSPersistentStoreCoordinator 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 *persistentStoreCoordinator; 在沒次收藏成功的時(shí)候都會(huì)有一個(gè)提示圖標(biāo),就是圖里邊的溫馨提示,這里使用了一個(gè) UIAlertView 來實(shí)現(xiàn)這個(gè)功能具體代碼如下: //賦值頭像 AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager]; man.responseSerializer = [AFHTTPResponseSerializer serializer]; [man GET:_myIconUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){ mode.iconData = responseObject; //存儲(chǔ)數(shù)據(jù) [dele.managedObjectContext save:nil]; //彈出提示 收藏成功 UIAlertView *alv = [[UIAlertView alloc]initWithTitle:@”溫馨提示“ message:@”收藏成功“ delegate:self cancelButtonTitle:@”知道了“ otherButtonTitles:nil, nil]; [alv show]; } failure:^(AFHTTPRequestOperation *operation, NSError *error){ }];下面就是收藏功能的實(shí)現(xiàn),這里收藏功能是通過appdelegate把實(shí)例化的數(shù)據(jù)庫在相應(yīng)的控制器種取到,把要收藏的app添加到數(shù)據(jù)庫中實(shí)現(xiàn)本地化存儲(chǔ),從而實(shí)現(xiàn)收藏,具體代碼如下: //取得 實(shí)體對(duì)象 AppDelegate *dele = [UIApplication sharedApplication].delegate; AppMode *mode = [NSEntityDescription insertNewObjectForEntityForName:@”AppMode“ inManagedObjectContext:dele.managedObjectContext]; //賦值 mode.appId = self.appId;33 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 mode.name = _myName;這樣就把喜歡的app進(jìn)行了收藏,由于這個(gè)數(shù)據(jù)庫是被寫成了單例,因此里邊的數(shù)據(jù)是會(huì)不斷更新的,而數(shù)據(jù)內(nèi)容就是收藏的app,在需要展示的界面取出來數(shù)據(jù)庫進(jìn)行刷表就可以實(shí)現(xiàn)展示,具體代碼如下: [_arr2 removeAllObjects]; //從數(shù)據(jù)庫取出收藏的app AppDelegate *delegate = [UIApplication sharedApplication].delegate; NSFetchRequest *request = [NSFetchRequest new]; request.entity = [NSEntityDescription entityForName:@”AppMode“ inManagedObjectContext:delegate.managedObjectContext]; _arr = [delegate.managedObjectContext executeFetchRequest:request error:nil]; //創(chuàng)建一個(gè) 滾動(dòng)視圖,高度根據(jù)需要改變 _sView = [[UIScrollView alloc]initWithFrame:self.view.bounds]; _sView.frame= CGRectMake(0, 50, self.view.bounds.size.width, self.view.bounds.size.height); [self.view addSubview:_sView]; _sView.contentSize = CGSizeMake(self.view.bounds.size.width, 50+(_arr.count /3 +1)*100); //根據(jù)收藏的app個(gè)數(shù) 創(chuàng)建圖標(biāo) for(int i =0;i<_arr.count;i++){ UIImageView *view = [[UIImageView alloc]initWithFrame:CGRectMake(30+i%3*100, 50+i/3*100, 60, 60)]; //打開人機(jī)交互開關(guān) view.userInteractionEnabled = YES; view.image = [UIImage imageWithData:[_arr[i] iconData]];34 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 view.tag = 600+i; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y + 60, 60, 20)]; label.textAlignment = NSTextAlignmentCenter; label.font = [UIFont systemFontOfSize:12]; label.text = [_arr[i] name]; [_sView addSubview:label]; [_sView addSubview:view]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(gesAction:)]; [view addGestureRecognizer:tap]; //創(chuàng)建 刪除小圖標(biāo) UIImageView *view2 = [[UIImageView alloc]initWithFrame:CGRectMake(-10,-10, 70, 70)]; //打開人機(jī)交互開關(guān) view2.userInteractionEnabled = YES;// view2.backgroundColor = [UIColor lightGrayColor]; view2.contentMode = UIViewContentModeTopLeft; view2.image = [UIImage imageNamed:@”close“]; //添加到 圖標(biāo)視圖上 [view addSubview:view2]; //判斷是否 隱藏 刪除小圖標(biāo) if(!_btn.selected){ view2.hidden = YES; } //添加手勢(shì) UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(deleteGesAction:)]; [view2 addGestureRecognizer:tap2];35 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 //添加到數(shù)組 [_arr2 addObject:view2];App的刪除功能也是在這里實(shí)現(xiàn)的,通過點(diǎn)擊設(shè)置按鈕,使app的圖標(biāo)顯示刪除“×”,點(diǎn)擊,把它從數(shù)據(jù)庫中刪掉,刷新數(shù)據(jù),代碼如下: //刪除收藏的數(shù)據(jù) -(void)deleteGesAction:(UIGestureRecognizer *)ges{ //根據(jù)點(diǎn)擊的view 獲取角標(biāo)------正好相對(duì)應(yīng) 要?jiǎng)h除的app在arr中的角標(biāo) NSInteger index = [_arr2 indexOfObject:ges.view];// NSLog(@”%ld",index); //從數(shù)據(jù)庫取出收藏的app AppDelegate *delegate = [UIApplication sharedApplication].delegate; //刪除 [delegate.managedObjectContext deleteObject:_arr[index]]; [delegate.managedObjectContext save:nil]; //刷新頁面 [_sView removeFromSuperview]; [self loadData];4.2.5 搜索功能模塊 1實(shí)現(xiàn)app名字搜索顯示 2 點(diǎn)擊可以查看信息 運(yùn)行效果圖如下4.2.5-1,36 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 圖4.2.5-1 搜索結(jié)果界面 搜索界面的實(shí)現(xiàn)實(shí)在原有界面的基礎(chǔ)上加上實(shí)現(xiàn)代理方法,用uiseachbar來實(shí)現(xiàn)app的搜索功能核心代碼如下 -(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{ //清空搜索結(jié)果數(shù)組 [_searchArr removeAllObjects]; for(AppMode1 *mode in _dataArr){ if([mode.name rangeOfString:searchString].location!= NSNotFound){ [_searchArr addObject:mode]; } } return YES;} 37 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 第5章 系統(tǒng)測(cè)試 系統(tǒng)測(cè)試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對(duì)系統(tǒng)開發(fā)過程中的系統(tǒng)分析系統(tǒng)設(shè)計(jì)和實(shí)施的最后復(fù)查。根據(jù)測(cè)試的概念和目的,在進(jìn)行信息系統(tǒng)測(cè)試。 5.1 功能模塊測(cè)試 1.限免模塊的測(cè)試,主要測(cè)試、接口數(shù)據(jù)是否能正確顯示,不出現(xiàn)閃退的情況,時(shí)間會(huì)不會(huì)刷新,每個(gè)app的星級(jí)會(huì)不會(huì)正確顯示,這些測(cè)試中唯獨(dú)最后兩項(xiàng)最為麻煩,第一次測(cè)試的時(shí)候星星的顯示問題總是搞不定,不管怎么調(diào)試都是顯示五顆星,和顯示的數(shù)據(jù)不照應(yīng),經(jīng)過同學(xué)的幫忙,忙才發(fā)祥是父視圖沒有對(duì)子視圖進(jìn)行切割,還有就是限免的價(jià)格是被拉掉的,我是用xib做的拉掉的效果,但是在點(diǎn)擊這個(gè)app的時(shí)候這個(gè)被拉掉的線就會(huì)莫名的消失,變成原樣,當(dāng)時(shí)周圍的同學(xué)也是每辦法了,這個(gè)問題一直拖到了最后,知道有天逛博客時(shí)看到有一篇博客寫到點(diǎn)擊cell的時(shí)候,cell會(huì)變成灰色,當(dāng)時(shí)我就想到了這個(gè)問題,我認(rèn)為我的劃線沒了可能是和cell的背景色沖突了,把這個(gè)關(guān)掉之后,果不其然,劃線不會(huì)消失了。 2.降價(jià)模塊測(cè)試,主要針對(duì)數(shù)據(jù)解析json的正確應(yīng)用,josn解析的時(shí)候主要注意里邊數(shù)據(jù)的取值方式,json數(shù)據(jù)里邊你需要的可能是有一個(gè)數(shù)組構(gòu)成的,也可能是一個(gè)字典,正當(dāng)?shù)娜≈挡挪粫?huì)造成無謂的越界現(xiàn)象,還有json數(shù)據(jù)中并不是所有的數(shù)據(jù)都是字符串的形勢(shì)顯示,也可能會(huì)出現(xiàn)NSnumber的數(shù)據(jù),當(dāng)時(shí)在后期調(diào)試的時(shí)候,我的程序就因一個(gè)NSNUmber的數(shù)據(jù)沒有處理好,導(dǎo)致程序崩潰,還很難找,因?yàn)槲揖蜎]想到我會(huì)在這里取值出錯(cuò)誤。 3.免費(fèi)模塊測(cè)試,主要測(cè)試對(duì)數(shù)據(jù)的解析,以及內(nèi)容的顯示。 4.專題模塊的測(cè)試,主要測(cè)試cell上的控件是不是能正確的傳值,主要注意block在反向傳值的時(shí)候的回調(diào),以及對(duì)block的應(yīng)用,專題模塊這一點(diǎn)可以說的是我耗時(shí)最多的一個(gè)界面,主要就消耗在界面?zhèn)髦颠@一塊,由于cell上的app比較多,對(duì)于如何處理我選中的是哪個(gè)app是我一度陷入盲區(qū),不知道如何處理,首先想到的方法是取到app的父視圖,但是運(yùn)行的時(shí)候根本不行,知道后邊學(xué)習(xí)了block才解決了這個(gè)問題。 5.詳情頁面的測(cè)試,主要測(cè)試是不是每個(gè)界面都能正確的傳進(jìn)來數(shù)據(jù),以及對(duì)數(shù)據(jù)的展示,數(shù)據(jù)圖片不一樣多造成的越界現(xiàn)象,圖片的加載相冊(cè)功能,分享功能,收藏功能。對(duì)周邊應(yīng)用的具體詳情再次查看,怎么進(jìn)行數(shù)據(jù)的處理,詳情頁面在處理的時(shí)候,難點(diǎn)就在于怎么把本頁的周邊app再通過點(diǎn)擊app在本頁顯 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 示具體的信息,這個(gè)問題導(dǎo)致我把程序進(jìn)行了大修改,煩躁啊,因?yàn)榍捌诘倪壿嫑]處理好,導(dǎo)致這里傳值出問題,不過在我的努力下還是把程序都改了。 在完成逐個(gè)模塊測(cè)試后,開始對(duì)系統(tǒng)進(jìn)行驗(yàn)收測(cè)試,運(yùn)行該系統(tǒng),在運(yùn)行過程中查找出現(xiàn)的錯(cuò)誤。 5.2 功能整體測(cè)試 在安裝好配置環(huán)境的電腦上測(cè)試,剛開始出現(xiàn)屏幕混亂,經(jīng)過反復(fù)修改,現(xiàn)在已經(jīng)能正常運(yùn)行。用xcode上自動(dòng)檢測(cè)內(nèi)存工具,檢測(cè)出多處內(nèi)存泄露問題,都已經(jīng)修改。測(cè)試到這個(gè)階段就簡單多了,繁瑣的工作都做完了,不過在這個(gè)階段我還是發(fā)現(xiàn)了一個(gè)嚴(yán)重的問題,就是內(nèi)存泄露,原因是我在cell中實(shí)例化了一個(gè)控件,我當(dāng)時(shí)竟然天真的以為ARC不會(huì)有內(nèi)存泄露,但是還是出現(xiàn)了,cell復(fù)用的時(shí)候,雖然使用的以前的cell,但是你在cell里邊申請(qǐng)的控件還會(huì)一直開辟空間消耗內(nèi)存,這樣就會(huì)導(dǎo)致內(nèi)存泄露。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 總結(jié)與展望 總結(jié) 經(jīng)過一段時(shí)間的忙碌,終于把畢業(yè)設(shè)計(jì)的任務(wù)完成了。現(xiàn)在我對(duì)該系統(tǒng)做一下總結(jié) 本項(xiàng)目的開發(fā)目標(biāo),主要是為了提供iphone手機(jī)應(yīng)用平臺(tái),為用戶更好的體驗(yàn)iphone手機(jī)。設(shè)計(jì)經(jīng)過緊張而有序的系統(tǒng)開發(fā),收獲頗豐,感觸頗深。現(xiàn)在對(duì)經(jīng)驗(yàn)收獲、教訓(xùn)反思兩大部分總結(jié)如下: 經(jīng)驗(yàn)收獲: 1.編寫程序前,對(duì)已完成設(shè)計(jì)構(gòu)思的系統(tǒng)進(jìn)行主次分析,排好功能實(shí)現(xiàn)順序,列出程序編、寫步驟,對(duì)于理清編程思路很有幫助。人的邏輯思維可能很發(fā)達(dá),在設(shè)計(jì)當(dāng)中可以不用筆記,在腦中就能想好三到五個(gè)功能的邏輯關(guān)系和編寫步驟。但以后我們面對(duì)的是一個(gè)龐大的系統(tǒng),大系統(tǒng)下分多個(gè)子系統(tǒng),子系統(tǒng)下分多個(gè)功能模塊,功能模塊下分多個(gè)功能頁面,功能頁面下分多個(gè)子功能,而且子系統(tǒng)、功能模塊、功能頁面、子功能之間的邏輯關(guān)系構(gòu)成了一張復(fù)雜龐大的邏輯關(guān)系網(wǎng)。這就需要我們?cè)谠茸龊玫脑O(shè)計(jì)流程圖上,系統(tǒng)規(guī)劃,全面分析,逐步細(xì)化,反復(fù)斟酌、推敲,然后列出編程計(jì)劃。 2.善于借鑒他人的成果,實(shí)現(xiàn)自己的功能,可以有效地縮短開發(fā)時(shí)間,提高工作效率,是快速提高編程能力的最佳途徑。借鑒他人的勞動(dòng)成果并不是簡單地拷貝別人的源代碼,如果只是這樣的話,你會(huì)因?yàn)橄到y(tǒng)經(jīng)常的報(bào)錯(cuò),卻束手無策,最后將其認(rèn)為是雞肋而抱怨連天。應(yīng)該是先要分析讀透他人的程序思想,取其精華,去其糟粕,使之成為自己的思想,然后將這些功能塊與自己的功能塊融合。 3.在完成這個(gè)課題的過程中,遇到了很多問題。對(duì)于iOS的開發(fā)過程更是頭疼,因?yàn)樵趇OS中有些控件必須接收協(xié)議,而且不用手動(dòng)調(diào)用協(xié)議中的方法,系統(tǒng)自己調(diào)用,比如:UITableView。這個(gè)讓我感覺很不可思議,以至于每次非得手動(dòng)調(diào)用協(xié)議,但是每次都出錯(cuò),后來就記住這個(gè)問題了。 4.每編完一個(gè)功能,應(yīng)及時(shí)與其它完成功能一起測(cè)試,運(yùn)行無誤后,方可進(jìn)行下一步開發(fā)。這樣做是為了在測(cè)試時(shí)如果出錯(cuò)能很方便地找到出錯(cuò)的環(huán)節(jié)和病因所在,我們稱之為“step by step”(一步一腳?。瑢?duì)于一個(gè)初級(jí)的程序開發(fā)者來說是很有幫助的。對(duì)于編程人員來說每一個(gè)環(huán)節(jié)都是來不得有半點(diǎn)差錯(cuò)的,每一個(gè)功能都是環(huán)環(huán)相扣,相互關(guān)聯(lián),相互作用的 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 教訓(xùn)反思:(1).學(xué)習(xí)與實(shí)踐的結(jié)合不當(dāng)。當(dāng)我進(jìn)行程序開發(fā)的時(shí)候,發(fā)現(xiàn)以前學(xué)習(xí)的知識(shí)點(diǎn)到用時(shí)卻忘得一干二凈了,也只好重新學(xué)習(xí)基本知識(shí)了。如果以前把知識(shí)學(xué)得透徹點(diǎn),理解深刻點(diǎn),也許在開發(fā)過程中可以縮短時(shí)間,提高效率。反思自我,歸其原因:不是當(dāng)時(shí)的學(xué)習(xí)不夠認(rèn)真,而是缺乏對(duì)知識(shí)點(diǎn)的運(yùn)用實(shí)踐;對(duì)于像我這樣“半路出家”的編程人員來說,只是理解知識(shí)點(diǎn)是遠(yuǎn)遠(yuǎn)不夠的,如果當(dāng)時(shí)沒有經(jīng)過編譯、運(yùn)行、調(diào)試的過程,很快就會(huì)忘記的。 (2).學(xué)習(xí)目標(biāo)不專一。我們都知道在學(xué)習(xí)的時(shí)候是最忌諱這個(gè)還沒學(xué)明白就去學(xué)那個(gè)的,結(jié)果當(dāng)然是哪個(gè)也沒學(xué)明白。這個(gè)沒學(xué)好,就想用另一個(gè),造成學(xué)習(xí)不深入,學(xué)習(xí)效果不好。以后一點(diǎn)要記住此教訓(xùn)。 展望 這次畢業(yè)設(shè)計(jì)項(xiàng)目做得時(shí)間挺長的,從開始學(xué)習(xí)c語言,到后來的高級(jí)語言objective-c、UI、初級(jí)網(wǎng)絡(luò)、高級(jí)網(wǎng)絡(luò)等。到最后項(xiàng)目的結(jié)束,感覺自己學(xué)習(xí)到了很多知識(shí),但是知道的越多你就會(huì)越發(fā)的感覺到自己知識(shí)的不足,第一次開始認(rèn)認(rèn)真真的學(xué)習(xí)c還是從圖書館里的《21天精通c語言》開始,是一門語言你就要記憶很多東西,我學(xué)習(xí)的時(shí)候覺得最難得不是邏輯而是記憶,到后來的objective-c,這門高級(jí)語言的底層是對(duì)c語言的封裝,把c的很多邏輯封裝成方法,你只需拿來用就ok了,oc學(xué)完的時(shí)候已經(jīng)是年后了,之后學(xué)習(xí)了UI的界面搭建,以及初級(jí)網(wǎng)絡(luò)。學(xué)完初級(jí)網(wǎng)絡(luò)就著手寫自己的畢業(yè)項(xiàng)目,當(dāng)時(shí)覺得很難,很多知識(shí)都不熟悉,還有分享,block等高級(jí)網(wǎng)絡(luò)的知識(shí)還沒有接觸到,因此在初期畢業(yè)項(xiàng)目制作過程中只完成了界面的加載數(shù)據(jù),界面之間沒有相互的跳轉(zhuǎn),很沒有活力,基本的界面搭建完成已經(jīng)過了一個(gè)多星期了,之后有做了bug調(diào)試,把出現(xiàn)的問題解決了,這樣這個(gè)app才有了形,這個(gè)完成之后我就著手學(xué)習(xí)了高級(jí)網(wǎng)絡(luò),接觸到了分享,支付,通信等知識(shí),還學(xué)了block的界面?zhèn)髦?,平時(shí)學(xué)習(xí)完都會(huì)做一些小的demo來做練習(xí),大概一星期之后才回頭來完善自己的畢業(yè)項(xiàng)目,這是的畢業(yè)項(xiàng)目也已不是當(dāng)初的大難題了。 雖然畢業(yè)項(xiàng)目做完了,但是功能并不是那么完美,就像我剛開始接觸這門語言時(shí),我會(huì)覺得很難辦,到我學(xué)的多了,見得多,用的多了,豐富的知識(shí)已經(jīng)讓我感覺到自己入門了,有自己的學(xué)習(xí)方法了,本來學(xué)習(xí)就是一個(gè)循循漸進(jìn)的過程,我們每個(gè)人都不可能一下子做的很完美,很出色,都需要不斷的完善。我也希望自己在以后的工作中得到更多的知識(shí)、經(jīng)驗(yàn)。讓自己不斷地進(jìn)步,做出屬于自己 41 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 的獨(dú)特的作品。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 參考文獻(xiàn) [1] 譚克強(qiáng)Objective-C程序設(shè)計(jì)(第四版)。 [2] 51cto網(wǎng)站oc教學(xué)視頻自學(xué)。以及對(duì)牛人博客的借鑒。[3] 21天精通c語言,河南理工大學(xué),圖書館。[4] 博客園學(xué)習(xí),主要學(xué)習(xí)UI時(shí)對(duì)我的幫助很大。 [5] cocoaChina第三方庫的使用,對(duì)后期做畢業(yè)設(shè)計(jì),提供很多便利。 [6] 個(gè)人覺得最好用的還是度娘,什么問題都可以問她,自學(xué)學(xué)到的東西才會(huì)理解的更 深刻。 [7] DaveMak(美)JackNutting(美)JeffLaMarche(美)著.楊越孫文磊等譯.ios5基礎(chǔ) 教程[M].北京:人民郵電出版社.2013:3 [8] MarkDalrymple(美)ScottKnaster(美)著.楊越等譯.Objective-C基礎(chǔ)教程[M].北 京:人民郵電出版社.2012:7 [9] StephenG.Kochan著.林翼、范俊、朱奕欣譯.Objective-C程序設(shè)計(jì)(第四版)[M]。北京:電子工業(yè)出版社,2012:12 [10] 虞斌著.Ios軟件開發(fā)揭秘:iPhone&iPad企業(yè)應(yīng)用和游戲開發(fā)[M].北京:電子出 版社,2011:1 [11] 克萊爾(美)著.李強(qiáng)譯.Objective-C2.0Mac和ios開發(fā)實(shí)踐指南[M].北京:機(jī)械 工業(yè)61出版社,2011:1 [12] BrianW.KernighanDeninisMRirchie著,徐寶文,李志(譯)TheCProgramming Language[M].北京:機(jī)械工業(yè)出版社2003:2 [13] 徐松林,黃猛著.cocos2D-x手機(jī)游戲開發(fā)[M].北京:人民郵電出版社.[14] Ronpatton(美)著.王鈺,曹躍譯.軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2006 [15] 王水著.軟件工程[M].河南:河南科學(xué)技術(shù)出版社,2008:8 [16] 吳潔明著.軟件工程實(shí)例教程[M].北京:清華大學(xué)出版社,2010:11 43 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 謝 辭 在本論文的寫作過程中,我的導(dǎo)師宋成老師傾注了大量的心血,從選題到開題報(bào)告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題,嚴(yán)格把關(guān),循循善誘,在此我表示衷心感謝,謝謝宋成老師在我撰寫論文的過程中給與我的極大地幫助 同時(shí)我要感謝學(xué)院的各位老師、同學(xué)和朋友。在整個(gè)的論文寫作中,各位老師、同學(xué)和朋友積極的幫助我查資料和提供有利于論文寫作的建議和意見,在他們的幫助下,論文得以不斷的完善,最終幫助我完整的寫完了整個(gè)論文 另外,要感謝在大學(xué)期間所有傳授我知識(shí)的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識(shí),感謝這四年來計(jì)算機(jī)學(xué)院對(duì)我的栽培,使我成為了一名合格的理工學(xué)子。 剛?cè)腴TUI的小伙伴是不是不知道app該怎么切圖、規(guī)范是什么?怎么和程序員同學(xué)配合,用什么工具更方便,怎么標(biāo)注自己的設(shè)計(jì)稿,怎么做到一稿適配多種機(jī)型,這篇文章將一一解答你的疑問! 依舊聲明:這里寫的不是一種規(guī)范,只是一種工作方法,大家在具體工作中,一定要靈活運(yùn)用。另外,技術(shù)的更新是非??斓模?,還是要靈活運(yùn)用~ 我本身是一名GUI設(shè)計(jì)師,所以我只站在GUI設(shè)計(jì)師的角度去把APP從項(xiàng)目啟動(dòng)到切片輸出的過程寫一寫,相當(dāng)于工作流程的介紹吧;公司不同,流程不盡相同,但是終究還是能有些幫助。 這里我們只說IOS系統(tǒng)下的設(shè)計(jì),至于Android,因?yàn)槌叽缣?,涉及的東西比較亂,我整理好以后再說吧。 頁面篇幅比較長,不推薦一次性看完,那樣你潛意識(shí)里就會(huì)對(duì)它厭煩了,所以可以有時(shí)間讀一讀,看一看。 Part 1 項(xiàng)目立項(xiàng) 完善的公司會(huì)把項(xiàng)目相關(guān)人員聚集起來,產(chǎn)品經(jīng)理會(huì)把產(chǎn)品詳細(xì)的用原型展示出來,包括產(chǎn)品定位,市場(chǎng)需求,主打賣點(diǎn),產(chǎn)品性質(zhì)以及各模塊具體功能,邏輯跳轉(zhuǎn)演示一下;之后會(huì)評(píng)估項(xiàng)目用時(shí),各部門協(xié)調(diào),項(xiàng)目啟動(dòng)。 話不多說,接到原型,那我們應(yīng)該做什么準(zhǔn)備工作呢? 在項(xiàng)目設(shè)計(jì)之初,就該進(jìn)行項(xiàng)目歸檔整理,我的習(xí)慣是“項(xiàng)目名稱+版本序列”; 沒有最正確的工作方法,只有最適合自己的工作習(xí)慣。 我個(gè)人習(xí)慣把不同類型的文件劃分到不同類型的文件夾里,有的設(shè)計(jì)師習(xí)慣全都放在一個(gè)文件夾里,如果文件少還說的過去,如果頁面過多,就知道這樣的利弊了。 工欲善其事必先利其器,基本上我做界面設(shè)計(jì)用的最多的就是PS和AI了,版本無所謂,用著舒服就行,推薦版本高一點(diǎn)的,低版本好多方便功能都沒有。 標(biāo)注工具: PxCook,目前我還沒用上Mac,所以也不知道傳說中的Sketch到底多神奇。PxCook在Windows上標(biāo)注還比較順手,雖然它還附帶切圖功能,但是比較雞肋,不推薦用它切圖。 切圖工具: Cutterman 點(diǎn)擊下載一款PS的插件,切圖非常方便,但不支持綠色免安裝版本PS,而且對(duì)PS版本要求比較高,針對(duì)CS 6的已經(jīng)不維護(hù)更新了。推薦安裝官方完整版PS cc,然后自行破解。官網(wǎng)上有安裝使用教程,自己研究下吧,因?yàn)槲乙彩亲罱砰_始接觸這款插件。 Assistor PS 也是一款PS的切圖標(biāo)注插件,也被譽(yù)為神器;我使用了下,感覺相當(dāng)不錯(cuò),就是標(biāo)注還沒太適應(yīng),推薦一下這個(gè)。 標(biāo)注工具以及這兩款插件我都會(huì)上傳,至于安裝方法去“百度一下”吧,易學(xué)易用。Part 2 Photoshop設(shè)計(jì)尺寸 現(xiàn)在常用的幾種設(shè)計(jì)尺寸 1.640*960 4時(shí)代的尺寸,剛接觸APP設(shè)計(jì)用的是這個(gè)尺寸,擬物盛行的時(shí)代(現(xiàn)在用這個(gè)尺寸設(shè)計(jì)的應(yīng)該比較少了吧); 2.640*1136 5/5S/5C,IPhone更新,咱們?cè)O(shè)計(jì)也得跟著與時(shí)俱進(jìn)(應(yīng)該還有人用這個(gè)設(shè)計(jì)尺寸),進(jìn)入扁平的時(shí)代了; 3.750*1334 6 目前我做設(shè)計(jì)稿的設(shè)計(jì)尺寸,IPhone6的尺寸,向下可以適配4,5,向上可以適配6 plus;我記得IP6推出后,我問總監(jiān)應(yīng)該用什么尺寸設(shè)計(jì),他說用IP6的吧,好適配,切出來就是@2x了,改一改上下都能照顧到。 推薦做設(shè)計(jì)稿的時(shí)候使用IPhone6的尺寸進(jìn)行設(shè)計(jì)。 IP 6的尺寸相比于IP 5來說,很多系統(tǒng)控件尺寸并未變化,只是高度也就是內(nèi)容顯示區(qū)域發(fā)生了變化。下面是IPhone 6的空白文檔,我建立了參考線。 文檔建立之初就設(shè)置好參考線是個(gè)很好的工作習(xí)慣,我希望更多的設(shè)計(jì)師可以養(yǎng)成更好的工作習(xí)慣。 上下的參考線很容易設(shè)置,因?yàn)槭歉鶕?jù)IPhone自身系統(tǒng)設(shè)置的,左右的參考線我習(xí)慣設(shè)置為24px,也就是顯示內(nèi)容距離邊框的距離。這不是絕對(duì)的,我和總監(jiān)研究過,究竟是設(shè)置為左右30px還是24px比較好,通過對(duì)國內(nèi)國外各種APP的對(duì)比,覺得24px更適合一些,不寬不窄,這個(gè)完全是設(shè)計(jì)師個(gè)人的設(shè)計(jì)習(xí)慣,所以不要當(dāng)成什么規(guī)范,確切的說,整個(gè)屏幕你都可以隨便做,但是我們這里說的是正常頁面。 Part 3 頁面標(biāo)注 標(biāo)注是重中之重,工程師能不能完整的還原設(shè)計(jì)稿,很大一部分取決于標(biāo)注;如果不清楚你該怎么標(biāo),一定要和工程師溝通! 每個(gè)工程師實(shí)現(xiàn)效果的方法不同,我在這里所說的,是我的標(biāo)注習(xí)慣,但應(yīng)該適用于大部分的設(shè)計(jì)師和工程師。 不需要每一張效果圖都進(jìn)行標(biāo)注,你標(biāo)注的頁面能保證工程師開發(fā)每個(gè)頁面的時(shí)候都能順利進(jìn)行即可; 這里的標(biāo)注軟件使用的是PxCook,先標(biāo)一個(gè)空白文檔,看看都需要什么吧 這里要說一句,PxCook雖然可以自動(dòng)讀取顏色,但是還不能對(duì)PSD文檔里設(shè)置的透明度讀取,所以如果你用了透明色,推薦你用文字標(biāo)注直接寫出來原色值以及透明度?;旧衔也⒉皇褂肞XCook里面的顏色標(biāo)注工具,而是使用文字標(biāo)注工具,因?yàn)橐獦?biāo)識(shí)兩種色值,PxCook只能顯示一種色值。 一般我的習(xí)慣是PS和標(biāo)注軟件同時(shí)打開,因?yàn)橛袝r(shí)候標(biāo)注軟件并不能完全的把PSD文件里的東西標(biāo)注出來,所以標(biāo)注也要靈活運(yùn)用,如果無法標(biāo)注,就到PS里查看一下,然后再使用文字標(biāo)注說明一下。 標(biāo)注顏色是使用16進(jìn)制,還是RGB: 都用得到,要看實(shí)現(xiàn)什么東西,建議標(biāo)注顏色時(shí),兩種色值表達(dá)都標(biāo)上(16進(jìn)制&RGB)。你需要標(biāo)注的內(nèi)容有: 1.文字需要提供:字體大小(px),字體顏色; 2.頂部標(biāo)題欄的背景色值,透明度; 3.標(biāo)題欄下方以及Tab bar上方其實(shí)有一條分割線,需要提供色值; 4.內(nèi)容顯示區(qū)域的背景色(如果是全部頁面白色,那就和工程師說一句就行); 5.底部Tab bar的背景色值。 因?yàn)轫撁娴姆N類成千上萬,我想每種頁面都講一下,但是不現(xiàn)實(shí),希望可以舉一反三。下面的是一個(gè)比較普通的首頁頁面,但是基本上一款A(yù)PP中應(yīng)該標(biāo)的元素都有了~ 一般頁面你需要標(biāo)注這些地方: 所有元素統(tǒng)一距離屏幕最左24px(全局性的數(shù)據(jù)可以直接和工程師溝通,也可以標(biāo)注,推薦標(biāo)注出來) 1.標(biāo)題欄:背景色,標(biāo)題欄文字大小,文字顏色(不再贅述); 2.Banner:所有撐滿橫屏的大圖,不需要橫向尺寸,把高度標(biāo)出了就可以了;3.菜單圖標(biāo): 圖標(biāo)的大小和圖標(biāo)的可點(diǎn)擊區(qū)域不一定一致 也就是說,圖標(biāo)可以做的很小,但是為了保證點(diǎn)擊的準(zhǔn)確性和流暢性,工程師可以把可點(diǎn)擊區(qū)域設(shè)置的很大,這樣標(biāo)注和切圖的時(shí)候就要注意,標(biāo)注的是可點(diǎn)擊區(qū)域的大小,切圖切的也是可點(diǎn)擊區(qū)域的大小,也就是用透明區(qū)域去補(bǔ)上,否則圖片會(huì)模糊。在設(shè)計(jì)的時(shí)候就要考慮可點(diǎn)擊區(qū)域的范圍,比如X寶購物車頁面左側(cè)的小圈,可點(diǎn)擊區(qū)域要比實(shí)際小圈尺寸大很多。 這種類型的圖標(biāo)需要標(biāo)注圖標(biāo)點(diǎn)擊區(qū)域大小,圖標(biāo)距離屏幕最左最右以及上下的距離。至于圖標(biāo)的間距,因?yàn)橛行r(shí)候可能 設(shè)計(jì)師不能完全做到1px不差,所以我基本不標(biāo),交給工程師讓他們?nèi)ヌ幚?,其?shí)等距排列的圖標(biāo)不需要標(biāo)間距,因?yàn)楣こ處熯€要?jiǎng)討B(tài)適應(yīng)不同的屏幕,標(biāo)了間距也是白標(biāo)(還是要和你的搭檔溝通怎么去標(biāo)注); 4.模塊間隔:這個(gè)位置其實(shí)不是太重要,我習(xí)慣標(biāo)注上這里,麻煩能少則少。5.圖片+文字:這個(gè)應(yīng)該比較常見,只標(biāo)注一個(gè)單位(圖+文)就可以了。 圖片需要標(biāo)注寬高,因?yàn)楣こ處熞O(shè)置圖片區(qū)域,從后臺(tái)調(diào)取,可以這么說,軟件里除了橫屏撐滿的圖,基本上所有的圖片都要標(biāo)注寬高。 圖片距離上下左右的距離,文字大小顏色,這里的文字其實(shí)算兩個(gè)控件,標(biāo)題文字以及說明文字,需要單獨(dú)標(biāo)出。 Tab Bar: 這個(gè)位置其實(shí)比較特殊,你可以單獨(dú)標(biāo)注圖標(biāo)大小+文字大?。贿€可以圖標(biāo)文字算作一個(gè)控件,整個(gè)切出來; 我們工程師的習(xí)慣是用整個(gè)的,也就是圖標(biāo)+文字算作一個(gè)ICON,所以我基本不怎么標(biāo)注單獨(dú)的圖標(biāo)(這里可以和你的搭檔去溝通一下,看他是什么開發(fā)習(xí)慣)。關(guān)于列表頁類型的標(biāo)注問題 普通的列表有兩種方法(去問你的搭檔,他喜歡用什么方法): 1.標(biāo)出行高,行內(nèi)元素居中; 2.標(biāo)出行內(nèi)元素,元素上下間距,確定行高; 每種元素的位置如何確定: 通常標(biāo)注的都是元素距離屏幕最左側(cè)的距離,比如上圖的圖標(biāo)元素距離左側(cè)24px,文字元素距離左側(cè)100px。 標(biāo)注這個(gè)東西沒有固定的方法,工程師的開發(fā)習(xí)慣不同,標(biāo)注方法也不同。 該怎么標(biāo)注雖然可以在網(wǎng)上找到方法,但那不一定適合你,一定和自己的搭檔勤溝通,方法是死的,人是活的…… 所有的頁面標(biāo)注總結(jié)起來就是:標(biāo)文字,標(biāo)圖片,標(biāo)間距,標(biāo)區(qū)域; (上述圖標(biāo)出現(xiàn)了45px的單數(shù),因?yàn)檐浖詣?dòng)吸附上去了顯示了圖標(biāo)本身的尺寸,切圖的時(shí)候記得輸出個(gè)偶數(shù)尺寸的切片) Part 4 切片資源的輸出 切之前務(wù)必要和你的工程師搭檔溝通一下,該如何去切才能配合他的開發(fā)。 全局性的切圖常見問題 ① 你的所有設(shè)計(jì)尺寸,包括圖形效果,應(yīng)該盡量使用偶數(shù)。 技術(shù)開發(fā)使用的尺寸是設(shè)計(jì)稿像素尺寸的一半,也就是說,如果你用24px的字體,技術(shù)那邊就是設(shè)置為12px; 所以標(biāo)注的時(shí)候務(wù)必使用偶數(shù),為了保證最佳的設(shè)計(jì)效果,避免出現(xiàn)0.5像素的虛邊。② 切圖尺寸應(yīng)該提供幾套? ico_car.png IPhone2G,3G,3GS使用(好像沒人用這手機(jī)了吧)ico_car@2x.png IPhone4,5,6優(yōu)先加載此尺寸圖片(不是必須使用這個(gè)尺寸,是優(yōu)先加載調(diào)用這個(gè)尺寸)ico_car@3x.png IPhone6 plus使用的尺寸 可以簡單的理解為倍數(shù)關(guān)系(其實(shí)是為了滿足不同分辨率,我覺得不用過于深究),如果你使用IPhone 6尺寸做設(shè)計(jì)稿,那么切片輸出就是@2x,縮小2倍就是@1x,擴(kuò)大1.5倍就是@3x了。 理論上,為了達(dá)到最好的視覺效果,你應(yīng)該輸出三套尺寸,推薦輸出三種尺寸的切片資源。我的工程師搭檔要求我給兩套尺寸就可以,也就是@1x @2x的兩種尺寸,因?yàn)槲覀儧]有6 plus的測(cè)試機(jī),所以看不到效果,據(jù)他說應(yīng)該不會(huì)太失真,但是為了保證效果,我還是給三套尺寸。 另外現(xiàn)在幾乎看不到3GS了,所以需不需要提供一倍圖,還是要和工程師討論一下~ @1x @2x @3x是開發(fā)工具Xcode軟件需要的UI資源,命好名稱后,IOS設(shè)備會(huì)自動(dòng)的選取合適尺寸。 ③共用資源的圖片,輸出一張就可以 類似這種重復(fù)的按鈕之類的,只要提供一張共用的資源就可以了;上面的文字是技術(shù)寫上去的。 理論上按照最佳視覺效果,你應(yīng)該提供多尺寸的圖片;但通常我只提供最大尺寸的一張圖片即可,這一點(diǎn)要和你的搭檔溝通好,卻問他需要什么方式。 ④切片的輸出格式 文件→存儲(chǔ)為Web所用格式 位圖格式:PNG 24,PNG 8,JPG 在JPG和PNG兩種格式圖片大小相差不是很大的情況下,推薦使用PNG;如果圖片大小相差很大,使用JPG。 歡迎頁面,ICON一定要使用PNG格式,在不影響視覺效果的前提下,可以考慮使用PNG 8; 矢量圖格式:PDF,SVG IOS原生支持的兩種矢量圖片格式,但是支持的一般,并不能保證100%把所有圖片效果渲染出來; 為了保險(xiǎn)起見,我通常不使用這兩種格式,推薦還是使用位圖,如果以后技術(shù)提升,100%支持SVG和PDF這種矢量格式圖,那個(gè)時(shí)候也許不用提供這么多套尺寸了~ ⑤圖標(biāo)的點(diǎn)擊區(qū)域 最小點(diǎn)擊區(qū)域問題: IOS人機(jī)指導(dǎo)手冊(cè)里推薦的最小可點(diǎn)擊元素的尺寸是44*44 point(點(diǎn)),在設(shè)備上1 point等于1像素,所以轉(zhuǎn)換成像素就是44*44像素,換算成物理尺寸大概是7mm左右吧(人機(jī)工效學(xué)研究中得出的結(jié)論:用食指操作,觸擊范圍在7mm左右合適;用拇指操作,范圍在9mm左右合適)。據(jù)說這個(gè)尺寸下,不容易出現(xiàn)誤操作,誤點(diǎn)擊;小于這個(gè)尺寸,點(diǎn)擊就會(huì)變的有些不太準(zhǔn)確,一向注重用戶體驗(yàn)的蘋果公司定義這個(gè)最小點(diǎn)擊尺寸也不是沒根據(jù)的…… 所以現(xiàn)在做設(shè)計(jì),為了圖標(biāo)精致,你可以把圖標(biāo)做的小一些,但是切圖輸出的時(shí)候,要考慮用戶點(diǎn)擊難易度的問題,所以,切圖的時(shí)候,涉及到需要點(diǎn)擊的小圖標(biāo)的時(shí)候,普通屏幕還是切44px大小,高清屏就需要切88px,不夠的地方用透明區(qū)域補(bǔ)全,否則用戶點(diǎn)擊的時(shí)候會(huì)比較困難,會(huì)很不靈敏。⑥圖片圖標(biāo)的不同狀態(tài) 每種圖標(biāo)或者圖片如果有不同狀態(tài),每一種不同的狀態(tài)都需要進(jìn)行切片輸出。 比如按鈕有正常(normal),按下(pressed),選中(selected),禁用(disabled)等多種狀態(tài),最常出現(xiàn)的就是normal→pressed→normal;某些特定按鈕控件會(huì)出現(xiàn)選中狀態(tài),具體情況具體分析吧。這里顯示的是你要知道按鈕可能有幾種狀態(tài)…… 切片的命名規(guī)則 命名并不是統(tǒng)一的規(guī)范,不同的公司不同的工程師有著自己不同的命名規(guī)范和命名習(xí)慣,但是大致還是有跡可循的,一般是: 切片種類+功能+圖片描述(可有可無)+狀態(tài).png 名稱應(yīng)使用英文命名(中文不識(shí)別,推薦小寫字母),不要以數(shù)字或者符號(hào)當(dāng)作開頭,使用下劃線進(jìn)行連接。 舉個(gè)例子:一個(gè)首頁的處于正常狀態(tài)的確定按鈕 btn_sure_nor.png btn_sure_nor@2x.png 切片種類是按鈕(btn);功能是確定(sure);狀態(tài)是normal(正常)我通常是以這種命名方式進(jìn)行命名,如果你的公司有設(shè)計(jì)文檔,去看看之前留下的命名規(guī)范,如果沒有,那就去問工程師吧。 Tab bar(底部欄) 說說Tab bar這里,因?yàn)楸容^特殊。 如果單純的只有圖標(biāo),自然是只切圖標(biāo)就好了; 早上和工程師溝通,這里該怎么切,工程師給的建議是 圖標(biāo)+文字的模式,圖標(biāo)最好單獨(dú)切,文字后面程序加上去。 另外記住,同一模塊的圖標(biāo)切片大小保持一致,上圖的四個(gè)圖標(biāo)本身尺寸并不相同,但是切圖的時(shí)候你需要切出相同尺寸的陰影大小,便于工程師開發(fā)使用。該怎么切圖,還是要和你的工程師搭檔去溝通一下; 以下是常用命名,這是我的命名習(xí)慣,并不是規(guī)范,所以要靈活,如果實(shí)在不知道英文,就用拼音代替也行。 Part 5 工作常用數(shù)據(jù) 你需要使用的字體: 如果是用Mac設(shè)計(jì)的小伙伴,直接就用蘋果黑體字就好了;不過用Windows的就沒那么幸運(yùn)了,PC上還沒和IPhone默認(rèn)字體效果完全一樣的字體,通常都是拿其他字體代替。蘋果麗黑 Hiragino Sans GB W3(普通)/W6(粗體) 比較接近IPhone字體的一款字體,這是我之前一直使用的設(shè)計(jì)字體。 黑體-簡 STHeitiSC-Light Mac里面拷出來的蘋果黑體,比較貼近IPhone手機(jī)字體,目前在用。 我會(huì)把這兩款字體上傳,有需要可以下載。 關(guān)于字體大小的問題 頂部操作欄文字大小 34-38px 標(biāo)題文字大小 28-34px 正文文字大小 26-30px 輔助性文字大小 20-24px Tab bar文字大小 20px 文字大小只是一個(gè)范圍,這要根據(jù)設(shè)計(jì)的視覺效果來決定,不要死記硬背,但是切記,字體大小要用偶數(shù)。 你需要知道的IPhone設(shè)計(jì)尺寸(這里是一個(gè)整屏的尺寸包括了狀態(tài)欄)320*480 IPhone3GS(我沒見過3GS實(shí)體機(jī),只在網(wǎng)上見過圖片,但你需要知道這個(gè)尺寸)640*960 IPhone 4/4s(4時(shí)代的設(shè)計(jì)尺寸)640*1136 IPhone 5/5s/5c(5時(shí)代的設(shè)計(jì)尺寸,雖然現(xiàn)在出來6/6 plus,但還有人再用這個(gè)尺寸設(shè)計(jì)) 750*1334 IPhone 6(目前最新的設(shè)計(jì)尺寸,基本上現(xiàn)在做IOS的APP設(shè)計(jì),用這個(gè)的應(yīng)該最多)1242*2208 IPhone6 plus(這是標(biāo)準(zhǔn)分辨率,也就是設(shè)計(jì)需要的尺寸;另外還存在物理分辨率是1080*1920,這并不需要深入理解。plus還涉及到橫屏,橫屏是是沒有狀態(tài)欄的,設(shè)計(jì)橫屏?xí)r可以參考IPad的設(shè)計(jì)模式) 你需要提交的啟動(dòng)頁面 這是開發(fā)工具Xcode提供的LaunchImage(啟動(dòng)頁面)的各項(xiàng)尺寸,不過好像現(xiàn)在已經(jīng)改了,這還是工程師很久之前給我的,咋一看是不是嚇一跳?工程師是按照IOS的系統(tǒng)版本來設(shè)置的,但你是設(shè)計(jì)師,你是按照IPhone的版本來作圖的,所以其實(shí)沒有那么多,真實(shí)情況下,我們的工程師要求提供以下幾個(gè)尺寸: 640*960(4/4s)640*1136(5/5s/5c)750*1334(6)1242*2208(6 plus) 2208*1242(6 plus的橫屏尺寸,如果你們的軟件支持橫屏模式,你就需要做一張橫屏的啟動(dòng)頁面)注意,啟動(dòng)頁面一定要是PNG格式的 圖標(biāo)的提交尺寸 IOS系統(tǒng)可以自動(dòng)把圖片裁剪為圓角,所以提交圖標(biāo)的時(shí)候,你只需要提交正方形的PNG圖片即可。 因?yàn)樾枰膱D標(biāo)非常多,不可能全部加進(jìn)去,只能選擇最好的尺寸,我們的工程師要求我提供以下圖標(biāo)尺寸: 1024*1024 Retina APP Icon for APP Store(高清屏的APP Store)512*512 APP Icon for APP Store(普通屏幕的APP Store)120*120 6的主屏幕尺寸 114*114 5/4s/4的主屏幕圖標(biāo)尺寸 57*57 3GS的主屏幕圖標(biāo)尺寸 58*58 Retina Settings圖標(biāo)尺寸 29*29 Settings圖標(biāo)尺寸 提交的圖標(biāo)尺寸不是固定的,所以,去找和你搭檔的工程師,讓他給你出一份需要提交的圖標(biāo)尺寸文檔。 差不多用的到的就這些,有時(shí)間可以去查看一下蘋果的IOS人機(jī)指導(dǎo)手冊(cè)或者開發(fā)文檔,上面有更加詳細(xì)的數(shù)據(jù)說明。 但實(shí)際工作中需要的并不像手冊(cè)上提供的尺寸那么多,所以工作之中,和你的工程師搭檔去溝通,你要知道的是你們公司開發(fā)所用的數(shù)據(jù),而不是蘋果提供給你的數(shù)據(jù)。 本篇是之前五篇的匯總,保留的基本全是工作需要的東西,至于更多的感想以及我對(duì)設(shè)計(jì)現(xiàn)狀的思考,以及一些下載素材,可以去看看其余的五篇文字以及番外,對(duì)你應(yīng)該有些許幫助吧。 iOS教學(xué)大綱 C語言 教學(xué)目標(biāo):讓學(xué)生掌握基本的編程思想,語言結(jié)構(gòu)和常用經(jīng)典算法。使學(xué)生具有基本的編程素養(yǎng)和思維。能夠用c語言描述各類經(jīng)典過程,記錄各種數(shù)據(jù)。為之后的應(yīng)用開發(fā)打好基礎(chǔ)。1)C語法基礎(chǔ) a)常量、變量類型、變量 b)運(yùn)算符:算術(shù)、關(guān)系、邏輯 c)分支語句 d)循環(huán)語句 e)數(shù)組 f)結(jié)構(gòu)體 g)指針 h)函數(shù) i)經(jīng)典排序、選擇算法 j)鏈表的概念和簡單實(shí)現(xiàn) Objective-C語言 教學(xué)目標(biāo):使學(xué)生熟練掌握OC語言特性和語法。系統(tǒng)訓(xùn)練學(xué)生面向?qū)ο缶幊趟季S,能夠處理各種復(fù)雜問題。具有基本的處理復(fù)雜問題的解決能力。1)OC語法基礎(chǔ) a)類的聲明與實(shí)現(xiàn) i)類聲明的關(guān)鍵字 ii)類實(shí)現(xiàn)關(guān)鍵字 b)成員變量和方法 i)成員變量訪問權(quán)限 ii)方法類型 iii)方法名與參數(shù) c)對(duì)象指針的創(chuàng)建與分配內(nèi)存 i)內(nèi)存分配,初始化 ii)定制初始化過程過程 d)屬性機(jī)制 i)屬性作用 ii)屬性控制符 e)點(diǎn)語法 i)點(diǎn)語法規(guī)則 ii)點(diǎn)語法使用 f)self關(guān)鍵字 i)方法隱含參數(shù) ii)self賦值過程 2)繼承與復(fù)合 a)繼承語法 b)消息動(dòng)態(tài)路由 c)super關(guān)鍵字 3)字符串與集合 a)字符串 i)創(chuàng)建,復(fù)制 ii)截取,分割 iii)拼接 b)數(shù)據(jù)結(jié)構(gòu) i)概念 ii)關(guān)系型數(shù)據(jù) iii)關(guān)系表現(xiàn) c)數(shù)組和字典的基本使用 d)數(shù)組、字典和字符串的嵌套對(duì)數(shù)據(jù)的保存 e)JSON格式 4)內(nèi)存管理-ARC a)ARC原理 b)ARC關(guān)鍵字的作用 i)Strong ii)Weak iii)Autoreleasing iv)Unseft__unretian c)強(qiáng)引用循環(huán) i)出現(xiàn)原因 (1)相互強(qiáng)引用(2)間接強(qiáng)引用鏈 ii)避免方法 (1)使用weak打破強(qiáng)引用鏈 5)OC語言特性 a)類目 b)延展 c)協(xié)議 d)KVO(鍵值觀察)、KVC(鍵值編碼)e)單例模式 f)通知中心 6)模塊化編程1 a)模塊 i)模塊概念 ii)模塊化結(jié)構(gòu) iii)模塊化開發(fā) b)目標(biāo)-動(dòng)作回調(diào) i)id類型 ii)SEL類型 c)委托模式回調(diào) i)回調(diào)方法規(guī)范 ii)回調(diào)對(duì)象規(guī)范 7)模塊化編程2 a)Block i)概念及用途 ii)定義方法 b)Block回調(diào) 8)模塊化編程3 a)復(fù)雜模塊 b)觸發(fā)回調(diào) i)觸發(fā)目標(biāo)的動(dòng)作 ii)觸發(fā)委托人方法 iii)觸發(fā)Block對(duì)象 iOS App開發(fā)基礎(chǔ)(原UI基礎(chǔ)) 教學(xué)目標(biāo):快速高效的學(xué)習(xí)和使用大量ios原生控件滿足視圖設(shè)計(jì)需求。能夠定制控件滿足特殊需求。能夠獨(dú)立完成app的開發(fā)工作。1)App開發(fā)入門 a)系統(tǒng)啟動(dòng)流程 i)代碼 ii)storyboard b)UIControl子類的使用 i)UIButton ii)… 2)系統(tǒng)組件 a)UIView b)UIView常用子類 3)視圖布局 a)絕對(duì)布局 i)常用視圖尺寸 ii)位置計(jì)算規(guī)則 b)相對(duì)布局 i)stroyboard設(shè)置約束 ii)代碼設(shè)置約束 c)橫豎屏變換 i)UIDevce獲取設(shè)備信息 ii)UIScreem獲取屏幕信息 d)視圖控制器關(guān)鍵時(shí)間點(diǎn) i)viewDidLoad ii)view相關(guān) iii)視圖朝向變換 4)視圖結(jié)構(gòu) a)導(dǎo)航控制器 i)根視圖控制器 ii)push與pop iii)bar月item b)頁簽控制器 i)自定義tabbar c)模態(tài)展示 d)視圖層次 5)表視圖 a)UITableView i)數(shù)據(jù)源 ii)委托回調(diào) b)表視圖控制器 c)靜態(tài)cell d)多樣式cell 6)數(shù)據(jù)持久化-CoreData a)CoreData的增刪改查 b)NSFechedResultController的使用 c)表視圖的增刪改 7)網(wǎng)絡(luò)編程 a)后臺(tái)文檔的閱讀 b)創(chuàng)建請(qǐng)求 c)創(chuàng)建連接 d)解析數(shù)據(jù) e)AFNetWork的使用 f)CocosPods的使用 8)應(yīng)用事件及狀態(tài),手勢(shì),繪圖 a)事件傳遞過程 b)事件響應(yīng)過程 c)應(yīng)用狀態(tài) d)狀態(tài)切換 9)多線程 a)NSObject多線程方法 b)NSThred多線程 c)隊(duì)列與操作 d)GCD iOS App開發(fā)專題(原UI高級(jí)) 教學(xué)目標(biāo):針對(duì)市面上流行app的常用功能模塊的開發(fā)實(shí)現(xiàn)。使學(xué)生具有多個(gè)項(xiàng)目的核心解決方案。1)表視圖搜索 a)UISearchDisplayController的使用 b)UISearchBar的使用 c)CoreData謂詞的使用 2)新聞列表 a)下拉刷新 b)點(diǎn)擊加載更多 3)圖文混排(文字表情實(shí)現(xiàn))a)TextKit框架 b)富文本的使用 c)添加鏈接 4)自定義鍵盤 a)表情鍵盤 b)功能鍵盤 c)鍵盤切換與高度獲取 5)照片庫 a)選取圖片與視頻 b)拍攝照片 c)錄制視頻 6)定位與位置服務(wù) a)CoreLocation定位 b)使用新浪位置服務(wù) 7)音頻錄制播放 8)scrollView輪播與縮放 9)常用第三方 a)加密類 b)指示類 c)功能類 iOS App練習(xí)項(xiàng)目 教學(xué)目標(biāo):強(qiáng)化和練習(xí)學(xué)生處理問題的能力。1.通訊錄 a)具有聯(lián)系人增刪改查功能 b)首字母自動(dòng)分組功能 c)自定義頭像功能 d)表視圖索引 e)數(shù)據(jù)持久化 2.新浪微博 a)微博的展示與發(fā)送 b)展示有圖片和無圖片兩類微博 c)具有顯示表情功能 d)發(fā)微博可以發(fā)送表情和照片 e)可以轉(zhuǎn)發(fā)和收藏微博 f)點(diǎn)擊微博圖片可以放大顯示 3.Message a)使用xmpp通信協(xié)議進(jìn)行即時(shí)通信 b)高仿微信聊天界面與功能 iOS 上線APP 真實(shí)項(xiàng)目,完整開發(fā)上架流程。 云計(jì)算專題 教學(xué)目標(biāo):使學(xué)生可以在云平臺(tái)上搭建數(shù)據(jù)服務(wù)后臺(tái),對(duì)app進(jìn)行聯(lián)網(wǎng)數(shù)據(jù)支持。 1.云平臺(tái)使用 a)SAE,新浪 b)BAE,百度 c)ECS,阿里云 2.云儲(chǔ)存使用 a)Storage,新浪 b)七牛 c)OSS,阿里 3.PHP腳本 4.MySQL數(shù)據(jù)庫 敬愛的黨組織: 我是在 2012年1月20日被批準(zhǔn)為中共預(yù)備黨員的,預(yù)備期為一年,到2012年1月19日預(yù)備期滿。根據(jù)黨章第七條規(guī)定,今天我鄭重向黨組織提出轉(zhuǎn)正申請(qǐng),申請(qǐng)轉(zhuǎn)為中國共產(chǎn)黨正式黨員。請(qǐng)組織考慮我的請(qǐng)求! 為了使黨組織如期研究我的轉(zhuǎn)正問題,先將我的轉(zhuǎn)正申請(qǐng)書送上,請(qǐng)審查。 自從2012年1月20日批準(zhǔn)我為中共預(yù)備黨員后,在黨組織嚴(yán)格要求下,在黨支部教育下,在黨員同志的悉心幫助下,通過一系列的理論知識(shí)學(xué)習(xí)和實(shí)踐活動(dòng),我在思想政治水平上有了很大提高,切實(shí)增強(qiáng)了自身黨性修養(yǎng),進(jìn)一步認(rèn)識(shí)到做一名合格黨員不僅要解決組織上入黨的問題,更重要的是要從思想上入黨。在黨組織的培養(yǎng)教育下,我一直都按照黨員的標(biāo)準(zhǔn)來嚴(yán)格要求自己,加強(qiáng)政治理論學(xué)習(xí),對(duì)工作積極主動(dòng),認(rèn)真負(fù)責(zé)。下面,我向黨組織匯報(bào)一年來我的思想、工作、生活等方面的情況。 一、加強(qiáng)理論學(xué)習(xí)不斷提高思想政治素養(yǎng) 在黨組織的幫助教育下,我明確了作為一名共產(chǎn)黨員,必須把實(shí)現(xiàn)共產(chǎn)主義的遠(yuǎn)大理想與學(xué)習(xí)、工作的實(shí)際緊密結(jié)合起來。一年來,結(jié)合榆林村黨支部于 4月、9月分別 開展的“講黨性修養(yǎng)、樹良好作風(fēng)、促科學(xué)發(fā)展”教育活動(dòng)和第三批學(xué)習(xí)實(shí)踐科學(xué)發(fā)展觀活動(dòng),我系統(tǒng)學(xué)習(xí)中共十七大文件、十七屆三中、四中全會(huì)文件以及“講、樹、促”教育活動(dòng)和科學(xué)發(fā)展觀活動(dòng)學(xué)習(xí)資料等文件資料,深刻領(lǐng)會(huì)馬列主義、毛澤東思想、鄧小平理論和“三個(gè)代表”重要思想的理論實(shí)質(zhì),深入貫徹落實(shí)科學(xué)發(fā)展觀,努力提高運(yùn)用馬克思主義的理論、觀點(diǎn)、方法去研究、分析和解決實(shí)際問題的能力。通過這一系列的學(xué)習(xí),我提高了自己的政治思想水平,更加堅(jiān)定了對(duì)共產(chǎn)主義的信念,并且懂得了理論上的成熟是政治上成熟的基礎(chǔ),政治上的清醒來源于穩(wěn)固的理論基石。只有堅(jiān)定了共產(chǎn)主義信念,牢記全心全意為人民服務(wù)的宗 旨,才能在這個(gè)風(fēng)云變幻的國際環(huán)境中,在深化改革、擴(kuò)大開放、大力發(fā)展市場(chǎng)經(jīng)濟(jì)的新形勢(shì)下,始終堅(jiān)持黨的基本路線不動(dòng)搖,永遠(yuǎn)保持一個(gè)共產(chǎn)黨員應(yīng)有的共產(chǎn)主義純潔性和先進(jìn)性。 二、創(chuàng)造性開展工作 建設(shè)社會(huì)主義新農(nóng)村 作為一名新時(shí)代的中共預(yù)備黨員,我時(shí)刻嚴(yán)格要求自己,努力工作,開拓進(jìn)取。一年來,我始終能夠在鄭州高新區(qū)黨委、管委,溝趙黨工委、辦事處和榆林村黨支部、村委會(huì)的正確領(lǐng)導(dǎo)下,認(rèn)真團(tuán)結(jié)好班子其他成員,統(tǒng)一思想,齊心協(xié)力,積極主動(dòng)的做好各項(xiàng)工作。在實(shí)際工作中,積極 主動(dòng),不斷總結(jié)經(jīng)驗(yàn)教訓(xùn),切實(shí)增強(qiáng)了農(nóng)村工作水平。一年來,我主要做好以下兩個(gè)方面的工作: 1、創(chuàng)造性開展工作指導(dǎo)成立了高新區(qū)首家農(nóng)民養(yǎng)殖專業(yè)合作社。在高新區(qū)、溝趙辦事處領(lǐng)導(dǎo)的關(guān)心和村“兩委”的領(lǐng)導(dǎo)下,2012年3月,我直接指導(dǎo)成立了高新區(qū)首家農(nóng)民養(yǎng)殖專業(yè)合作社——鄭州高新區(qū)森地鑫農(nóng)民養(yǎng)殖專業(yè)合作社。 2、適應(yīng)新農(nóng)村信息技術(shù)新形勢(shì)需要建立了鄭州高新區(qū)首家村莊網(wǎng)絡(luò)博客。2012年12月,經(jīng)過榆林村“兩委”同意,在高新區(qū)、溝趙辦事處領(lǐng)導(dǎo)的關(guān)心和支持下,我運(yùn)用自身掌握的電腦技術(shù)知識(shí),在新浪網(wǎng)博客頻道建立了高新區(qū)首家村莊博客——鄭州高新區(qū)榆林村網(wǎng)上家園。森地鑫養(yǎng)殖合作社和榆林村網(wǎng)上家園成立以來,分別以其鄭州高新區(qū)首家農(nóng)民養(yǎng)殖專業(yè)合作社和首家村莊博客引起廣泛的關(guān)注?!多嵵萑?qǐng)?bào)》分別于2012年4月22日和2012年1月13日兩次做了相關(guān)報(bào)道。同時(shí),《鄭州日?qǐng)?bào)》的報(bào)道被人民網(wǎng)河南頻道、商都網(wǎng)、中原網(wǎng)、新農(nóng)村商網(wǎng)、鄭州市人民政府網(wǎng)、鄭州高新區(qū)政府網(wǎng)等十余家網(wǎng)站相繼轉(zhuǎn)載,獲得良好的經(jīng)濟(jì)和社會(huì)效應(yīng)。敬愛的黨組織: 2011年5月21日,經(jīng)黨黨支部批準(zhǔn),我成為一名光榮的中國共產(chǎn)黨預(yù)備黨員。現(xiàn)預(yù)備期已滿一年,按照《中國共 產(chǎn)黨章程》有關(guān)規(guī)定,我鄭重向支部組織提出入黨轉(zhuǎn)正申請(qǐng),申請(qǐng)成為中國共產(chǎn)黨正式黨員。 作為預(yù)備黨員以來,我在黨組織的嚴(yán)格要求下,在支部黨員的幫助下,通過一系列的理論知識(shí)學(xué)習(xí)和活動(dòng),無論是從政治上還是思想上都有了很大的提高,也增強(qiáng)了自身的黨性修養(yǎng),更進(jìn)一步的認(rèn)識(shí)到做一個(gè)合格的共產(chǎn)黨員,不僅要解決組織上入黨的問題,更重要的是要從思想上入黨。在黨組織的培養(yǎng)教育下,我一直都按照黨員的標(biāo)準(zhǔn)來嚴(yán)格要求自己,加強(qiáng)政治理論學(xué)習(xí),對(duì)工作積極主動(dòng),認(rèn)真負(fù)責(zé)。在這預(yù)備期的一年以來通過認(rèn)真學(xué)習(xí),使自己的世界觀、人生觀和價(jià)值觀都得到進(jìn)一步改造,思想認(rèn)識(shí)得到進(jìn)一步提高,更加符合一名合格黨員的標(biāo)準(zhǔn)。作為一名黨員,要不斷改造自我世界觀、人生觀和價(jià)值觀,任何時(shí)候都不能出現(xiàn)信念上的偏差。我能積極主動(dòng)地結(jié)合自己所擔(dān)負(fù)的工作特點(diǎn),自覺地加強(qiáng)“三個(gè)代表”重要思想的學(xué)習(xí)、科學(xué)發(fā)展關(guān)和黨的十七大精神的學(xué)習(xí),通過學(xué)習(xí)使我明白了黨員不只是一種榮譽(yù),更是一種責(zé)任。 在這一年的預(yù)備期里我的收獲很大,現(xiàn)向組織匯報(bào)如下: 一、努力掌握政治理論知識(shí),提高自身政治素質(zhì) 在黨的幫助教育下,我深深認(rèn)識(shí)到要以黨員的標(biāo)準(zhǔn)嚴(yán)格要求自己,要深入學(xué)習(xí)馬列主義的理論知識(shí)、“三個(gè)代表”的先進(jìn)思想和全面貫徹落實(shí)科學(xué)發(fā)展觀的重要思想。我深深的認(rèn)識(shí)到,只有刻苦學(xué)習(xí)共產(chǎn)主義理論,才能在復(fù)雜多變的國際環(huán)境中,在深化改革、擴(kuò)大開放、大力發(fā)展市場(chǎng)經(jīng)濟(jì)的新形勢(shì)下,堅(jiān)定信念,牢記全心全意為人民服務(wù)的宗旨,始終堅(jiān)持黨的基本路線不動(dòng)搖,永遠(yuǎn)保持一個(gè)共產(chǎn)黨員應(yīng)有的共產(chǎn)主義純潔性。第三篇:IOS設(shè)計(jì)規(guī)范
第四篇:iOS教學(xué)大綱
第五篇:轉(zhuǎn)正申請(qǐng)書