




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】YourFirstiOSApp(3)——AppDevelopmentProcess
AppDevelopmentProcess應(yīng)用程序開發(fā)流程雖然開發(fā)一個(gè)應(yīng)用程序的工作看上去讓人生畏,但是這個(gè)過程可以被簡化成幾個(gè)簡單的步驟。下面的這些步驟將幫助你開始和指導(dǎo)你在開發(fā)你的第一個(gè)應(yīng)用程序的時(shí)候有正確的方向。DefiningtheConcept確定構(gòu)想設(shè)計(jì)每一個(gè)偉大的app都開始于一個(gè)構(gòu)想。實(shí)現(xiàn)構(gòu)想的最佳方法就是考慮你想讓你的app解決的問題。偉大的app解決一個(gè)單一的、定義明確的問題。舉個(gè)例子,設(shè)置(Setting)應(yīng)用程序允許用戶調(diào)整所有設(shè)備上的設(shè)置。它為用戶完成一組相關(guān)的任務(wù)提供一個(gè)單一的界面。要得到一個(gè)構(gòu)想需要考慮如下的一些關(guān)鍵問題:誰是你的受眾?你的app內(nèi)容和用戶體驗(yàn)的不同將取決于你編寫的是一個(gè)兒童游戲、一個(gè)×××事宜清單、或者甚至是一個(gè)用于自己學(xué)習(xí)的測試程序。你的app的目的是什么?一個(gè)app擁有清晰明確的目標(biāo)是非常重要的。作為定義目標(biāo)的一部分,要了解用戶是被你的app的什么內(nèi)容吸引而使用app。app試圖解決的問題是什么?app應(yīng)該專注解決一個(gè)問題,而不是提供解決很多不同問題的方案。如果你發(fā)現(xiàn)你的app是在解決無關(guān)的問題的時(shí)候,你或許可以考慮寫多個(gè)app。app包含什么內(nèi)容?考慮你的app要包含什么類型的內(nèi)容給用戶,以及用戶如何與它進(jìn)行交互。設(shè)計(jì)用戶界面來實(shí)現(xiàn)出現(xiàn)在app中的內(nèi)容的類型。當(dāng)你開始開發(fā)你的app的時(shí)候,構(gòu)想不一定非要完美或完整。不過,它有助于了解你要去哪兒以及該如何做。DesigningaUserInterface設(shè)計(jì)用戶界面在你的app有了一個(gè)構(gòu)想之后,設(shè)計(jì)一個(gè)良好的用戶界面就是創(chuàng)建一個(gè)成功的app接下來要做的事情。用戶需要一個(gè)盡可能簡單的方式和app的界面進(jìn)行交互。要用用戶的思維來設(shè)計(jì)界面,并且使它有效、清晰且明了。關(guān)于構(gòu)建用戶界面最具挑戰(zhàn)性的事情可能是將你的構(gòu)想轉(zhuǎn)化為設(shè)計(jì),并且實(shí)現(xiàn)這些設(shè)計(jì)。為了簡化這個(gè)過程,請(qǐng)使用故事板。故事板讓你在一個(gè)單一步驟的圖形環(huán)境中設(shè)計(jì)和實(shí)現(xiàn)你的界面。你能夠在你構(gòu)建它的時(shí)候看見你所構(gòu)建的東西,及時(shí)反饋什么在工作而什么沒有在工作,并且立刻看到你的界面的改變。當(dāng)你在故事板中構(gòu)建了一個(gè)界面的時(shí)候,你正在一個(gè)視圖上工作。視圖(Views)顯示內(nèi)容給用戶。在Tutorial:Basics中,你在故事板場景中的開始為ToDoList應(yīng)用程序定義一個(gè)用戶界面。當(dāng)你開發(fā)更加復(fù)雜的app的時(shí)候,你將創(chuàng)建帶有更多場景和視圖的界面。在Tutorial:Storyboards,你將完成ToDoList應(yīng)用程序的用戶界面構(gòu)建,這些界面使用多種不同的視圖來顯示不同類別的內(nèi)容。在DesigningaUserInterface中你將學(xué)習(xí)到跟過關(guān)于使用視圖和故事板來定義和創(chuàng)建用戶界面的內(nèi)容DefiningtheInteraction定義互動(dòng)如果沒有邏輯支持它,用戶界面不能做太多的事情。在你創(chuàng)建了一個(gè)界面后,你要定義用戶如何對(duì)他們所看到的內(nèi)容進(jìn)行交互,這需要你編寫代碼來響應(yīng)用戶在界面上的操作。在你開始思考為你的界面添加行為之前,了解iOSapp是基于事件驅(qū)動(dòng)程序設(shè)計(jì)是非常重要的。在事件驅(qū)動(dòng)程序設(shè)計(jì)(event-drivenprogramming)中,app的流是由事件決定的:系統(tǒng)事件或者用戶操作。用戶在界面上執(zhí)行操作,它觸發(fā)app中的事件。這些事件導(dǎo)致app的邏輯和數(shù)據(jù)操作的執(zhí)行。app響應(yīng)用戶的操作然后返回到界面中。當(dāng)你定義用戶如何與界面進(jìn)行交互時(shí),請(qǐng)記住事件驅(qū)動(dòng)程序設(shè)計(jì)。因?yàn)橛脩簦皇情_發(fā)者,是控制某段代碼被執(zhí)行的人,你需要完全確定那個(gè)操作用戶能執(zhí)行且這些行為將會(huì)反饋什么。你在視圖控制器(viewcontrollers)中定義事件處理邏輯。你將在DefiningtheInteraction中學(xué)到更多地關(guān)于使用視圖控制器的內(nèi)容。之后,你將在ToDoList應(yīng)用程序中應(yīng)用這些概念來添加功能和交互性。ImplementingtheBehavior執(zhí)行行為在你在app中定義了用戶可以執(zhí)行交互的操作之后,你要通過編寫代碼來實(shí)現(xiàn)這些行為。當(dāng)你為iOSapp編寫代碼的時(shí)候,你將花大量的時(shí)間在OC編程語言(Objective-Cprogramminglanguage)上。你將在第三個(gè)模塊中學(xué)習(xí)到更多關(guān)于Objective-C的內(nèi)容,但是現(xiàn)在,它有助于你熟悉這種語言的基本術(shù)語。.Objective-C是建立在C編程語言的基礎(chǔ)上的,它提供面向?qū)ο蟮墓δ芎蛣?dòng)態(tài)運(yùn)行功能。你可以使用所有熟悉的元素,例如基本數(shù)據(jù)類型(int,float等等)、數(shù)據(jù)結(jié)構(gòu)、函數(shù)、指針、以及流程控制結(jié)構(gòu)(while、if...else、和for語句)。你也能訪問標(biāo)準(zhǔn)C程序庫,例如已申明的stdlib.h和stdio.h。ObjectsAreBuildingBlocksforApps對(duì)象是為Apps構(gòu)建的代碼塊當(dāng)你構(gòu)建一個(gè)iOS應(yīng)用程序的時(shí)候,你大部分的時(shí)間都是花在了對(duì)象上。對(duì)象(Objects)封裝了相關(guān)行為的數(shù)據(jù)。你可以把a(bǔ)pp看成一個(gè)大型的相關(guān)聯(lián)的能夠彼此聯(lián)系來解決具體問題的生態(tài)系統(tǒng),例如顯示一個(gè)可視化界面、響應(yīng)用戶的輸入、或者存儲(chǔ)信息。你使用很多不同類型的對(duì)象來建立你的app,從界面元素、例如按鈕和標(biāo)簽,到數(shù)據(jù)對(duì)象,例如字符串和數(shù)組。ClassesAreBlueprintsforObjects類是對(duì)象的藍(lán)圖一個(gè)類描述了所有特定對(duì)象的共有行為和屬性。像許多建筑是根據(jù)相同結(jié)構(gòu)的藍(lán)圖建造的一樣,每個(gè)類的實(shí)例與類的其他實(shí)例共享相同的屬性和行為。你能夠編寫自己的類或者使用已經(jīng)為你定義好的框架的類。你通過創(chuàng)建一個(gè)特定類的實(shí)例來得到一個(gè)對(duì)象。你通過分配和初始化具有接受默認(rèn)值的方式做到。當(dāng)你分配(allocate)一個(gè)對(duì)象的時(shí)候,你為這個(gè)對(duì)象留出足夠的內(nèi)存空間并將所有實(shí)例變量設(shè)置為0.初始化(Initialization)是設(shè)置對(duì)象的初始狀態(tài)——得到一個(gè)合理的值并返回這個(gè)對(duì)象。初始化的目的是返回可用的對(duì)象。你要進(jìn)行分配內(nèi)存和初始化對(duì)象以便能夠使用它。Objective-C編程里面的一個(gè)基本概念是類的繼承(classinheritance),既,一個(gè)類從父類中繼承行為。當(dāng)一個(gè)類繼承自另外一個(gè)類,這個(gè)孩子——或子類——繼承父類的所有行為和屬性。子類能夠定義自己額外的行為和屬性或者重寫父類的行為。這使你能夠擴(kuò)展現(xiàn)有的類中的行為。ObjectsCommunicateThroughMessages對(duì)象通過消息進(jìn)行通訊對(duì)象在運(yùn)行的時(shí)候互相發(fā)送消息進(jìn)行交互。在Objective-C術(shù)語中,一個(gè)對(duì)象通過調(diào)用另一個(gè)對(duì)象的方法來發(fā)送消息。在Objective-C中雖然有好幾種方法來在對(duì)象之間發(fā)送消息,但到目前為止,最常用的是使用方括號(hào)的基本語法。如果你有一個(gè)Person類的somePerson對(duì)象,你能向他發(fā)送sayHello消息,如下所示:.[somePersonsayHello];.左圖,somePerson,是消息的接收方。消息位于右側(cè),sayHello,是方法的名字其被接收方調(diào)用。換句話說,當(dāng)前面行的代碼被執(zhí)行的時(shí)候,somePerson將被發(fā)送sayHello消息。ProtocolsDefineMessagingContracts協(xié)議定義消息傳遞契約協(xié)議(protocol)定義了一組行為,這些行為是對(duì)象在特定情況下所期望的行為。一個(gè)協(xié)議以編程接口的形式出現(xiàn),任何類可以選擇實(shí)現(xiàn)。使用協(xié)議,兩個(gè)遠(yuǎn)繼承關(guān)系的類可以進(jìn)行互相通信來完成一個(gè)特定目標(biāo),例如解析XML代碼或者復(fù)制一個(gè)對(duì)象。任何類都能提供對(duì)其他類有用的行為,能為一個(gè)不署名的行為聲明一個(gè)編程接口。仍和其他類能夠選擇采用協(xié)議并實(shí)現(xiàn)其中一個(gè)或更多的方法,來使用這些行為。(翻譯者:本段的意思就是在使用使用協(xié)議之前要進(jìn)行聲明。)IncorporatingtheData合并數(shù)據(jù)在你實(shí)現(xiàn)了你的app行為之后,你創(chuàng)建一個(gè)數(shù)據(jù)模型(datamodel)來對(duì)你的app界面進(jìn)行支持。一個(gè)app的數(shù)據(jù)模型定義app中數(shù)據(jù)的保持方式。數(shù)據(jù)模型可以從基本的對(duì)象的字典到復(fù)雜的數(shù)據(jù)庫都可以。app的數(shù)據(jù)模型應(yīng)該反映app的內(nèi)容和目的。它的界面和數(shù)據(jù)應(yīng)該有清晰的關(guān)系,即使用戶不直接和數(shù)據(jù)進(jìn)行交互。一個(gè)好的數(shù)據(jù)模型對(duì)為你創(chuàng)建基礎(chǔ)扎實(shí)的app是至關(guān)重要的。它使其更容易構(gòu)建一個(gè)可擴(kuò)展的app、提高性能,并且改變你的特性。你將在IncorporatingtheData中學(xué)到更多關(guān)于定義你自己的數(shù)據(jù)模型的知識(shí)。UsetheRightResources使用正確的資源設(shè)計(jì)模式(Designpatterns)是解決app中常見問題的最佳方式。使用設(shè)計(jì)模式來幫助你定義你的數(shù)據(jù)模型的結(jié)構(gòu)和你的app中其他的交互作用。當(dāng)你理解并使用正確的設(shè)計(jì)模式的時(shí)候,你能夠更容易的創(chuàng)建一個(gè)簡單、高效的app。你將在UsingDesignPatterns中學(xué)到更多的關(guān)于設(shè)計(jì)模式的內(nèi)容。當(dāng)你開始實(shí)現(xiàn)你的模型,請(qǐng)記住你不必從頭開始實(shí)現(xiàn)一切。有許多框架為你提供現(xiàn)成的功能。例如,基礎(chǔ)框架(Foundationframework)包括基本數(shù)據(jù)類型的類——例如字符串和數(shù)字——以及儲(chǔ)存其他對(duì)象的集合類。建議,盡可能的使用現(xiàn)有的框架類——或者他們的子類添加到你自己的app的特點(diǎn)——來取代視圖重新實(shí)現(xiàn)它們的功能。通過這種方式,你能創(chuàng)建一個(gè)高效、實(shí)用、精致的app。你將在WorkingwithFoundation中學(xué)到更多的關(guān)于基礎(chǔ)框架的能力的知識(shí)。通常,你需要編寫你自己的自定義類來作為你的數(shù)據(jù)模型的一不分。編寫自定義類給你如何組織app的界面結(jié)構(gòu)提供完全控制。你將在WritingaCustomClass中學(xué)到關(guān)于創(chuàng)建自定義類的內(nèi)容。IncorporateRealData結(jié)合真實(shí)數(shù)據(jù)當(dāng)你第一次測試你的數(shù)據(jù)模型的時(shí)候,你或許想要使用靜態(tài)或者假設(shè)的數(shù)據(jù)。通過這種方式,你不必?fù)?dān)心關(guān)于應(yīng)用真實(shí)數(shù)據(jù)知道你知道模型被正確組裝和鏈接。在你定義數(shù)據(jù)模型正常工作之后,你可以把真實(shí)數(shù)據(jù)拉倒app中。Theremainderofthisguidetakesyouthroughthesestepsinmoredetail.Asyoumakeyourwaythroughtheappdevelopmentprocess,you’lllearnthenecessaryconceptualmaterialandthen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 古建彩繪采購合同范本
- 公司出租地合同范本
- 合伙人結(jié)算合同范本
- 個(gè)人住房借款合同范本
- 臺(tái)州網(wǎng)絡(luò)推廣合同范本
- 校園超市承包合同范本
- 廚藝加盟合同范本
- 單位資產(chǎn)轉(zhuǎn)讓合同范本
- 發(fā)電機(jī)維修合同范本
- 合同范本模板學(xué)校
- 電力各種材料重量表總
- 腸道健康講座活動(dòng)策劃
- 醫(yī)療器械(耗材)項(xiàng)目投標(biāo)服務(wù)投標(biāo)方案(技術(shù)方案)
- 小學(xué)三年級(jí)下冊(cè)數(shù)學(xué)教案3篇
- pci術(shù)后術(shù)肢腫脹處理流程
- 遼寧省營口市2023-2024學(xué)年七年級(jí)上學(xué)期期末英語試題
- 大數(shù)據(jù)平臺(tái)部署與運(yùn)維高職全套教學(xué)課件
- 《大數(shù)據(jù)平臺(tái)部署與運(yùn)維》課程教學(xué)大綱
- 新版現(xiàn)代西班牙語學(xué)生用書第一冊(cè)課后習(xí)題答案
- 科技成果查新檢索基本情況表
- 新媒體藝術(shù)設(shè)計(jì)交互融合元宇宙
評(píng)論
0/150
提交評(píng)論