iOS概述

來源: Tiny4Cocoa  發布時間: 2011-02-21 15:55  閱讀: 6151 次  推薦: 0   [收藏]  

  iOS包含在iPhone和iPod touch上運行本地應用程序所需的操作系統和技術基礎。iPhone跟Mac OS X有共同的基礎構架和底層技術。但是iOS是為了滿足移動環境而設計的,用戶需要和一般的環境下略有區別。現有的Mac OS X開發者會發現很多熟悉的技術,但是他們也會發現很多iOS專有的技術,例如多點觸摸和加速度傳感器支持。

  iOS SDK包含對iPhone 應用程序進行開發,測試,運行,調試,性能調優所需代碼,信息和工具。Xcode工具已經升級到可以支持iOS的開發。Xcode不僅提供了基本的代碼編輯,編譯和調試環境,而且提供了在iPhone和iPod touch設備上測試程序的啟動點。Xcode還可以讓您在iPhone模擬器內運行您的程序,iPhone模擬器可以在您的Macintosh計算機內模擬基礎的iPhone OS環境。

  本文對構成iOS的基礎特性提供了高層的概述,幫助你了解這個平臺。之后,你可以在iPhone開發者中心找到其他的文章可以幫助你迅速的理解創建iPhone應用程序的基礎流程。你可以利用這些文章幫助你學習iOS開發。

圖1 iOS技術層

  iOS技術層

  構成iOS的底層系統架構以及許多技術,跟構成Mac OS X的很類似。iOS的核心基于構成Mac OS X的Mach核心的一個變種。核心之上是用來實現平臺上面應用程序的服務層。圖1展示了這些技術層的表層概述。

  這些層在你實現自己的代碼時給你了選擇。例如,核心OS和核心服務層包含了iPhone的基礎接口,包括用來訪問文件,底層數據類型,Bonjour服務,網絡接口等等的接口。這些接口大多數都是基于C語言的,包括核心基礎,CFNetwork,SQLite,和訪問POSIX線程和UNIX Socket的技術。

  當你進入更高的技術層,你會發現一些更表層的技術,它們基于C和基于Objective-C代碼混合的接口。例如,媒體層包含支持2D和3D繪圖,音頻和視頻的基礎技術。這個層包括基于C的技術,OpenGL ES,Quartz和核心音頻。這個層還包括核心動畫技術,核心動畫是表層的基于Objective-C的動畫引擎。

  在Cocoa Touch層,大多數的技術都是基于Objective-C的。這個層的框架提供了應用程序的基礎架構。例如,基礎架構提供了集合,文件管理,網絡操作等等的面向對象支持。UIKit框架提供了應用程序的視覺架構,包括了實現窗口,視圖,控件,以及這些對象的控制器等等的類結構。這個層的其他的框架,給你訪問用戶通訊錄,照片信息,加速度傳感器和設備其他硬件特性的能力。

  任何新項目的起點,都是Cocoa Touch層,具體來說就是UIKit框架。當確定采用何種附加技術的時候,強烈建議你首先從框架的表層技術開始,僅在需要的時候使用框架的底層技術。最表層的框架可以輕易的支持你所需要的絕對多數效果的標準系統行為。只有在更高層的框架無法實現你所需要的定制行為的時候,才應該使用底層框架。

  為iOS編寫代碼

  iSDK支持創建可以運行在iOS本地的圖形化應用程序。你創建的應用程序可以安裝在用戶的主屏幕上,就像其他的系統應用程序,例如照片,天氣和時鐘。程序一旦啟動,除了操作系統核心和一些底層守護進程以外,你的程序就會成為系統唯一運行的應用程序。運行期間,你的程序會獨占整個屏幕,獲得用戶全部的注意力。當用戶按下Home按鈕,應用程序就會退出,系統重新顯示主屏幕。這種系統的好處是,你可以獲得整個系統資源的訪問權。你可以從內置的硬件的,例如加速度傳感器,攝像頭以及圖形硬件獲得好處,運行你的代碼。

  因為用戶與iPhone和iPod touch設備交互的方式,跟他們與Mac OS X交互的方式完全不同,所以你設計程序的方式也必須完全不同。在iPhone應用程序中,沒有用多個文檔窗口顯示內容的概念。在這里,所有的應用程序數據都顯示在一個窗口上。這就造成了新的視圖和控件的產生,讓你可以用一個整齊的格式展現你的程序數據。此外,許多標準視圖和控件和在Mac OS X下的對應對象的行為也有所不同。這些變化大多數對開發者都是透明的,但是有些需要你重構你組織和展現數據的方式。

  iOS的事件處理模型與傳統的桌面程序也有顯著的不同。iOS并不依賴于傳統的鼠標和鍵盤事件,而是引入了觸摸事件。一個觸摸事件可以隨時發生,也可以和一個或幾個附加的觸摸事件一起發生。觸摸可以用于檢測跟內容的簡單交互,拖放對象等,也可以用于檢測復雜的手勢或交互行為,例如手指合攏和手指分開的手勢(例如在照片程序中,用于放大縮小照片)。

  在考慮程序的基本結構之前,你應該先考慮用戶實際上如何使用它。iPhone應用程序應該純粹關注于用戶的需求。記住用戶希望迅速得到信息,而不想花大量的時間在屏幕的不同層之間尋找。提供簡單的布局強調用戶更需要的關鍵信息。對游戲或者其他娛樂程序,你應該考慮用戶希望如何和你的程序交互,并在恰當的時候采用,例如速度傳感器,攝像頭等先進技術。

  當你開始開發,你需要使用的框架是基礎框架和UIKit框架。這些框架提供了所有iPhone程序所需的關鍵服務。當你精煉你的程序時,你需要考慮研究系統中的其他框架,看他們可以提供什么樣的服務。每個框架的文檔都包括了相關概念資料的鏈接,幫助你理解如何使用這個框架。

  從哪里開始

  使用Xcode提供的內建項目模板,創建運行在iOS上的簡單的應用程序是相對簡單的,但是如果你想創建一個有點用處,看起來很不錯的程序,還是需要你花點時間仔細閱讀文檔。至少,你需要花點時間通讀iPhone開發者中心的其他文章,他們介紹了創建程序需要的工具和流程。

  如果你完全不熟悉iOS和Mac OS X,那么對于在這個平臺上編寫代碼來說,很重要的一點是,花點時間理解iOS開發中的基本設計模式和約定。當程序利用了框架提供的所有能力帶來的好處的時候,程序就會在iOS下運行的最好。如果你花時間嘗試圍繞基本的框架行為,你可能會發現創建你自己的程序比簡單的學習基本的設計模式困難的多。每個iPhone開發者都需要了解的基本信息詳見Cocoa基礎指南。該文檔包含了Objective-C語言的基礎,以及UIKit或者其他系統框架使用的編程約定和設計模式。

  一旦你理解了創建iPhone應用程序的基本約定,你可以參考《iOS編程指南》獲取更詳盡的關于開發流程的信息。本書提供了編寫iPhone應用程序的核心概念和基于任務組織的信息,包括如何顯示用戶介面,處理事件,和從iOS核心特性獲得好處的例子。本書還描述了完整的開發流程,并介紹了如何利用Xcode構建和運行應用程序。

  除了《iOS編程指南》,你還應該瀏覽可用的例子代碼。iOS提供了大量的具有全部特性的例子,用來展現如何使用現有的技術創建真實世界的應用程序。你可以使用這些例子作為你自己的應用程序的起點,或者你可以觀察它們學習如何使用這些特性。

0
0
 
標簽:iOS
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()