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