自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開(kāi)發(fā)者需要知道的iOS 8 SDK新特性

移動(dòng)開(kāi)發(fā) iOS
WWDC 2014 已經(jīng)過(guò)去一個(gè)多月。最激動(dòng)人心的莫過(guò)于 Swift 這門新語(yǔ)言的發(fā)布,我在之前已經(jīng)寫(xiě)了一些關(guān)于這么語(yǔ)言的第一印象和一些初步的探索。 在寫(xiě)這篇文章的時(shí)候,Swift 隨著 beta 3 得到了重大的更新,而這門語(yǔ)言現(xiàn)在也還在劇烈的變化之中。

[[116420]]

WWDC 2014 已經(jīng)過(guò)去一個(gè)多月。最激動(dòng)人心的莫過(guò)于 Swift 這門新語(yǔ)言的發(fā)布,我在之前已經(jīng)寫(xiě)了一些關(guān)于這么語(yǔ)言的第一印象和一些初步的探索。 在寫(xiě)這篇文章的時(shí)候,Swift 隨著 beta 3 得到了重大的更新,而這門語(yǔ)言現(xiàn)在也還在劇烈的變化之中。對(duì)于 Swift,現(xiàn)在大家的探索才剛剛上路,很多背后的機(jī)制還并不是非常清楚,或者有可能發(fā)生巨大的變化,因此在這里和之后的幾篇文章,直到穩(wěn)定的 1.0 版本出現(xiàn),我不再打算繼續(xù)深入針對(duì) Swift 寫(xiě)什么文章。這基本出于對(duì)未來(lái)可能的變化會(huì)容易誤導(dǎo)讀到文章的新人的考慮,而并不是說(shuō)建議我們現(xiàn)在可以放下 Swift,而安心等待正式版本。在我的觀念里,對(duì)于一個(gè)尚不穩(wěn)定的版本的探索和研究,遠(yuǎn)比之后被動(dòng)去接受別人的結(jié)果要來(lái)的有趣得多,理解也會(huì)深入得多。 因此如果您有時(shí)間的話,建議還是能盡早接觸和使用會(huì)比較好。Github 上有一個(gè)不錯(cuò)的 repo,記錄了 Swift 一路以來(lái)的變化,并探討了不足以及以后可能的變化,希望深研 Swift 的同學(xué)不妨關(guān)注看看。

這篇總覽先簡(jiǎn)要介紹下在我看來(lái)作為 iOS 開(kāi)發(fā)者應(yīng)該關(guān)注的開(kāi)發(fā)時(shí)的變化,在之后一系列文章里我會(huì)對(duì)其中的某幾個(gè)部分詳細(xì)探討一下,而其余的可能就在本文中做簡(jiǎn)介??偠灾?,這次 WWDC 2014 的相關(guān)筆記(現(xiàn)在來(lái)說(shuō)的話是暫定計(jì)劃要寫(xiě)的內(nèi)容)大概整理如下:

開(kāi)發(fā)者所需要知道的 iOS8 SDK 新特性:

  • iOS 界面開(kāi)發(fā)的大一統(tǒng)
  • iOS 通知中心擴(kuò)展制作入門
  • 可視化開(kāi)發(fā),IB 的新時(shí)代
  • TableView 和 CollectionView
  • iOS 和 Mac 整合開(kāi)發(fā)
  • 通知中心和應(yīng)用使用重心的改變
  • 應(yīng)用擴(kuò)展 (Extension)

這是一個(gè)千呼萬(wàn)喚始出來(lái)的特性,也是一個(gè)可以發(fā)揮無(wú)限想象力的特性?,F(xiàn)在 Apple 允許我們?cè)?app 中添加一個(gè)新的 target,用來(lái)提供一些擴(kuò)展功能:比如在系統(tǒng)的通知中心中顯示一個(gè)自己的 widget,在某些應(yīng)用的 Action 中加入自己的操作,在分享按扭里加入自己的條目,更甚至于添加自定義的鍵盤等等。每一種操作對(duì)應(yīng)這一個(gè)應(yīng)用擴(kuò)展的入口,在開(kāi)發(fā)中我們只需要在工程中新建立 一個(gè)對(duì)應(yīng)相應(yīng)入口的 target,就能從一個(gè)很好的模板開(kāi)始進(jìn)行一些列開(kāi)發(fā),來(lái)實(shí)現(xiàn)這些傳統(tǒng)意義上可能需要越獄才能實(shí)現(xiàn)的功能。

