iPhone 開發教程 iOS應用
iPhone 開發教程 iOS應用是本文要介紹內容,iOS 由操作系統和應用技術構成。雖然和 Mac OS X 共用了很多技術,但是 iOS 是專門為了移動設備而設計的。當然如果你以前做過 Mac OS X 的應用程序,你會發現很多相似之處,但是很多技術只能在 iOS 里面使用,比如支持多觸點和遙感等。
iOS SDK 包含了 API ,文檔和一些工具 , 這些工具用來開發、測試、運行、調式和在 App Store 上發布應用。 iOS 的官方 IDE 是 Xcode,Xcode 可以編譯,測試和調式你的代碼,并且設置斷點在你的設備上調式程序,當然在應用的開發階段你也可以使用 Xcode 上的模擬器來模擬的你的 iOS 環境,同樣可以調式、編譯和運行。( 業界大型的 iPhone 游戲更多的是用 VS C++ 利用 OpenGL 來開發的, Xcode 只是最后用來集成和測試的。)
這篇文章是從一個比較高的層面來講解 iOS 的架構,你也可以查看其他的文章幫助你快速了解 iOS 的底層信息。
1.iOS 技術層級
iOS 核心層是基于 Mac OS X 的,他們有很多共同點基礎類。在核心層上面是服務層( iOS Services ),服務層( iOS Services )是為應用提供 API 的Figure 1-1 iOS 技術層級
服務層( iOS Services )大部分是基于 C 語言寫的。核心層和服務層( iOS Services )包含了很多基礎性的類庫,比如底層數據類型 (low-level data types), Bonjour 服務( Bonjour 服務是指用來提供設備和電腦通訊的服務) , 和網絡連接類庫 (network sockets) 等等。服務層( iOS Services )包括了 Foundation 核心類庫, CFNetwork 類庫 , SQLite 訪問類庫 , 訪問 POSIX 線程類庫和 UNIX sockets 的通訊類庫,等等。
在服務層( iOS Services )的上層是多媒體應用層( Media layer ),多媒體應用層是用 c 語言和 Objective-C 混合寫成。多媒體應用層包含了基本的類庫來支持 2D 和 3D 的界面繪制,音頻和視頻的播放。這一層包括了一些基于 C 語言的技術,比如 OpenGL ES, Quartz, 和 Core Audio 。當然也包括了基于 Objective-C 的較高一層次的動畫引擎。
多媒體應用層( Media layer )上一層是( Cocoa Touch )層,這一層大部分代碼是基于 Objective-C 的。這一層提供了很多基礎性的類庫 Foundation ,比如提供了面向對象的集合類,文件管理類,網絡操作類等等。比如, UIKit 框架提供了可視化的編程方式,比如包含了 window, views, controls 和 controllers 管理這些類。當然 其他的類庫也提供了一些非常實用的功能,比如訪問用戶的通訊錄,照片集,重力感應器,和一些訪問硬件設備的功能。
如果你想馬上開始做一個新項目,那么你最好使用( Cocoa Touch )層,特別你準備使用 UIKit 框架的時候。使用高級別的框架比使用低級別的框架更加容易使用,建議只有當高級別的框架沒有現成的方法的時候,才考慮使用更低級別的框架。
更多的技術細節,查看 iOS Technology Overview .
2. 開始為iOS寫代碼
iOS SDK 支持創建一個圖形化的應用程序,這個創建的應用程序可以被創建在iphone的桌面上,并且是獨立于其他的程序,比如圖片,天氣,時鐘。它會在一個獨立的沙箱里,這個會在以后描述。當你的程序運行的時候,你的程序會占用整個iphone的界面。如果你開發過windows下的應用程序,你肯定熟悉什么叫多文檔應用,很遺憾,iOS并不支持多文檔模式,iOS的應用只能在獨立的窗口下顯示,不能在一個應用里多窗口切換。
在 iOS 中,事件處理模式和經典的桌面系統( windows )是不一樣的。經典的事件處理模式是相應鼠標和鍵盤,因為 PC 的主要外設就是鼠標和鍵盤。而 iOS 并沒有鼠標和鍵盤,所以 iOS 的事件處理模式是基于觸摸的。一個觸摸事件可以發生在任何時間,也可以和其他觸摸事件組成另外一個事件,比如多觸點。這些觸摸事件既可以用來檢測簡單的操作,比如選擇和拖放某個項目,也可以檢測到復雜的操作,比如滑動(類似與刷卡的動作,在忍者水果中的切的效果)、捏開和捏攏(照片的放大、縮小操作)。
當你準備做一個 iOS 應用程序時,你不僅僅要考慮程序的代碼結構,基于什么基礎構架,更重要的是考慮這個應用的用戶會怎么使用它。 iOS 應用程序應該是操作和界面都簡潔的,而且關注于最終用戶的實際需求。記住,你的用戶很忙,他需求的是最快的獲得他所要的信息,而不是花很多時間在一些華而不實的界面之間切換來切換去。所以請提供一個簡單的界面布局,并且把關鍵的信息放在醒目的位置。在游戲或者其他一些娛樂類應用,你可以考慮多增加一些互動性的技術,比如重力感應和攝像頭技術,這在其他游戲平臺是不多見的。
當你第一次開發 iOS 應用的時候,你很可能只使用 Foundation 和 UIKit 框架,這兩個框架提供了基礎的 API 支持和一些關鍵的服務。不過當你想提升你應用程序的檔次的時候,你可能會需要集合其他一些框架。下面這些鏈接可以幫助你學習更多的框架知識。
查看更多技術細節看 Foundation Framework Reference 和 UIKit Framework Reference .
3. 開始 iOS 之旅
創建一個簡單的 iOS 應用程序最簡單的是使用 Xcode 的模版,當然如果你希望你的應用程序非常好用而且界面美觀,你還是需要多閱讀一點相關的文檔。至少你應該閱讀一下如何使用 Xcode 和怎么樣一步一步創建應用程序的文章,在官方的 iOS Dev Center 。
如果你是對 iOS 和 Mac OS X 一無所知,那么你需要花點時間去理解平臺的基礎設計模式和內部結構。因為只有當你的應用程序選擇了最給力的框架時候,你的應用程序才是最流暢最給力的。所以如果你花一些時間來選擇這些框架時,你可能會發現創建一個應用程序比學習基礎設計模式困難多了。每一個 iPhone , iOS 開發者都需要了解的框架是 Cocoa Fundamentals Guide 。這個文檔講解了 Objective-C 語言和 UIKit 的設計模式,當然還有一些其他框架的內容 。
當你理解了基礎構架后,你可以查看這個文檔 iOS Application Programming Guide ,這個文檔提供了具體的開發細節和開發流程。這個文檔提供了重要的關于如何編寫 iPhone 應用程序的概念和任務為基礎的信息,包含一些實例:怎么創建用戶界面,事件處理和 iOS 的一些關鍵功能。并且還描述了整個開發過程,并解釋如何使用 Xcode 編譯和運行應用程序。
除了看這個文檔以外,你還應該瀏覽一些蘋果官方的代碼示例。這些示例代碼幾乎包含所有的 iOS 技術點,你可以使用這些示例代碼開始你的應用程序也可以學習一下某些技術點的詳細用法。
小結:iPhone 開發教程 iOS應用的內容介紹完了,希望本文對你有所幫助!