開發應用程序看似十分艱鉅,其實整個過程能夠濃縮爲幾個易於理解的步驟。下面的步驟能夠幫助您當即開始並正確引導您開發第一個應用程序。 html
概念是優秀應用程序的源頭。 ios
而造成概念的最佳方式即是考慮應用程序所要解決的問題。好的應用程序解決的是單個明確的問題。例如,「設置」應用程序能讓用戶調整設備上的全部設置。每一個任務的相關設置都會在單獨界面裏完成。 數據庫
造成概念時,要考慮這些關鍵的問題: 編程
您的用戶是誰?不一樣應用程序的內容和用戶體驗大不相同,這取決於您想要編寫的是什麼應用程序,它多是兒童遊戲,也多是待辦事項列表應用程序,又或者是測試本身學習成果的應用程序。 設計模式
應用程序的用途是什麼?賦予應用程序一個明確的用途十分重要。瞭解激發用戶使用應用程序的動因是界定用途的一個出發點。 api
應用程序嘗試解決什麼問題?應用程序應該完美解決單個問題,而不是嘗試解決多個大相徑庭的問題。若是發現應用程序嘗試解決不相關的問題,那麼最好考慮編寫多個應用程序。 數組
應用程序要呈現什麼內容?考慮應用程序將向用戶呈現的內容類型,以及用戶與應用程序的互動方式,而後設計與之相稱的用戶界面。 app
剛開始開發應用程序時,沒必要定義完美或完整的應用程序概念。但有了概念以後,您便會明確本身的開發目標和實現方法。 框架
造成了應用程序的概念後,接下來是設計一個良好的用戶界面,這是成功的關鍵一步。用戶須要以儘量簡單的方式與應用程序界面進行交互。爲此,您須要從用戶的角度來設計界面,使其高效、簡潔且直觀。 函數
構建用戶界面最大的挑戰可能在於將概念轉化爲設計並實現該設計。您可使用串聯圖來簡化這個過程。串聯圖能讓您使用圖形環境來一步設計並實現界面。構建界面時,您能夠徹底看到構建的內容,立刻得到相關界面可否正常工做的反饋,並當即以可視化方式對界面進行更改。
在串聯圖中構建界面時,您是以視圖進行工做。視圖向用戶顯示內容。在「教程:基礎」中,您經過使用串聯圖場景中的單視圖,定義了 ToDoList 應用程序的用戶界面。隨着應用程序開發的複雜化,您將會建立包含更多場景和視圖的界面。
在教程:串聯圖中,您將使用多種不一樣的視圖來完成構建 ToDoList 應用程序的用戶界面,從而顯示不一樣類型的內容。在設計用戶界面中,您會了解有關使用視圖和串聯圖來設計和建立用戶界面的更多知識。
沒有邏輯的支持,用戶界面的功能便會頗有限。建立界面後,能夠經過編寫代碼以響應界面中的用戶操做來定義用戶與他們所看到內容的交互方式。
在考慮爲界面添加行爲以前,瞭解 iOS 應用程序是基於事件驅動編程這一點很重要。在事件驅動編程中,應用程序的流程由事件決定:系統事件或用戶操做。用戶在界面中執行的操做會觸發應用程序中的事件。這些事件會促使執行應用程序的邏輯並處理其數據。應用程序對用戶操做的響應則會如實地反映在界面中。
請從事件驅動編程的角度來定義用戶與界面的交互方式。由於是用戶而非開發者控制着什麼時候執行應用程序的某部分代碼。您想要確認用戶能夠執行哪些操做以及如何響應這些操做。
在視圖控制器中,您能夠定義大多數的事件處理邏輯。在「定義交互」中,會了解有關使用視圖控制器的更多知識。以後,在「教程:串聯圖」中,會應用這些概念,爲 ToDoList 應用程序添加功能和交互性。
定義了用戶能夠在應用程序中執行的操做後,能夠編寫代碼來實現行爲。
爲 iOS 應用程序編寫代碼時,大多數時間都要用到 Objective-C 程序設計語言。在第三個模塊中,您會了解有關 Objective-C 的更多知識,可是如今基本熟悉一下 Objective-C 語言的詞彙會大有裨益。
Objective-C 源於 C 程序設計語言,它提供了面向對象的功能以及動態運行時。它包含您熟悉的全部元素,例如基本類型(int、float等)、結構、函數、指針以及流程控制結 構(while、if...else以及for語句)。您還能夠訪問標準 C 庫例程,例如在stdlib.h和stdio.h中聲明的那些例程。
構建 iOS 應用程序時,大多數時候接觸的是對象。
對象會將具備相關行爲的數據包裝起來。您能夠將應用程序設想爲一個大型生態系統,其中互連的對象相互通訊來解決特 定的問題,例如顯示可視化的界面,響應用戶的輸入或者儲存信息。構建應用程序要用到多種不一樣類型的對象,從界面元素(例如按鈕和標籤)到數據對象(例如字 符串和數組)。
類描述了特定類型的對象所共有的行爲和屬性。
按照同一個藍圖進行施工的建築物,它們的結構是相同的。與之相似,類的每一個實例的行爲和屬性與該類的全部其餘實例的行爲和屬性也是相同的。您既能夠編寫本身的類,也可使用已經定義好的框架類。
能夠經過建立特定類的實例來新建對象。途徑是爲對象分配並初始化合適的默認值。分配對象時,您爲該對象預留了足夠的內存並將全部的實例變量設定爲 0。初始化將一個對象的初始狀態(即它的實例變量和屬性)設定爲合理的值,而後返回對象。初始化的目的在於返回有用的對象。您須要分配並初始化對象,這樣才能使用它。
Objective-C 程序設計語言中的一個基本概念就是類繼承,即類會繼承父類的行爲。一個類繼承另外一個類時,繼承類(或子類)會繼承由父類定義的全部行爲和屬性。您能夠爲子類定義屬於它本身的其餘行爲和屬性或者覆蓋父類的行爲。這樣,您就能夠擴展類的行爲,而無需複製其現有的行爲。
對象在運行時經過互相發送消息來交互。在 Objective-C 術語中,一個對象經過調用另外一個對象的方法來向該對象發送消息。
在 Objective-C 中,雖然可以使用多種方法在對象之間發送消息,可是目前最經常使用的方法是使用方括號的基本語法。若是您有一個Person類的對象somePerson,那麼能夠按照以下所述來向它發送消息sayHello:
左側的引用somePerson是消息的接收者。右側的消息sayHello是調用其方法的名稱。換句話說,執行以上代碼行時,會向somePerson發送sayHello消息。
協議定義對象在給定條件下的一組預期行爲。它採用可編程的接口形式(任何類均可以選擇來實現)。經過使用協議,兩個由於繼承而略有關聯的類能夠彼此通訊來完成某個目標,例如解析 XML 代碼或拷貝對象。
若是類可以提供爲其餘類使用的行爲,那麼該類能夠聲明可編程的接口,以匿名方式來供應該行爲。任何其餘類均可以選擇採用該協議,並實現該協議的一個或多個方法,從而利用該行爲。
實現應用程序的行爲後,您須要建立數據模型來支持應用程序的界面。應用程序的數據模型定義了維護應用程序中數據的方式。數據模型的範圍既包括對象的基本詞典,也包括複雜的數據庫。
應用程序的數據模型應該反映該應用程序的內容和用途。雖然用戶不會直接和數據交互,但界面和數據之間應該有明顯的相關性。
若要爲應用程序打下良好的基石,一個好的數據模型必不可少。有了數據模型,構建可擴展的應用程序、改進功能以及修改特性會變得易如反掌。在整合數據中,您會了解有關定義本身的數據模型的更多知識。
設計模式是解決應用程序中常見問題的最佳實踐。它能幫助您定義數據模型的結構以及它與應用程序其餘部分的交互方式。理解並使用正確的設計模式,便能輕鬆地建立簡單且實用的應用程序。在使用設計模式中,您會了解有關設計模式的更多知識。
請記住,剛開始實現模型時,沒必要一切從零開始。您能夠以一系列提供了現有功能的框架爲基礎進行構建。例如,Foundation 框架包括了表示基本數據類型的類(例如字符串和數字),以及用於儲存其餘對象的集類。建議您儘量地使用現有框架類,或者對其進行子類化來爲應用程序添加本身的功能,而不是嘗試從新實現它們的功能。這樣,您就能夠建立一個高效、實用且精緻的軟件。在「處理 Foundation」中,您會了解有關 Foundation 框架功能的更多知識。
一般,您會編寫本身的自定類來做爲數據模型的一部分。經過編寫自定類,您能夠控制應用程序內部結構的整理方式。在寫自定類中,您會了解有關建立自定類的更多知識。
首次測試數據模型時,您不妨使用靜態數據或假數據。這樣,在正確組裝和鏈接該模型前,您都無需爲提供真實數據而擔憂了。定義的模型可以正常工做後,再將真實的數據引入應用程序中。
本指南的剩餘部分會更詳細地介紹這些步驟。隨着應用程序開發過程的深刻,您將會學習必要的概念性知識,而後在教程中進行實踐。