鍍金池/ 教程/ iOS/ 應(yīng)用程序開發(fā)過程
查找信息
使用設(shè)計(jì)模式
設(shè)計(jì)用戶界面
應(yīng)用程序開發(fā)過程
iOS 技術(shù)
接下來做什么
串聯(lián)圖
處理 Foundation
編寫自定類
整合數(shù)據(jù)
基礎(chǔ)
設(shè)置
添加數(shù)據(jù)
定義交互

應(yīng)用程序開發(fā)過程

開發(fā)應(yīng)用程序看似十分艱巨,其實(shí)整個(gè)過程可以濃縮為幾個(gè)易于理解的步驟。下面的步驟可以幫助您立即開始并正確引導(dǎo)您開發(fā)第一個(gè)應(yīng)用程序。

http://wiki.jikexueyuan.com/project/ios-developer-library/images/setup_2x.png" alt="" />

定義概念

概念是優(yōu)秀應(yīng)用程序的源頭。

而形成概念的最佳方式便是考慮應(yīng)用程序所要解決的問題。好的應(yīng)用程序解決的是單個(gè)明確的問題。例如,“設(shè)置”應(yīng)用程序能讓用戶調(diào)整設(shè)備上的所有設(shè)置。每個(gè)任務(wù)的相關(guān)設(shè)置都會(huì)在單獨(dú)界面里完成。

形成概念時(shí),要考慮這些關(guān)鍵的問題:

您的用戶是誰?不同應(yīng)用程序的內(nèi)容和用戶體驗(yàn)大不相同,這取決于您想要編寫的是什么應(yīng)用程序,它可能是兒童游戲,也可能是待辦事項(xiàng)列表應(yīng)用程序,又或者是測試自己學(xué)習(xí)成果的應(yīng)用程序。

應(yīng)用程序的用途是什么?賦予應(yīng)用程序一個(gè)明確的用途十分重要。了解激發(fā)用戶使用應(yīng)用程序的動(dòng)因是界定用途的一個(gè)出發(fā)點(diǎn)。

應(yīng)用程序嘗試解決什么問題?應(yīng)用程序應(yīng)該完美解決單個(gè)問題,而不是嘗試解決多個(gè)截然不同的問題。如果發(fā)現(xiàn)應(yīng)用程序嘗試解決不相關(guān)的問題,那么最好考慮編寫多個(gè)應(yīng)用程序。

應(yīng)用程序要呈現(xiàn)什么內(nèi)容?考慮應(yīng)用程序?qū)⑾蛴脩舫尸F(xiàn)的內(nèi)容類型,以及用戶與應(yīng)用程序的互動(dòng)方式,然后設(shè)計(jì)與之相稱的用戶界面。

剛開始開發(fā)應(yīng)用程序時(shí),不必定義完美或完整的應(yīng)用程序概念。但有了概念之后,您便會(huì)明確自己的開發(fā)目標(biāo)和實(shí)現(xiàn)方法。

設(shè)計(jì)用戶界面

形成了應(yīng)用程序的概念后,接下來是設(shè)計(jì)一個(gè)良好的用戶界面,這是成功的關(guān)鍵一步。用戶需要以盡可能簡單的方式與應(yīng)用程序界面進(jìn)行交互。為此,您需要從用戶的角度來設(shè)計(jì)界面,使其高效、簡潔且直觀。

構(gòu)建用戶界面最大的挑戰(zhàn)可能在于將概念轉(zhuǎn)化為設(shè)計(jì)并實(shí)現(xiàn)該設(shè)計(jì)。您可以使用串聯(lián)圖來簡化這個(gè)過程。串聯(lián)圖能讓您使用圖形環(huán)境來一步設(shè)計(jì)并實(shí)現(xiàn)界面。構(gòu)建界面時(shí),您可以完全看到構(gòu)建的內(nèi)容,馬上獲得相關(guān)界面能否正常工作的反饋,并立即以可視化方式對(duì)界面進(jìn)行更改。

在串聯(lián)圖中構(gòu)建界面時(shí),您是以視圖進(jìn)行工作。視圖向用戶顯示內(nèi)容。在“教程:基礎(chǔ)”中,您通過使用串聯(lián)圖場景中的單視圖,定義了 ToDoList 應(yīng)用程序的用戶界面。隨著應(yīng)用程序開發(fā)的復(fù)雜化,您將會(huì)創(chuàng)建包含更多場景和視圖的界面。

在串聯(lián)圖中,您將使用多種不同的視圖來完成構(gòu)建 ToDoList 應(yīng)用程序的用戶界面,從而顯示不同類型的內(nèi)容。在設(shè)計(jì)用戶界面中,您會(huì)了解有關(guān)使用視圖和串聯(lián)圖來設(shè)計(jì)和創(chuàng)建用戶界面的更多知識(shí)。

定義交互

沒有邏輯的支持,用戶界面的功能便會(huì)很有限。創(chuàng)建界面后,可以通過編寫代碼以響應(yīng)界面中的用戶操作來定義用戶與他們所看到內(nèi)容的交互方式。

