另外,Xcode還提供了創建粒子系統和貼圖Atlas的工具。使用Xcode來管理粒子效果和貼圖atlas,可以迅速在Sprite Kit中反應出來。
Game Controller Framework
為Made-for-iPhone/iPod/iPad (MFi) game controller設計的硬件的對應的框架,可以讓用戶用來連接和控制專門的游戲硬件。參考WWDC 2013開場視頻中開始的賽車演示?,F在想到的是,也許這貨不僅可以用于游戲…或者蘋果之后會擴展其應用,因為使用普及率很高的iPhone作為物聯網的入口,似乎會是很有前途的事情。
GameCenter改進
GameCenter一直是蘋果的敗筆…雖然每年都在改進,但是一直沒看到大的起色。今年也不例外,都是些小改動,不提也罷。
多任務強化
這個專題的相關筆記
后臺應用運行和多任務新特性 WWDC2013筆記 iOS7中的多任務 http://onevcat.com/2013/08/ios7-background-multitask/
經常需要下載新內容的應用現在可以通過設置UIBackgroundModes為fetch來實現后臺下載內容了,需要在AppDelegate里實現setMinimumBackgroundFetchInterval:以及application:performFetchWithCompletionHandler:來處理完成的下載,這個為后臺運行代碼提供了又一種選擇。不過考慮到Apple如果繼續嚴格審核的話,可能只有雜志報刊類應用能夠取得這個權限吧。另外需要注意開發者僅只能指定一個最小間隔,最后下沒下估計就得看系統娘的心情了。
同樣是后臺下載,以前只能推送提醒用戶進入應用下載,現在可以接到推送并在后臺下載。UIBackgroundModes設為remote-notification,并實現application:didReceiveRemoteNotification:fetchCompletionHandler:
為后臺下載,開發者必須使用一個新的類NSURLSession,其實就是在NSURLConnection上加了個后臺處理,使用類似,API十分簡單,不再贅述。
AirDrop
這個是iOS7的重頭新功能,用戶可以用它來分享照片,文檔,鏈接,或者其他數據給附近的設備。但是不需要特別的實現,被集成在了標準的 UIActivityViewController里,并沒有單獨的大塊API提供。數據的話,可以通過實現UIActivityItemSource接口后進行發送。大概蘋果也不愿意看到超出他們控制的文件分享功能吧,畢竟這和iOS設計的初衷不一樣。如果你不使用 UIActivityViewController的話,可能是無法在應用里實裝AirDrop功能了。
另外,結合自定義的應用文件類型,可以容易地實現在后臺接收到特定文件后使用自己的應用打開,也算是增加用戶留存和回訪的一個辦法。但是這樣做現在看來比較討厭的是會有將所有文件都注冊為可以打開的應用(比如Evernote或者Dropbox之類),導致接收到AirDrop發送的內容的時候會彈出很長一排選項,體驗較差,只能說希望Apple以后能改進吧
地圖
Apple在繼續在地圖應用上的探索,MapKit的改進也乏善可陳。我一直相信地圖類應用的瓶頸一定在于數據,但是對于數據源的建立并不是一年兩年能夠完成的。Google在這一塊憑借自己的搜索引擎有著得天獨厚的優勢,蘋果還差的很遠很遠??纯从心男┬聳|西吧:
MKMapCamera,可以將一個MKMapCamera對象添加到地圖上,在指明位置,角度和方向后將呈現3D的樣子…大概可以想象成一個數字版的Google街景..
MKDirections 獲取Apple提供的基于方向的路徑,然后可以用來將路徑繪制在自己的應用中。這可能對一些小的地圖服務提供商產生沖擊,但是還是那句話,地圖是一個數據的世界,在擁有完備數據之前,Apple不是Google的對手。這個狀況至少會持續好幾年(也有可能是永遠)。
MKGeodesicPolyline 創建一個隨地球曲率的線,并附加到地圖上,完成一些視覺效果。
MKMapSnapshotter 使用其拍攝基于地圖的照片,也許各類簽到類應用會用到
改變了overlay物件的渲染方式
Inter-App Audio 應用間的音頻
AudioUnit框架中加入了在同一臺設備不同應用之間發送MIDI指令和傳送音頻的能力。比如在一個應用中使用AudioUnit錄音,然后在另一個應用中打開以處理等。在音源應用中聲明一個AURemoteIO實例來標為Inter-App可用,在目標應用中使用新的發現接口來發現并獲取音頻。
想法很好,也算是在應用內共享邁出了一步,不過我對現在使用AudioUnit這樣的低層級框架的應用數量表示不樂觀。也許今后會有一些為更高層級設計的共享API提供給開發者使用。畢竟要從AudioUnit開始處理音頻對于大多數開發者來說并不是一件很容易的事情。
點對點連接 Peer-to-Peer Connectivity
可以看成是AirDrop不能直接使用的補償,代價是需要自己實現。MultipeerConnectivity框架可以用來發現和連接附近的設備,并傳輸數據,而這一切并不需要有網絡連接??梢钥吹紸pple逐漸在文件共享方面一步步放開限制,但是當然所有這些都還是被限制在sandbox里的。
Store Kit Framework
Store Kit在內購方面采用了新的訂單系統,這將可以實現對訂單的本機驗證。這是一次對應內購破解和有可能驗證失敗導致內購失敗的更新,蘋果希望藉此減少內購的實現流程,減少出錯,同時遏制內購破解泛濫。前者可能沒有問題,但是后者的話,因為objc的動態特性,決定了只要有越獄存在,內購破解也是早晚的事情。不過這一點確實方便了沒有能力架設驗證服務器的小開發者,這方面來說還是很好的。
最后
當然還有一些其他小改動,包括MessageUI里添加了附件按鈕,Xcode開始支持模塊了等等。完整的iOS7新特性列表可以在這里找到(暫時應該也需要開發者賬號)。最后一個好消息是,蘋果放慢了廢棄API的速度,這個版本并沒有特別重要的API被標為Deprecated,Cheers。
原文轉自:http://onevcat.com/2013/06/developer-should-know-about-ios7/