對(duì)于應(yīng)用擴(kuò)展,Apple 將其定義為 App 的功能的自然延伸,因此不是單獨(dú)存在的,而是隨著應(yīng)用本體的包作為附屬而被一同下載和安裝到用戶的設(shè)備中的,用戶需要在之后選擇將其開(kāi)啟。另外,由于應(yīng)用 擴(kuò)展和應(yīng)用是屬于兩個(gè)不同的 target 的,因此它們之間的數(shù)據(jù)和操作上的交互遵循的是另一套原則。關(guān)于應(yīng)用擴(kuò)展的更詳細(xì)的內(nèi)容,我計(jì)劃在之后通過(guò)一個(gè)通知中心的 today 小框體控件的例子來(lái)詳細(xì)說(shuō)明。

App 開(kāi)發(fā)時(shí)的統(tǒng)一

隨著一代代的 iPhone 和 iPad 的出現(xiàn),iOS 設(shè)備的屏幕尺寸也開(kāi)始出現(xiàn)分裂的趨勢(shì)。之前一套屏幕兩個(gè)方向吃遍全世界的美好時(shí)光已然不再,現(xiàn)在至少已經(jīng)有 3.5 寸,4寸和 10(7) 寸三種分辨率/尺寸的機(jī)型需要進(jìn)行適配,再考慮到每個(gè)尺寸的橫豎兩種方向,以及日益呼聲愈高的 4.7 寸和 5.5 寸的 iPhone,可以相見(jiàn)現(xiàn)在的布局方式已然不堪重負(fù)。雖然在 iOS 6 Apple 就推出了 Auto Layout 來(lái)輔助完成布局工作,解決了原來(lái)的相對(duì)布局的一些問(wèn)題,但是在以絕對(duì)尺寸為度量的坐標(biāo)系統(tǒng)中,難免還是有所掣肘。在 iOS 8 中,Apple 的工程師們可以說(shuō)“極富想象力”地干脆把限制和表征屏幕尺寸的長(zhǎng)寬數(shù)字給去掉了,取而代之使用 size classes 的概念,將長(zhǎng)寬尺寸按照設(shè)備類型和方向歸類為 regular 和 compact 兩類。通過(guò)為不同的設(shè)備定義尺寸分類,用來(lái)定義同類型的操作特性,這使得開(kāi)發(fā)者更容易利用一套 UI 來(lái)適配不同的屏幕。

iOS 8 在 UIKit 中添加了一整套使用 size classes 來(lái)進(jìn)行布局的 API,并且將原有的比較復(fù)雜(或者說(shuō)有些冗余)的 API 作廢了。結(jié)合新的 Interface Builder 和 Auto Layout,可以說(shuō)對(duì)于多尺寸屏幕的適配得到了前所未有的簡(jiǎn)化。

不僅如此,像是原來(lái) iPad 專有的 SplitController 等也被以適應(yīng)不同 regular 和 compact 的尺寸類型的形式 port 到了 iPhone 上,在程序設(shè)計(jì)方面兩者更加統(tǒng)一了。另外,一直陪伴我們的 UIAlertView 和 UIActionSheet 這些老面孔也將退出舞臺(tái),取而代之全部統(tǒng)一以 UIViewController 來(lái)呈現(xiàn)。

這是一個(gè)好的開(kāi)始,也是一個(gè)好的變化。可以看到 Apple 在避免平臺(tái)碎片化上正在努力。

iCloud 相關(guān)

作為幫主的最后一件作品,iCloud 其實(shí)非??上?,一直沒(méi)有能在 Apple 的生態(tài)圈中特別出彩。首先主要是由于 iCloud 相關(guān)的開(kāi)發(fā)和 API 使用起來(lái)有一定難度,另外就是之前的 SDK 在和 iCloud 相關(guān)的各種 API 或多或少都有一些小問(wèn)題。在 iOS 7 中 iCloud,特別是 iCloud 和 CoreData 結(jié)合的部分的 API 的穩(wěn)定性和易用性得到了很大的改善。而在 iOS 8 中,Apple 更進(jìn)一步,推出了全新的被稱為 Cloud Kit 的框架。如果您熟悉或者使用過(guò)像 Parse 或者 AVOS Cloud 之類的 BaaS 的話,可能會(huì)對(duì)這個(gè)框架感到親切。但是和傳統(tǒng)的 BaaS 稍有不同的是,Cloud Kit 更多的是傾向于使用 iCloud 對(duì)數(shù)據(jù)進(jìn)行集成。你可以不更改應(yīng)用現(xiàn)有的數(shù)據(jù)模型和結(jié)構(gòu),而只是使用 Cloud Kit 來(lái)從云端獲取數(shù)據(jù)或者向云端存儲(chǔ)數(shù)據(jù)。

