通過(guò)前邊幾章,你已經(jīng)學(xué)會(huì)了如何編寫(xiě)一個(gè)帶有簡(jiǎn)單用戶界面和基本行為的應(yīng)用?,F(xiàn)在,你可能正思考實(shí)現(xiàn)額外的行為,從而把你的項(xiàng)目變成一個(gè)功能完善的應(yīng)用。
在你考慮為應(yīng)用添加哪些功能的時(shí)候,要記住你不需要從零開(kāi)始執(zhí)行所有的事情。iOS提供的框架定義了特定的功能--從游戲和媒體到安全和數(shù)據(jù)管理,你可以把現(xiàn)有的整合到你的應(yīng)用中。你已經(jīng)使用了UIKit框架來(lái)設(shè)計(jì)app的用戶界面,使用了Foundation框架把常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)和行為應(yīng)用到你的應(yīng)用中。在iOS app開(kāi)發(fā)過(guò)程中有兩個(gè)最常見(jiàn)的框架,但還有很多其他的框架。
在這里我還是要推薦下我自己建的iOS開(kāi)發(fā)學(xué)習(xí)群:680565220,群里都是學(xué)ios開(kāi)發(fā)的,如果你正在學(xué)習(xí)ios ,小編歡迎你加入,今天分享的這個(gè)案例已經(jīng)上傳到群文件,大家都是軟件開(kāi)發(fā)黨,不定期分享干貨(只有iOS軟件開(kāi)發(fā)相關(guān)的),包括我自己整理的一份2018最新的iOS進(jìn)階資料和高級(jí)開(kāi)發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入iOS的小伙伴。
本章是一個(gè)更高層次的技術(shù)和框架的概覽,你可能會(huì)考慮應(yīng)用到你的app中。本章可以作為一個(gè)探究可能性技術(shù)的起點(diǎn)。本章全部概覽可用于iOS上,你可以參看iOS Technology Overview。
用戶界面
iOS有很多框架和技術(shù)可用來(lái)創(chuàng)建和優(yōu)化的app用戶界面。
UIKit
UIKit框架提供了可創(chuàng)建基于觸摸的用戶界面的類(lèi)。由于所有的iOS應(yīng)用都是基于UIKit,所以你不能發(fā)布一款沒(méi)有使用該框架的應(yīng)用。UIKit提供了繪制到屏幕、處理事件以及創(chuàng)建用戶界面所需的基礎(chǔ)設(shè)施。UIKit也可以通過(guò)管理展示在屏幕上的內(nèi)容來(lái)組織一個(gè)復(fù)雜的應(yīng)用。更多關(guān)于UIKit的信息,可查看UIKit Framework Reference。
Core Graphics
Core Graphics是一個(gè)低層級(jí)的基于C的框架,可用來(lái)處理高質(zhì)量的矢量圖、基于路徑的繪制、圖像、數(shù)據(jù)管理以及其他等等。當(dāng)然,在iOS中創(chuàng)建圖形最簡(jiǎn)單最高效的方法是使用預(yù)渲染圖片與UIKit中的標(biāo)準(zhǔn)視圖和控件,這讓iOS可以完成繪圖的任務(wù)。由于UIKit是一個(gè)更高層級(jí)的框架,它也提供了用于自定義繪圖的類(lèi),包括路徑、顏色、模式、漸變、圖片、文本以及過(guò)渡等。盡可能地用UIKit代替Core Graphics使用。更多信息可查看Core Graphics Framework Referencee。
Core Animation
Core Animation是一項(xiàng)允許你做出高級(jí)動(dòng)畫(huà)和視覺(jué)效果的技術(shù)。UIKit提供的動(dòng)畫(huà)是構(gòu)建在Core Animation技術(shù)之上,如果你想要超出UIKit能力范圍內(nèi)的動(dòng)畫(huà),那你可以直接使用Core Animation。Core Animation接口包含在Quartz Core框架內(nèi)。使用Core Animation,你能創(chuàng)建一個(gè)可以操作、旋轉(zhuǎn)、縮放等的對(duì)象布局層級(jí)。通過(guò)使用Core Animation常見(jiàn)的view-like概念,你可以創(chuàng)建動(dòng)態(tài)的用戶界面,無(wú)需使用low-level圖形API,比如OpenGL ES。更多信息可查看Core Animation Programming Guide。
游戲
在為iOS開(kāi)發(fā)游戲時(shí),你有很多不同的技術(shù)需要研究。
Game Kit
Game Kit框架提供了排行榜、成就以及其他可添加到iOS游戲中的功能。更多信息可查看Game Kit Framework Reference.
Sprite Kit
Sprite Kit框架為動(dòng)畫(huà)任意紋理圖像或精靈提供了圖形支持。除了作為圖形引擎外,它還包含給對(duì)象賦予活力的物理支持。對(duì)于游戲或者那些需要復(fù)雜動(dòng)畫(huà)鏈的應(yīng)用來(lái)說(shuō),Sprite Kit是個(gè)很好的選擇。更多信息可參看Sprite Kit Programming Guide。
OpenGL ES
OpenGL ES是一個(gè)低級(jí)別的框架,為支持硬件加速2D和3D繪圖提供工具。蘋(píng)果的OpenGL ES標(biāo)準(zhǔn)實(shí)現(xiàn)與設(shè)備硬件緊密集合,從而為全屏展示的游戲類(lèi)應(yīng)用提供高幀率。由于OpenGL ES是一個(gè)低級(jí)別的,更關(guān)注硬件的API,所以它有一個(gè)陡峭的學(xué)習(xí)曲線,并且對(duì)應(yīng)用程序的整體設(shè)計(jì)有著顯著影響。對(duì)于需要高性能圖形做專(zhuān)業(yè)用途的應(yīng)用,可以考慮使用Sprite Kit或Core Animation。更多信息可參看OpenGL ES Programming Guide for iOS。
Game Controller
Game Controller框架可以很容易地找到連接在Mac或者iOS設(shè)備上的控制器。當(dāng)在你設(shè)備上發(fā)現(xiàn)控制器時(shí),游戲會(huì)讀取控制輸入作為正常的游戲設(shè)置的一部分。游戲控制器為玩家找到了控制游戲的新途徑。蘋(píng)果已經(jīng)有了相應(yīng)的硬件控制器設(shè)計(jì)規(guī)范,以確保所有的控制器都有玩家和設(shè)計(jì)師可以信賴(lài)的一致的控制元素。更多信息可參看Game Controller Framework Reference。
Data
當(dāng)使用app的數(shù)據(jù)時(shí),你需要考慮現(xiàn)有的框架中有什么功能可以使用。
Core Data
Core Data框架管理著你的數(shù)據(jù)模型。通過(guò)Core Data,你可以創(chuàng)建模型對(duì)象,稱(chēng)為管理對(duì)象。你管理著這些對(duì)象間的關(guān)系,并通過(guò)該框架對(duì)數(shù)據(jù)作出更改。Core Data利用了內(nèi)置的SQLite技術(shù)來(lái)高效地儲(chǔ)存和管理數(shù)據(jù)。更多信息可查看Core Data Framework Reference。
Foundation
在該教程的剛開(kāi)始的章節(jié)中,你已經(jīng)使用過(guò)Foundation框架了。該框架定義了Objective-C類(lèi)的基礎(chǔ)層。除了提供一套有用的原始對(duì)象類(lèi)之外,該框架還介紹了幾個(gè)定義Objective-C沒(méi)有覆蓋的行為的范例。在這其中,該框架包含了代表基本數(shù)據(jù)類(lèi)型的類(lèi),比如字符串和數(shù)字,以及儲(chǔ)存其他對(duì)象的集合類(lèi)。更多信息可參看Foundation Framework Reference。
媒體
媒體框架為你的應(yīng)用提供了處理音頻和視頻的能力。
AV Foundation
AV Foundation是用來(lái)播放和創(chuàng)建time-based視聽(tīng)媒體的框架之一。比如,你可以使用AV Foundation來(lái)檢查、創(chuàng)建、編輯或者重新編碼媒體文件。你也可以用它從設(shè)備獲得輸入流,并在實(shí)時(shí)捕獲和回放期間操作視頻。更多信息可參看AV Foundation Framework Reference。