關于iOS應用開發
iOS是iPhone,iPod touch,以及iPad等設備內運行的操作系統。它管理設備硬件,并提供實現本地程序的基礎技術。根據設備的區別,操作系統還包含了幾種不同的系統應用程序,例如電話,郵件和Safari,為用戶提供系統服務。
iOS SDK包含開發、安裝、運行自制本地程序所需要的工具和接口。本地程序在iOS系統框架下編譯構建,可以直接運行在iOS之上。跟web程序不同,本地程序是物理上安裝到了設備上,有沒有網絡鏈接都可以運行。他們和其他系統程序被安裝在一起,他們的用戶數據都可以通過iTunes跟用戶的電腦同步。
iOS架構
iOS的架構和Mac OS X的基礎架構很類似。如圖1-1所示,從大局上看,iOS的角色是底層硬件和屏幕上的應用程序之間的中間層。你創建的程序不能直接和硬件交互,它們只能通過系統接口和對應的硬件交互。這種抽象使你的程序無需關心底層硬件的變動。
圖 1-1 在iOS層之上的應用程序
注意:雖然你的程序已經和底層硬件的改變隔絕,但是你仍舊需要注意不同設備造成的代碼上的差異。例如,iPad和iPod Touch可能打不開一個電話號碼URL,但是iPhone是可以的。
iOS技術的實現可以看成一系列層,如圖1-2所示。系統的底層是所有應用程序都依賴的基礎服務,而上層是更復雜服務和技術。
圖 1-2 iOS層
寫自己的代碼的時候,你應該盡量優先使用上層框架,而不是底層框架。上層框架是提供了對底層框架的面向對象的抽象。這些抽象通常會簡化你的代碼,因為有了它們你就不用自己來封裝socket、線程等復雜的特性了。但是雖然他們抽象了底層技術,但沒有掩蓋他們。喜歡使用底層框架的開發者,需要使用底層沒有暴露給上層的特性的開發者,也還可以使用他們。
每層涉及到的技術和框架會在本文檔的后續章節介紹。
iOS SDK里有什么?
iOS SDK包含了在Intel核心的Mac電腦上開發iOS應用程序所需要的一切接口、工具和資源。
蘋果用一種特殊包framework,發布了幾乎所有的系統接口。Framework就是一個目錄,包含一個動態鏈接庫,以及動態鏈接庫所需要的資源(如頭文件,圖像,輔助程序,等等)。要使用framework,你首先把他們鏈接到應用程序工程里,像其他動態鏈接庫一樣。把他們鏈接到你的工程,你就訪問framework里面的所有特性,而開發工具從而也可以知道頭文件和framework的資源在哪里。
這些framework以外,蘋果還用標準動態鏈接庫形式提供了一些技術。iOS是基于UNIX的,操作系統底層提供的很多技術來自于開源的技術。這些技術的接口放置在接口目錄內的標準動態鏈接庫。
SDK包含的關鍵組件如下包括:
Xcode工具鏈 - 提供用來支持iOS應用程序開發需要的工具,包含如下幾個關鍵程序。
Xcode - 管理應用程序工程的集成開發環境,可以編輯,編譯,運行和調試你的代碼。Xcode還集成了開發過程中需要的其他工具。
Interface Builder - 可視化組裝用戶界面的工具。創建的用戶接口對象會被保存成一種特殊的資源文件格式,在程序運行期間載入。
Instruments - 運行期間性能分析和調試工具。你可以使用Instruments收集關于程序運行期間行為的信息,找到潛在的問題。
iPhone模擬器 - Mac OS X程序模擬iOS的技術層。讓你可以在基于Intel的Mac電腦上測試你的iOS程序。
iOS參考文檔庫 - SDK默認包含了iOS的參考文檔。已經下載的庫更新也會自動更新出來。要顯示參考文檔庫,選擇Help > Developer Doucmentation。
SDK不僅提供了寫程序需要的軟件,XCode和Instruments還可以讓你直接和連接到電腦上的設備通訊,在目標設備上運行和調試你的代碼。在真實設備上開發,需要就加入蘋果的收費的iOS開發者程序,把設備設置為開發之用。關于iOS開發者程序的更多信息,請瀏覽http://developer.apple.com/devcenter/ios/program/。
更多關于如何安裝iOS SDK,以及使用它開發程序的信息,參見iOS開發指南。更多關于iOS包含的framework的信息,以及如何找到底層系統庫的信息,參見“iOS框架”。
可以創建什么樣的程序?
iOS支持兩種類型應用程序的開發:
◆本地應用程序
◆web應用程序
iOS SDK只支持創建出現會在設備主屏幕上的本地應用程序。它不支持創建其他類型的代碼,如驅動程序,框架,或者動態鏈接庫。如果你的代碼需要集成一個framework或者動態鏈接庫,你可以在構建時把它們靜態的鏈接到你的程序可執行文件中。
Web應用程序是HTML,CSS以及JavaScript代碼的組合,用于實現基于web服務器的交互程序,在網絡間傳輸,在Safari瀏覽器內運行。而本地應用程序,直接安裝在設備上,可以在沒有網絡連接的情況下運行。
如何使用參考文檔庫
iOS參考文檔庫包含開發iOS應用程序所需要的文檔,例子和指導手冊和其他的信息。因為文檔庫包含了幾千頁文檔,從上層的入門文檔,到底層API的參考手冊,所以學會如何查找幫助信息是開發過程中非常重要的。文檔庫使用了很多技術來組織內容,使它更加容易瀏覽。
你可以從Apple開發者站點或者從Xcode里訪問iOS參考文檔庫。在Xcode里,選擇Help > Developer Documentation現實Xcode的文檔窗口,這是訪問iOS開發相關信息的主要途徑。你可以使用這個窗口瀏覽文檔,執行搜索,收藏你想以后再讀的文檔。
你安裝iOS SDK的時候,Xcode會自動安裝iOS參考文檔庫(Xcode還自動幫助下載文檔的更新,但你也可以在設置里面修改)。iOS參考文檔庫包含了很多的信息,所以***記住它的布局。圖1-3展示了Xcode文檔窗口中的iOS參考文檔庫的主頁。頁面上端的工具條,包含了搜索字段和按鈕,用來瀏覽文檔。你可以根據主題瀏覽文檔庫,根據framework,或者根據你尋找的資源類型。你還可以使用文檔列表上端的過濾器字段來聚焦現實的文檔范圍。
圖 1-3 iOS參考文檔庫
重要:iOS參考文檔庫的內容會經常更新,而且你可以在iOS開發中心(http://developer.apple.com/devcenter/ios)訪問***的文檔,發布聲明,技術生命和技術文檔,常見問答以及例子代碼。所有的文檔都是HTML格式的,大多數也有PDF格式。
因為參考文檔庫提供了巨大數量的信息,在你寫代碼的時候,挨個遍歷這些信息就太笨拙了。為了幫助你迅速找到相應的信息,Xcode提供了一個快速幫助窗口,如圖1-4。這個窗口提供指定符號(關鍵字,類名等等)的信息,包括它的語法,描述以及可用性等等。它還會現實相關的文檔和例子代碼資源等。點擊窗口內的鏈接,會打開參考文檔庫內相應的資源。要顯示這個窗口,在Xcode代碼編輯窗口內Option+雙擊一個符號。
圖 1-4 Xcode中的快速幫助
【編輯推薦】