相比與 Parse 和 AVOS 的 API,由于可以和系統(tǒng)深度集成,有很多在其他類似 BaaS 中沒(méi)有的特性 (比如訂閱某個(gè)公共對(duì)象)。但是因?yàn)槭?Apple 自家產(chǎn)品,其缺點(diǎn)也是顯而易見(jiàn)并且致命的 -- 你無(wú)法在非 Apple 的平臺(tái)上使用這個(gè)框架。也就是說(shuō),如果你的應(yīng)用火了,想接著出個(gè)安卓版的話,那就只能呵呵了。所以雖然 Cloud Kit 看起來(lái)很美好,而且基本等同于免費(fèi)使用,但是因?yàn)槠脚_(tái)的限制,而它所涉及的內(nèi)容又是對(duì)跨平臺(tái)需求很強(qiáng)又繞不開(kāi)的數(shù)據(jù),所以可能實(shí)際中能實(shí)用的機(jī)會(huì)并不太 多。當(dāng)然,如果應(yīng)用是 for iOS only 的話,使用 Cloud Kit 應(yīng)該是很不錯(cuò)的選擇。

關(guān)于云端存儲(chǔ)的另一個(gè)新變化是存儲(chǔ)源的可變化。以前我們基本別無(wú)選擇,想使用沙盒外的文件的話,要么就是 iCloud 同一個(gè) container 內(nèi)的文件,要么就需要來(lái)個(gè)像 Dropbox 這樣的第三方庫(kù)去做一堆登陸驗(yàn)證什么的。不論那種方式都可以說(shuō)挺麻煩的。而現(xiàn)在隨著 iCloud Drive 的引入,在應(yīng)用間共享訪問(wèn)文件就變得很容易了。更甚,我們現(xiàn)在可以使用 UIDocumentPickerViewController 來(lái)從第三方存儲(chǔ) (以及第三方 app 通過(guò)應(yīng)用擴(kuò)展所實(shí)現(xiàn)的存儲(chǔ)) 中選取文件。

Handoff 及其他 iOS 與 Mac 的協(xié)同開(kāi)發(fā)

雖然 PC 市場(chǎng)一直疲軟,但是得益于 iDevice 的銷售和品牌接受度的回升,Mac 的銷量反而逆市上揚(yáng)。這點(diǎn)在國(guó)內(nèi)尤為明顯,確實(shí)可以感覺(jué)到身邊開(kāi)始使用 Mac 的人在逐漸變多,這對(duì)于我們這些 iOS 開(kāi)發(fā)者來(lái)說(shuō)其實(shí)是一個(gè)不錯(cuò)的機(jī)會(huì)。iOS 8 中的 Handoff 機(jī)制(就是可以在 Mac 上繼續(xù)完成在 iOS 上半途的工作)給 for both iOS and Mac 的應(yīng)用帶來(lái)了一個(gè)不錯(cuò)的契合點(diǎn)和賣點(diǎn)。而近年來(lái)在整合兩個(gè)系統(tǒng)上的動(dòng)作,也可以看得出 Apple 確實(shí)希望利用龐大的 iOS 的開(kāi)發(fā)人員資源來(lái)進(jìn)一步完善和豐富 Mac。iOS 開(kāi)發(fā)和 Mac 開(kāi)發(fā)其實(shí)同根同源,因此在轉(zhuǎn)換的時(shí)候并不是很困難的事情。

我們一直以來(lái)都可以寫(xiě)出跨兩個(gè)平臺(tái)的 Model 部分的代碼,而只需要關(guān)心在表現(xiàn)上的區(qū)別。而現(xiàn)在 Cocoa 和 CocoaTouch 在官方支持自制 framework 后,利用 framework 來(lái)完成這一過(guò)程可以說(shuō)更加簡(jiǎn)單了。

Health Kit 和 Home Kit

這是對(duì)應(yīng)兩個(gè)現(xiàn)在很熱的領(lǐng)域 -- 可穿戴式設(shè)備和智能家電 -- 所加入的框架?;旧蟻?lái)說(shuō) Apple 想做的事情就是以 iOS 為基礎(chǔ),為其他 app 建立一個(gè)平臺(tái)以及成為用戶數(shù)據(jù)的管理者。

