1. 程式人生 > >從今天開始學習iOS開發(iOS 7版)--構建一款App之App開發過程

從今天開始學習iOS開發(iOS 7版)--構建一款App之App開發過程

定義概念每款偉大的app都始於一個概念。直達概念最有效的方法是思考你想通過app解決什麼問題。偉大的app只解決一個定義明確的問題。比如設定應用程式允許使用者調整裝置上所有的設定,它為使用者提供了單個介面來完成相關的設定任務。

以下直達概念需要考慮的一些關鍵問題:

1.你的使用者是誰?應用程式的概念和體驗將會根據你是要開發一款兒童遊戲、一個to-do list應用還是一個學習測試app而所有不同。

2.應用程式的目標是什麼?對app而言,有一個清晰的目標非常重要,而理解是什麼因素促使使用者使用app是界定應用程式目的的一部分。

3.你的應用要解決使用者什麼樣的問題?一款app應當解決使用者的單個問題,而不是為多個不同的問題提供解決方案。如果你發現你的應用程式正試圖解決不相關的問題,那你可以能要考慮開發多個app了。

4.你的應用程式包含什麼內容?考慮你的應用程式為使用者提供什麼內容,以及使用者如何與之進行互動。通過使用者介面設計對app呈現的內容型別進行補充。

在應用程式開發之初,app的概念並不需要多吸引人,也不需要是一個完整的概念,但可幫你釐清將要去往何方以及到達目的地所需的東西。

設計使用者介面

在你有了app概念之後,建立一個成功應用程式的下一步就是設計一個優秀的使用者介面。使用者需要以最簡單的方式與app進行互動。設計介面的時候要始終考慮到使用者,並使介面保持高效、清晰以及簡單直接。

在使用者介面設計過程中,最大的挑戰可能是把你的概念落實到設計當中,並實現該設計。為了簡化這個過程,你可以使用storyboards。 Storyboards可以讓你通過使用圖形介面一步完成介面的設計與實現。你可以準確知曉當前正在建立的一切,對哪部分執行正常與否獲得即時反饋,並對介面進行即時視覺化的改變。

使用storyboard建立使用者介面,你就是在與views打交道,View就是用來向用戶展示內容的。在Tutorial: Basics中你開始在storyboard場景中使用單個檢視為ToDoList app建立使用者介面。如果你要開發更為複雜的app,那你將使用更多場景和檢視來建立使用者介面。

在Tutorial: Storyboards中,你將通過使用幾個不同檢視來展示不同型別的內容,從而為ToDoList app建立使用者介面。你可以在“Designing a User Interface”中學習更多關於使用views和storyboards來設計和建立使用者介面。

定義互動

如果沒有邏輯支撐,一個介面並沒有很大用處。建立介面後,你得通過程式碼來定義使用者與介面的互動,並在介面上對使用者的操作做出反饋。

在考慮為應用新增行為之前,理解iOS app是事件驅動程式設計非常重要。在事件驅動程式設計中,app的工作流由事件:系統事件或者使用者操作來決定。使用者在介面上執行操作會在app中觸發事件。這些事件會執行app的邏輯並進行資料處理,然後app對使用者操作的響應會反饋到介面上。

當定義使用者與介面的互動時,你要把事件驅動程式設計牢記在心。因為使用者在控制著何時執行app程式碼的特定部分,而不是開發者,你想要確定使用者可以執行哪個操作,以及對這些操做給予什麼樣的反饋。

你在檢視控制器中定義大部分事件響應邏輯。你可以在“Defining the Interaction”中學會更多關於使用檢視控制器的內容。之後,你將會在Tutorial: Storyboards中,把這些概念應用於為ToDoList app新增功能和互動。

執行行為

在定義完使用者可在app中執行的操作後,你需要通過程式碼實現這些行為。

為iOS app寫程式碼,其實很多時候你是在與Objective-C程式語言打交道。你將在第三個模組學習更多關於Objective-C的內容,不過現在你需要了解一些關於該語言的基本詞彙術語。Objective-C是在C語言的基礎上進行了擴充,並提供了面向物件的效能和dynamic runtime。你會在Objective-C中看到很多熟悉的元素,比如primitive types (int, float, and so on), structures, functions, pointers以及control flow constructs (while, if…else, and for statements).你也可以訪問標準的C庫例程,比如stdlib.h和stdio.h中的那些宣告。

物件是app的建築模組

當你建立iOS app時,你大部分時間都花在了使用物件上。

物件用相關行為來封裝資料。你可以把應用程式當做一個包含相互連線的物件的大系統,這些物件相互溝通以解決某個特定問題,比如展示視覺化的介面,響應使用者的輸入,或者儲存資訊。你可以使用多個不同型別的物件來建立應用程式,從介面元素(比如按鈕和標籤),到資料物件(比如字串和陣列)。

類是物件的藍圖

類是對任何特定型別物件的行為和共同屬性的描述。

多個以相同方式根據相同藍圖構建的building在結構上是完全相同的,類的每個例項和該類的其他例項共享相同的屬性和行為。你可以編寫自己的類,或者使用已經為你定義好的框架類。

你通過建立某個特定類的例項來建立物件。你可以通過可接受的預設值進行分配和初始化。當指定一個物件時,你要為物件留出足夠的記憶體,並把所有例項變數設定為0。

Initialization設定一個物件的初始化狀態–也就是說,它的例項變數和屬性–至合理的值,並返回物件。初始化的目的是返回一個可用的物件。你需要指定和初始化一個物件,以便可以使用它。

Objective-C中的一個基本概念是類的繼承,一個類繼承了其父類的行為。當一個類繼承自另一個類,那麼子類繼承了父類定義的所有行為和屬性。子類可以定義自己額外的行為和屬性,或者覆寫父類的行為。所以你可以擴充套件類的行為,而無需複製類現有的行為。

物件通過資訊進行通訊

物件執行時通過互發資訊進行互動。在Objective-C術語中,一個物件通過呼叫該物件上的方法來向另一個物件傳送資訊。

雖然有多個方法可在Objective-C物件之間傳送資訊,但目前最常用的方法是使用方括號的基本語法。如果你有一個XYZPerson類物件somePerson,你可以像下邊這樣給它傳送sayHello資訊。

Objective-C
1 [somePerson sayHello];

下圖左邊是訊息的接收者somePerson。右邊sayHello是呼叫接收者的方法的名稱。換句話說,當執行以上程式碼,somePerson將會接收到sayHello資訊。