iOS 8 新增 4000 多個 API,重要的有哪些?

&> iOS 8 is the biggest release for developers since the introduction of the App Store. It opens up new areas of iOS, allowing developers to extend the reach of their app content and functionality. It includes over 4000 new APIs to enable amazing features and capabilities. And it o?ers bold new technologies for game development. All of which means soon you』ll see exciting new apps and games that let you do things you』ve never been able to do before.


Source: Apple - iOS 8


&> iOS 8 includes over 4,000 new APIs that let you add amazing new features and capabilities to your apps. Deeper integration with iOS means you can extend the reach of your app content and functionality. And with bold new technologies for game development, you can create even more incredible, responsive, and immersive gaming experiences.

Source: iOS 8 for Developers - Apple Developer


大致看了一眼 What"s New in iOS: Introduction ,除了上面在 WWDC 開場發布會提到的那些新特性以外,還有幾個比較有意思或值得注意的地方:

  • 現在,開發者可以用蘋果官方給出的方法實現實時的「毛玻璃」效果了(UIVisualEffect Class Reference)。在此之前,雖然很多 App 使用了「毛玻璃」效果,不過都不是通過蘋果官方給的方法實現的。如果希望在 iOS 上實現「毛玻璃」效果,只能用兩種很蛋疼的辦法(1. 用類似 GPUImage 這樣的圖像處理庫實時截屏、做高斯模糊、調整亮度、飽和度;2.將視圖底色設置為透明,在視圖底下放一個 UIToolBar)
  • OS X 和 iOS 聯動功能(handoff)的 API 是開放的(微信、QQ、Word 等應用也可以獲得類似系統內信息應用、Pages 等與 Mac 聯動的功能)
  • Universal App 中, iPhone、iPad 界面可以同時存儲在一個 StoryBoard 文件里(這是要為大屏 iPhone 做準備的節奏嗎?)。
  • 導航欄 (UINavigationBar)現在可以通過手勢壓縮(類似 Safari 那樣向上滑動壓縮導航欄,向下滑動展開導航欄)。做閱讀類應用可以減少很多工作量。
  • 原先的警告對話框(UIAlertView)和動作列表(UIActionSheet)被合併成了一個 UIAlertController,並且可以加上文本框(UITextField)。
  • 分隔視圖(UISplitViewController,類似 iPad 里的設置 App 那樣左右兩邊分開的視圖)現在支持 iPhone(原先僅在 iPad 上可用)

另外,看了一下新加入的 Extensions 特性,當前 Extensions 只支持:

  • 分享(如安裝微信後,其他的 App 不用做設置,通過統一的系統介面,即可將內容分享到朋友圈)
  • 動作(應該是可以把自定義動作(UIActivity)和複製、列印、加入到閱讀列表這些一併放在 UIActivityView 里,在整個系統層面)
  • 今日(應該是在通知中心裡的 widget 那些)
  • 照片編輯(比如提供第三方濾鏡等等)
  • 存儲文件(比如以後 Adobe Reader 里的 PDF 可以用 iBooks 打開了)
  • 自定義鍵盤(第三方輸入法等等)

這六個特性,依然沒有包含有關電話、簡訊等許可權的開放,意味著當前依然不能夠通過正規途徑開發來電歸屬地和垃圾簡訊攔截 App。還有,部分 extensions 特性可用於 OS X,例如分享功能。


Touch ID
第三方輸入法
通知中心Widget

詳見:Apple - iOS 8,主要是一下幾個方面

  • Touch ID

For the first time, you』ll have the option of using Touch ID to sign in to third-party apps — there』s no need to enter a password. Your fingerprint data is protected and is never accessed by iOS or other apps.

  • PhotoKit

Developers can enable their photo apps to edit photos directly in the Camera Roll without having to import them first.

  • Camera API

Now third-party camera apps can have precise control over exposure, focus, and white balance in addition to the controls they already have.

  • HealthKit

Health and fitness apps can share their data with the new Health app and with each other. When apps can talk to each other, they work harder for your health.

  • HomeKit

HomeKit introduces a new way for you to control supported devices in your home using Siri. That means you could use your voice to turn on lights or adjust the thermostat.

  • CloudKit

Now developers can use the full power of iCloud in their apps and enable you to sign in with your Apple ID without sharing your personal information.

  • SpriteKit

SpriteKit enables developers to create high-performance, battery-efficient 2D games. In iOS 8, we』ve added several enhancements that will make 2D games even better. These new technologies will help in-game characters move more naturally and make it easier for developers to add force fields, detect collisions, and generate new lighting effects in their games.

  • SceneKit

SceneKit enables developers to render game scenes in 3D and is designed for casual 3D gaming. SceneKit incorporates a physics engine, a particle generator, and easy ways to script the actions of 3D objects. It』s also completely integrated with SpriteKit, so developers can include SpriteKit assets in 3D games.

  • Metal

