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

應用程序開發(fā)過程

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

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

定義概念

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

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

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

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

應用程序的用途是什么?賦予應用程序一個明確的用途十分重要。了解激發(fā)用戶使用應用程序的動因是界定用途的一個出發(fā)點。

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

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

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

設計用戶界面

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

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

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

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

定義交互

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

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

請從事件驅(qū)動編程的角度來定義用戶與界面的交互方式。因為是用戶而非開發(fā)者控制著何時執(zhí)行應用程序的某部分代碼。您想要確認用戶可以執(zhí)行哪些操作以及如何響應這些操作。

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

實現(xiàn)行為

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

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

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

對象是應用程序的基石

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

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

類是對象的藍圖

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

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

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

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

對象通過消息通信

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

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

[somePerson sayHello];

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

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

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

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

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

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

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

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

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

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

使用正確的資源

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

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

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

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

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

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

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