在考慮為界面添加行為之前,了解 iOS 應(yīng)用程序是基于事件驅(qū)動(dòng)編程這一點(diǎn)很重要。在事件驅(qū)動(dòng)編程中,應(yīng)用程序的流程由事件決定:系統(tǒng)事件或用戶操作。用戶在界面中執(zhí)行的操作會(huì)觸發(fā)應(yīng)用程序中的事件。這些事件會(huì)促使執(zhí)行應(yīng)用程序的邏輯并處理其數(shù)據(jù)。應(yīng)用程序?qū)τ脩舨僮鞯捻憫?yīng)則會(huì)如實(shí)地反映在界面中。

請(qǐng)從事件驅(qū)動(dòng)編程的角度來定義用戶與界面的交互方式。因?yàn)槭怯脩舳情_發(fā)者控制著何時(shí)執(zhí)行應(yīng)用程序的某部分代碼。您想要確認(rèn)用戶可以執(zhí)行哪些操作以及如何響應(yīng)這些操作。

在視圖控制器中,您可以定義大多數(shù)的事件處理邏輯。在“定義交互”中,會(huì)了解有關(guān)使用視圖控制器的更多知識(shí)。之后,在“教程:串聯(lián)圖”中,會(huì)應(yīng)用這些概念,為 ToDoList 應(yīng)用程序添加功能和交互性。

實(shí)現(xiàn)行為

定義了用戶可以在應(yīng)用程序中執(zhí)行的操作后,可以編寫代碼來實(shí)現(xiàn)行為。

為 iOS 應(yīng)用程序編寫代碼時(shí),大多數(shù)時(shí)間都要用到 Objective-C 程序設(shè)計(jì)語言。在第三個(gè)模塊中,您會(huì)了解有關(guān) Objective-C 的更多知識(shí),但是現(xiàn)在基本熟悉一下 Objective-C 語言的詞匯會(huì)大有裨益。

Objective-C 源于 C 程序設(shè)計(jì)語言,它提供了面向?qū)ο蟮墓δ芤约皠?dòng)態(tài)運(yùn)行時(shí)。它包含您熟悉的所有元素,例如基本類型(int、float等)、結(jié)構(gòu)、函數(shù)、指針以及流程控制結(jié)構(gòu)(while、if...else 以及 for 語句)。您還可以訪問標(biāo)準(zhǔn) C 庫例程,例如在 stdlib.h 和 stdio.h 中聲明的那些例程。

對(duì)象是應(yīng)用程序的基石

構(gòu)建 iOS 應(yīng)用程序時(shí),大多數(shù)時(shí)候接觸的是對(duì)象。

對(duì)象會(huì)將具有相關(guān)行為的數(shù)據(jù)包裝起來。您可以將應(yīng)用程序設(shè)想為一個(gè)大型生態(tài)系統(tǒng),其中互連的對(duì)象相互通信來解決特定的問題,例如顯示可視化的界面,響應(yīng)用戶的輸入或者儲(chǔ)存信息。構(gòu)建應(yīng)用程序要用到多種不同類型的對(duì)象,從界面元素(例如按鈕和標(biāo)簽)到數(shù)據(jù)對(duì)象(例如字符串和數(shù)組)。

類是對(duì)象的藍(lán)圖

類描述了特定類型的對(duì)象所共有的行為和屬性。

按照同一個(gè)藍(lán)圖進(jìn)行施工的建筑物,它們的結(jié)構(gòu)是相同的。與之類似,類的每個(gè)實(shí)例的行為和屬性與該類的所有其他實(shí)例的行為和屬性也是相同的。您既可以編寫自己的類,也可以使用已經(jīng)定義好的框架類。

可以通過創(chuàng)建特定類的實(shí)例來新建對(duì)象。途徑是為對(duì)象分配并初始化合適的默認(rèn)值。分配對(duì)象時(shí),您為該對(duì)象預(yù)留了足夠的內(nèi)存并將所有的實(shí)例變量設(shè)定為 0。初始化將一個(gè)對(duì)象的初始狀態(tài)(即它的實(shí)例變量和屬性)設(shè)定為合理的值,然后返回對(duì)象。初始化的目的在于返回有用的對(duì)象。您需要分配并初始化對(duì)象,這樣才能使用它。

Objective-C 程序設(shè)計(jì)語言中的一個(gè)基本概念就是類繼承,即類會(huì)繼承父類的行為。一個(gè)類繼承另一個(gè)類時(shí),繼承類(或子類)會(huì)繼承由父類定義的所有行為和屬性。您可以為子類定義屬于它自己的其他行為和屬性或者覆蓋父類的行為。這樣,您就可以擴(kuò)展類的行為,而無需復(fù)制其現(xiàn)有的行為。

對(duì)象通過消息通信

對(duì)象在運(yùn)行時(shí)通過互相發(fā)送消息來交互。在 Objective-C 術(shù)語中,一個(gè)對(duì)象通過調(diào)用另一個(gè)對(duì)象的方法來向該對(duì)象發(fā)送消息。