Health Kit 就是一個(gè)用戶體征參數(shù)的數(shù)據(jù)庫(kù),第三方應(yīng)用可以向用戶申請(qǐng)權(quán)限使用其中的數(shù)據(jù)或是向其中匯報(bào)數(shù)據(jù)。而 Home Kit 則以家庭,房間和設(shè)備的組織形式來(lái)管理和控制家中適配了 Home Kit 的智能家電。這兩個(gè)超級(jí)年輕的框架的 API 相對(duì)都還比較簡(jiǎn)單,結(jié)構(gòu)也很好,相信稍有經(jīng)驗(yàn)的 iOS 開(kāi)發(fā)者都能在很快掌握用法。唯一的限制在于作為普通開(kāi)發(fā)者(比如我這樣的只能自己業(yè)余玩的)可能手邊現(xiàn)在不會(huì)有合適的設(shè)備來(lái)進(jìn)行測(cè)試,所以很多東西其實(shí)沒(méi) 有辦法驗(yàn)證。不過(guò)對(duì)于 Home Kit,Apple給我們提供了一個(gè)模擬器來(lái)模擬智能家電設(shè)備,您可以在 Xcode 6 的 Open Developer Tool 菜單中找到 Home Kit Accessory Simulator。使用模擬器可以發(fā)現(xiàn),添加并且控制自定義的智能家電,用來(lái)前期開(kāi)發(fā)還是蠻方便的。

如果能入手一些適配于 Health Kit 或者 Home Kit 的設(shè)備的話,我可能會(huì)補(bǔ)充一些關(guān)于這方面的開(kāi)發(fā)心得。

游戲方面

最大的改變莫過(guò)于 Scene Kit 的加入了。不過(guò)游戲天生的容易跨平臺(tái)的特性 (并且也有這方面的強(qiáng)烈需求),與平臺(tái)限制的 Sprite Kit 是沖突的,所以去年的 Sprite Kit 也還沒(méi)多少人用。暫時(shí)看來(lái)這個(gè)世界現(xiàn)在是,并且在一段時(shí)間內(nèi)還會(huì)是被 Cocos2dx/Unity 所統(tǒng)治的。Scene Kit 的未來(lái)估計(jì)會(huì)和 Sprite Kit 比較類似,作為對(duì)于一直進(jìn)行 iOS 應(yīng)用開(kāi)發(fā)的開(kāi)發(fā)者來(lái)說(shuō),有著不需要學(xué)習(xí)和熟悉新語(yǔ)言的優(yōu)勢(shì),容易與系統(tǒng)的其他框架進(jìn)行集成,所以用來(lái)轉(zhuǎn)型還算不錯(cuò)的選擇。但除此之外其他方面可能也并沒(méi)有 多少可以吸引人的地方了。

另一個(gè)重大改變是對(duì)于 A7 和以上級(jí)別的 GPU 推出了一套全新的稱為 Metal 的繪制 API,從 Keynote 的 Zen Garden 的演示來(lái)看,Metal 的性能毋庸置疑是令人折服的,Metal 的渲染方式和著色器也相當(dāng)有趣。但是其實(shí)這些內(nèi)容更多地是偏向底層以及面向引擎開(kāi)發(fā)的,對(duì)于使用游戲引擎來(lái)制作游戲的大多數(shù)開(kāi)發(fā)者來(lái)說(shuō),并不需要知道或者 理解其中的東西。在 A7 的芯片下使用 Apple 自家的 Sprite Kit 或者 Scene Kit 的話,就可以直接受益于 Metal,而其他一些知名的第三方引擎,比如 Unity 和 UE 也都會(huì)在 iOS 8 推出后支持 Metal。因此,作為引擎使用者,并不需要做出除了升級(jí)開(kāi)發(fā)使用的游戲引擎之外的任何改變。

其他重要改動(dòng)

Local 和 Remote 通知的變化

現(xiàn)在需要顯示 UI 或者播放聲音的通知,包括 Local 通知也需要實(shí)現(xiàn)彈窗獲得用戶許可了。使用 -registerUserNotificationSettings: 來(lái)向用戶獲取許可。作為補(bǔ)償,現(xiàn)在對(duì)于不需要打擾用戶(也就是 iOS 7 加入的靜默通知)的類型不再需要彈框獲取用戶許可。不過(guò)因?yàn)楸镜赝扑褪切枰S可的,所以無(wú)論怎樣如果你想要依靠通知來(lái)提高用戶留存率的話,現(xiàn)在都繞不開(kāi)用 戶許可了。