Built for developers who create highly immersive console games, Metal is a new technology that will allow them to squeeze maximum performance from the A7 chip. It』s optimized to allow the CPU and GPU to work together to achieve optimal performance. It』s designed for multithreading, and there are great tools for putting it all together in Xcode.


只補充一點音頻相關的新API:

這次iOS支持完整的MIDI了,可以載入sf2/dls格式的音色庫、有了MidiSynth支持、有了完整的Midi CC控制、支持SysEx信息。有了專門播放Midi的類:AVMIDIPlayer。

音頻處理方面,添加了混響、濾波、重採樣、變調、優質3D音效(比如說HRTF)等等。


基本上就是發布會上蘋果小哥提到的那幾個了,包括但不限於——

Touch ID :開放第三方軟體使用指紋識別功能,媽媽再也不用擔心我忘記密碼了;

HealthKit:健康軟體可以把自己的數據放到這個平台,「When apps can talk to each other, they work harder for your health.」「當矮屁屁君能夠互相嘮嗑時,他們就能更好的呵護咱們的健康了呢~」

HomeKit:沒得說了,搞智能家居的開發者們等這天很久了吧,而且這次還開放了 Siri 君,天黑後到家,對著愛瘋麥克風吼一句「一起來啊!」,然後整間房瞬間金碧輝煌的日子不遠了~

其他的可以看蘋果的專題介紹頁:http://www.apple.com/ios/ios8/developer/

有條件的還是建議看看這次大會的錄像,因為真的很逗很歡樂啊……


無疑是 Extension,讓 App 從一個個孤島連接在一起,這個影響是爆炸性的。
其次可能是 Handoff 了。讓用戶可以只關注內容而不是設備。


iOS 8 發布新 SDK(軟體開發工具包),增加 4000 多 API(應用程序介面)。蘋果自稱,此次發布是自有 App Store 以來「史上規模最大」的一次,新的框架、擴展程序和革命性的編程語言將為開發者提供更廣闊的施展空間。

全新的應用擴展

分享功能:在社交網站上,快速分享照片、視頻、網站和其他內容

照片編輯:照片應用中加入濾鏡和編輯工具,不必切換應用就能使用特效

個性操作:可開發全新功能,例如為文件添加水印、添加購物單、翻譯文本

消息中心:應用整合消息中心,可將內容添加到「今日視圖」中

新輸入法:支持第三方輸入法,可自由選擇輸入偏好與鍵盤布局

文件分享:更多應用將支持文本編輯,應用間可直接分享文件

4000 多種 API

Touch ID:指紋登錄第三方應用,再也不用輸密碼了

PhotoKit:邊拍邊編輯,省了保存照片的過程

Camera API:更精確控制拍照中的曝光、對焦、白平衡

HealthKit:健康應用可共享數據,提供更複雜功能

HomeKit:用 Siri 控制家居,開燈開空調一句話搞定

CloudKit:應用可調用 iCloud 保存文件,用 Apple ID 即可登陸

更出色的遊戲平台

SpriteKit:幫助開發高清並且省電的 2D 遊戲。遊戲角色動作更自然,光效更炫酷

SceneKit:3D 渲染,遊戲角色動作捕捉,可與 Sprite 整合,開發 2D、3D 最好效果

Metal:充分利用 CPU 和 GPU ,打造最佳遊戲體驗。多線程開發,支持 Xcode


最後壓軸的是 Swift ,蘋果全新的編程語言。它整合了 C 和 Objective-C 的優點,編程語言更簡潔,還為開發者提供實時預覽功能,使開發過程更簡單。有理由相信,不久之後,我們將會看到許多來自第三方開發者的優秀作品。


1.TouchID API
移動支付利好,以後包含支付的APP刷指紋就能支付
2.第三方輸入法
很多人越獄不都是為了這個嗎
3.HomeKit
整合Siri,智能家居利好
4.Metal
開發者能最大限度調用A7圖形處理器,還有SceneKit 和 SpriteKit 遊戲3D開發越來越強大了
5.HealthKit
整合健康醫療類App
6.Camera API
開發者可以自己調教對焦,曝光,白平衡等參數


Share Extension,有點殘啊;不知道是沒想好,還是說是個bug,不可以調用第三方App。


太大了,只能看著


開發中會用到的點:


1、Extension

2、size classes

3、Health Kit 和 HomeKit 公用資料庫

4、Local 和 Remote通知的變化

5、CoreLocation 室內定位

6、Touch ID

7、照片和相機 Photos.framework 替代 Assets Library

8、UIAlterController UISplitViewController 分隔視圖


推薦閱讀:

一個IOS程序員,每天其實就坐著,偶爾寫寫代碼,大部分時間就看看文檔,一天8小時工作,為何還是累到爆每天?
下圖中兩種樣式的返回按鈕,視覺上的主要差別在哪?

TAG:iOS開發 | iOSAPIs | iOS8 |