在 Objective-C 中,雖然可使用多種方法在對(duì)象之間發(fā)送消息,但是目前最常用的方法是使用方括號(hào)的基本語法。如果您有一個(gè) Person 類的對(duì)象 somePerson,那么可以按照如下所述來向它發(fā)送消息 sayHello:

[somePerson sayHello];

左側(cè)的引用 somePerson 是消息的接收者。右側(cè)的消息 sayHello 是調(diào)用其方法的名稱。換句話說,執(zhí)行以上代碼行時(shí),會(huì)向 somePerson 發(fā)送 sayHello 消息。

http://wiki.jikexueyuan.com/project/ios-developer-library/images/programflow1_2x.png" alt="" />

協(xié)議定義消息發(fā)送契約

協(xié)議定義對(duì)象在給定條件下的一組預(yù)期行為。它采用可編程的接口形式(任何類都可以選擇來實(shí)現(xiàn))。通過使用協(xié)議,兩個(gè)因?yàn)槔^承而略有關(guān)聯(lián)的類可以彼此通信來完成某個(gè)目標(biāo),例如解析 XML 代碼或拷貝對(duì)象。

http://wiki.jikexueyuan.com/project/ios-developer-library/images/protocol_2x.png" alt="" />

如果類能夠提供為其他類使用的行為,那么該類可以聲明可編程的接口,以匿名方式來供應(yīng)該行為。任何其他類都可以選擇采用該協(xié)議,并實(shí)現(xiàn)該協(xié)議的一個(gè)或多個(gè)方法,從而利用該行為。

整合數(shù)據(jù)

實(shí)現(xiàn)應(yīng)用程序的行為后,您需要?jiǎng)?chuàng)建數(shù)據(jù)模型來支持應(yīng)用程序的界面。應(yīng)用程序的數(shù)據(jù)模型定義了維護(hù)應(yīng)用程序中數(shù)據(jù)的方式。數(shù)據(jù)模型的范圍既包括對(duì)象的基本詞典,也包括復(fù)雜的數(shù)據(jù)庫。

應(yīng)用程序的數(shù)據(jù)模型應(yīng)該反映該應(yīng)用程序的內(nèi)容和用途。雖然用戶不會(huì)直接和數(shù)據(jù)交互,但界面和數(shù)據(jù)之間應(yīng)該有明顯的相關(guān)性。

若要為應(yīng)用程序打下良好的基石,一個(gè)好的數(shù)據(jù)模型必不可少。有了數(shù)據(jù)模型,構(gòu)建可擴(kuò)展的應(yīng)用程序、改進(jìn)功能以及修改特性會(huì)變得易如反掌。在整合數(shù)據(jù)中,您會(huì)了解有關(guān)定義自己的數(shù)據(jù)模型的更多知識(shí)。

使用正確的資源

設(shè)計(jì)模式是解決應(yīng)用程序中常見問題的最佳實(shí)踐。它能幫助您定義數(shù)據(jù)模型的結(jié)構(gòu)以及它與應(yīng)用程序其他部分的交互方式。理解并使用正確的設(shè)計(jì)模式,便能輕松地創(chuàng)建簡單且實(shí)用的應(yīng)用程序。在使用設(shè)計(jì)模式中,您會(huì)了解有關(guān)設(shè)計(jì)模式的更多知識(shí)。

請(qǐng)記住,剛開始實(shí)現(xiàn)模型時(shí),不必一切從零開始。您可以以一系列提供了現(xiàn)有功能的框架為基礎(chǔ)進(jìn)行構(gòu)建。例如,F(xiàn)oundation 框架包括了表示基本數(shù)據(jù)類型的類(例如字符串和數(shù)字),以及用于儲(chǔ)存其他對(duì)象的集類。建議您盡可能地使用現(xiàn)有框架類,或者對(duì)其進(jìn)行子類化來為應(yīng)用程序添加自己的功能,而不是嘗試重新實(shí)現(xiàn)它們的功能。這樣,您就可以創(chuàng)建一個(gè)高效、實(shí)用且精致的軟件。在“處理 Foundation”中,您會(huì)了解有關(guān) Foundation 框架功能的更多知識(shí)。

通常,您會(huì)編寫自己的自定類來作為數(shù)據(jù)模型的一部分。通過編寫自定類,您可以控制應(yīng)用程序內(nèi)部結(jié)構(gòu)的整理方式。在寫自定類中,您會(huì)了解有關(guān)創(chuàng)建自定類的更多知識(shí)。

整合真實(shí)的數(shù)據(jù)

首次測試數(shù)據(jù)模型時(shí),您不妨使用靜態(tài)數(shù)據(jù)或假數(shù)據(jù)。這樣,在正確組裝和連接該模型前,您都無需為提供真實(shí)數(shù)據(jù)而擔(dān)心了。定義的模型能夠正常工作后,再將真實(shí)的數(shù)據(jù)引入應(yīng)用程序中。

本指南的剩余部分會(huì)更詳細(xì)地介紹這些步驟。隨著應(yīng)用程序開發(fā)過程的深入,您將會(huì)學(xué)習(xí)必要的概念性知識(shí),然后在教程中進(jìn)行實(shí)踐。

上一篇:處理 Foundation下一篇:查找信息