另外,通知中心加入了非常方便的 Action 特性,用戶可以在收到通知后,在不打開(kāi)應(yīng)用的情況下完成一些操作??梢哉f(shuō)配合通知中心的 Today 擴(kuò)展,用戶現(xiàn)在在很可能可以在不打開(kāi)應(yīng)用的情況下就獲取到他們想要的信息,并完成互動(dòng)。這對(duì)于開(kāi)發(fā)者可以說(shuō)是一件喜憂參半的事情,一方面我們可以給用戶提 供更好更快的使用體驗(yàn),但是另一方面這將降低用戶打開(kāi)應(yīng)用的意愿。不過(guò) Apple 現(xiàn)在的總體思路還是 app 的體驗(yàn)才是最重要的,所以正確的道路應(yīng)該還是優(yōu)先做好 app 的體驗(yàn),并且摸索一個(gè)應(yīng)用和通知之間的平衡點(diǎn),讓大家都滿意。

CoreLocation

CoreLocation 室內(nèi)定位?,F(xiàn)在 CL 可以給出在建筑物中的樓層定位信息了,直接訪問(wèn) CLLocation 實(shí)例的 floor,如果當(dāng)前位置可用的話,會(huì)返回一個(gè)包含位置信息的非 nil 的 CLFloor 以標(biāo)識(shí)當(dāng)前樓層。這個(gè)使得定位應(yīng)用的可能性大大擴(kuò)展了,想象一下在復(fù)雜的地鐵站或者大廈里迷路的時(shí)候,還可以依賴定位系統(tǒng),幸福感涌上心頭啊。

Touch ID

Touch ID API,說(shuō)是開(kāi)放了 Touch ID 的驗(yàn)證,但是實(shí)際上能做的事情還是比較有限。因?yàn)楝F(xiàn)在提供的 API 只能驗(yàn)證用戶是不是手機(jī)主人本人,而不能給出一個(gè)識(shí)別的標(biāo)志或者唯一編碼,所以想用 Touch ID 做注冊(cè)登陸什么的話可能還是不太現(xiàn)實(shí)。不過(guò)在進(jìn)行支付驗(yàn)證之類的已登錄后的再次確認(rèn)操作時(shí)就比較好用。現(xiàn)在看來(lái)的話這組 API 就是為了簡(jiǎn)化像 Paypal 或者支付寶這樣的第三方支付和確認(rèn)的流程的。希望之后能繼續(xù)放開(kāi),如果能給一個(gè)唯一標(biāo)識(shí)的話,也許就可以干掉整個(gè)討厭的注冊(cè)和登陸系統(tǒng)了。

相機(jī)和照片

新增加了 Photos.framework 框架,這個(gè)框架用于與系統(tǒng)內(nèi)置的 Photo 應(yīng)用進(jìn)行交互,不僅可以替代原來(lái)的 Assets Library 作為照片和視頻的選取,還能與 iCloud 照片流進(jìn)行交互。除此之外,一個(gè)很重要的特性是還可以監(jiān)聽(tīng)其他應(yīng)用對(duì)于照片的改變,可以說(shuō)整個(gè)框架非常靈活。

本文鏈接:http://www.cocoachina.com/applenews/devnews/2014/0716/9157.html  

【編輯推薦】

  1. ShareSDK重金收購(gòu)Mob.com 全面轉(zhuǎn)型移動(dòng)開(kāi)發(fā)者服務(wù)平臺(tái)
  2. Android開(kāi)發(fā)奧秘:工具IDE,SDK,谷歌服務(wù)等一網(wǎng)打盡

【責(zé)任編輯:chenqingxiang TEL:(010)68476606】

責(zé)任編輯:chenqingxiang 來(lái)源: cocoachina
相關(guān)推薦

2015-08-21 09:47:02

ios9sdk新特性

2017-06-09 13:33:57

2021-12-24 11:24:59

React HackReact JavaScript

2013-06-28 14:19:20

2016-02-22 15:09:19

Android項(xiàng)目管理技巧

2010-07-30 16:27:06

Flex開(kāi)發(fā)

2013-06-13 09:59:02

2010-03-01 10:20:27

Flex

2011-05-26 11:13:36

Flex

2018-09-29 15:27:05

BinderAPPAndroid

2015-09-18 08:41:12

androidM權(quán)限

2023-06-05 16:50:06

開(kāi)發(fā)TypeScriptJavaScript

2025-02-25 08:30:00

前端開(kāi)發(fā)VSCode

2015-08-31 09:41:38

androidM權(quán)限

2015-11-09 10:50:42

2013-04-26 09:38:13

go

2024-04-26 13:36:01

2014-09-29 10:08:34

2013-11-22 15:03:25

開(kāi)發(fā)者消息推送

2014-07-16 08:57:41

iOS 8 API
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)