天天看點

iOS概述

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

iOS概述

  iOS SDK包含對iPhone 應用程式進行開發,測試,運作,調試,性能調優所需代碼,資訊和工具。Xcode工具已經更新到可以支援iOS的開發。Xcode不僅提供了基本的代碼編輯,編譯和調試環境,而且提供了在iPhone和iPod touch裝置上測試程式的啟動點。Xcode還可以讓您在iPhone模拟器内運作您的程式,iPhone模拟器可以在您的Macintosh計算機内模拟基礎的iPhone OS環境。

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

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開發者中心的其他文章,他們介紹了建立程式需要的工具和流程。