iOS7更新了不少引人注目的功能。用戶界面徹底從新設計了。iOS7爲開發2D,2.5D遊戲引入了全新的動畫系統。增強多線程,點對點鏈接,以及許多其餘重要的功能讓iOS7成爲有史以來最有意義的一次發佈。服務器
這邊文章總結了iOS7開發相關的特性。這個版本大操做系統能夠再目前的iOS設備上運行。另外,關於關鍵的新技術,這篇文章也列出了詳細介紹這些特性的文章。網絡
用戶界面的改變多線程
iOS7包含了不少新特性來幫助你們建立友好的用戶界面app
UI設計框架
iOS7用戶界面徹底從新設計了。縱觀整個系統,不只注重了功能,也注重了用戶內容的設計。半透明,精緻的視覺觸動,流動,逼真的運動感應,層次感,和靈活的用戶體驗。無論你是建立一個新的APP或者更新現有的,設計的時候記住這些特性。ide
用iOS7SDK編譯的APP在iOS7上運行時都會自動展示新的界面。若是在界面中使用了自動適應尺寸和位置,這些界面也會自動佈局。不過也許仍然會有增長的工做須要作來讓界面按照預期的展示。一樣的,若是自定義了界面,也須要更新來更好的適應新的界面。工具
關於和使用iOS7的優點來設計APP,查看介紹iOS7 Design Resources.佈局
界面的動態行爲字體
App如今能夠爲UIView對象以及那些實現了UIDynamicItem協議的對象指定動態行爲。(實現了這個協議的對象被叫作dynamic items.)動態行爲提供了一個優化APP用戶體驗的方式,就好像真是世界的行爲和特性(好比重力)同樣的動畫。UIKit支持下面的動態行爲:fetch
動態行爲在被加到一個animator對象時就生效了,animator對象是UIDynamicAnimator類的實例。animator爲動態行爲提供了上下文。一個動態對象能夠有多個動態行爲,可是這全部的動態行爲必須在同一個animator對象中作動畫。
想了解更多能夠實現的東西的話,查看UIKit Framework Reference.
Text Kit
Text Kit是一個管理字符串和排版的工具集合。Text Kit能夠在段落,列,以及頁上排版有樣式的字符串。它能夠容易的在文字周圍添加圖片。也可使用多種字體。Text kit也能夠和UIKit文字相關的控件交互,這樣可讓APP更容易的建立,編輯,顯示,存儲字符串。而且使用更少的代碼。
Text Kit包含了基於已有的類的新的類以及一些擴展,包括:
更新關於Text Kit的內容,參考Text Programming Guide for iOS.
支持64位
APP能夠被編譯爲64位的了。全部的系統庫和框架都已是64位的了,這意味着他們既能夠運行32位APP也能夠運行64位APP。當APP被編譯位64位時,因爲在64位模式下有額外的處理器資源,APP能夠運行的更快。
iOS使用LP64模式,和OS X以及64位UNIX系統同樣,這意味着移植代碼更方便。更多關於iOS64位運行時和如何寫64位APP,查看64-Bit Transition Guide for Cocoa Touch.
多線程增強
iOS7支持兩種新的後臺運行模式:
常常鏈接服務器來更新內容的APP,能夠經過向系統註冊來週期性的在後臺獲取內容。要註冊的話,在APP的Info.plist文件中包含UIBackgroundModes,值設爲fetch。而後,當APP啓動後,調用setMinimumBackgroundFetchInterval:方法來設置接收更新消息的頻率。最後,必需要在APP delegate中實現application:performFetchWithCompletionHandler:方法。
經過推送來通知用戶有新消息的APP能夠在後臺獲取消息。要支持這個模式的話,在APP Info.plist文件中包含UIBackgroundModes,值設爲remote-norification。一樣須要在APP delegate中實現application:didReceiveRemoteNotification:fetchCompletionHandler;方法。
支持fetch或者remote-notification後來模式的APP可能會在一個模式的時機被啓動或者從暫停模式移動到後臺模式。在fetch後臺模式,系統會根據當前信息來決定最好的啓動或喚醒APP的時機。例如,在網絡狀態很好或者設備已經啓動。你也能夠悄悄的推送消息,也就是不顯示彈出框的推送,這樣就不會打擾用戶。
對於少許內容的更新,使用NSURLRequest。要在後臺上傳或下載大量內容的話,使用NSURLSession。這個類增強了NSURLConnection,它提供一個簡單的,基於任務接口來初始化和執行NSURLRequest。一個NSURLSession對象能夠初始化多個上傳下載任務,而且可使用回調來處理服務器的身份認證請求。
更多關於新的後來運行的資料,參考iOS App Programming Guide 中的 App States and Multitasking
遊戲
iOS7增強了遊戲支持
Sprite Kit Framework
Sprite Kit Framework提供了一個硬件加速的動畫系統來優化2D,2.5D遊戲。Sprite Kit提供了遊戲須要的大多數基數設施,包括圖形渲染動畫系統,聲音回放,物理模擬引擎。Sprite Kit把你從這些事情中解放出來,你能夠專一於設計遊戲的內容和更上層的交互。
Sprite Kit APP中的內容被放到了場景中。一個場景能夠包含文字對象,聲音,形狀,圖片濾鏡以及其餘的效果。Sprite Kit獲取這些對象而後以最效率的方式顯示在屏幕上。當須要對場景中的內容作動畫時,可使用Sprite Kit來指定想實現的操做,或者可使用模擬物理引擎來定義物理行爲(好比重力,吸引或排斥)。
除了Sprite Kit,還可使用Xcode工具建立粒子效果和紋理效果。可使用Xcode工具來管理APP資源和快速更新Sprite Kit場景。
更多關於如何使用Sprite Kit,查看Sprite Kit Programming Guide.要查看如何使用Sprite Kit來建立APP,查看code:Explained Adventure.
Game Controller Framework
Game Controller Framework 能夠發現和配置基於iPhone/iPod/iPad的遊戲控制器設備。遊戲控制器能夠直接物理鏈接到iOS設備上,也能夠經過藍牙無線鏈接。Game Controller Framework在有控制器可用時通知APP,也可讓你選擇那個控制器是和APP相關的。
更多關於支持遊戲控制器的信息,查看Game Controller Programming Guide.
Game Center 增強
遊戲中心包含如下增強:
回合制的遊戲能夠支持一個新特性叫作exchanges.Exchanges可讓玩家執行操做,就算不是在他的回合。可使用這個功能實時的輪迴,玩家聊天,和其餘玩家交易。
單個APP的排行榜限制從25個增長到100個.也可使用GKLeaderboardSet對象來管理排行榜,這樣能夠增長到500。
能夠定義挑戰的前提條件。好比,賽車比賽能夠定義一個時間的挑戰,前提是玩家必須使用一樣的車。
增強了認證機制,也添加了其餘特性來方式欺騙。
更多關於若是使用遊戲中心的屬性,查看Game Center Programming Guide.更多關於Game Kit framework的信息,查看Game Kit Framework Reference.
地圖
Map Kit Framework加入了不少優化和基於地圖信息的新功能。使用地圖顯示地理位置信息的APP如今可使用地圖APP中的3D地圖。包括用程序控制如何顯示。Map Kit也在下面這些方面作了增強:
Overlays在地圖中能夠被放在不一樣的層中,這樣他們根據數據不一樣看起來有前有後。
能夠在地圖上實現一個MKMapCamera對象,這樣能夠添加位置,各類角度的,和導航信息。指定的相機對象在地圖上展示一個3D的效果。
MKDirections類能夠從Apple請求導航路線相關的信息。可使用那些信息建立overlay顯示在本身的地圖上。
MKGeodesicPolyline類能夠建立一個根據地球曲率的線overlay。
App可使用MKMapSnapshotter類開捕捉基於地理位置的圖片。
基於MKOverlayRenderer類的overlay視覺展現,替換了之前的overlay界面,它提供一個更簡單的渲染實現。
APP如今能夠擴展或者替換map上已有的圖塊,經過使用MKTileOverlay和MKTileOverlayRenderer類
更多關於Map Kit的信息,查看Map Kit Framework Reference.
AirDrop
AirDrop可讓用戶和附近的設備分享照片,文件,url以及其餘各類數據。AirDrop封裝在UIActivityViewController類中。這個類爲展現你指定的不一樣內容,顯示不一樣的選項。若是如今尚未使用這個類的話,能夠考慮在界面上加入這個選項。
要接收經過AirDrop發送的文件,須要作下面的事情:
在Xcode中,聲明APP支持的文件類型。(在Info.plist中)系統經過這個信息來決定APP是否能打開指定的文件。
在APP回調中實現application:openURL:sourceApplication:annotation:方法。(有新文件收到時,系統會調用這個方法)。
發送到APP的文件被放在APP的home文件夾下的Documents/Inbox中。若是打算修改文件,須要在修改以前把文件移到其餘地方。(系統只容許APP讀和刪除這個文件夾下的文件)存儲在這個文件夾下的文件會使用數據保護加密,因此你必需要處理設備鎖上時數據不能訪問的問題。
更多關於使用activity view controller分享數據的信息,查看UIActivityViewController Class Reference.
Inter-App Audio
Audio Unit Framework增長了支持跨應用音頻,它可讓同一個設備上的APP之間發送MIDI命令和聲音流。例如,能夠用這個特性來讓一個APP錄來自另一個樂器APP發出的聲音,或者把聲音發送給另外的APP來處理。要發送app的聲音數據,公用的I/O(AURemoteIO)對其餘進程是可見的。要使用其餘APP的聲音,使用iOS7的發現音頻組建接口。
更多關於新接口的信息,查看頭文件,和Audio Unit Framework Reference。
點對點鏈接
Multipeer Connectivity framework 支持發現附近的設備而且不須要網絡直接和這些設備通信。這個框架能夠容易的建立多點會話,實現可靠順序數據傳輸和實時數據傳輸。
這個框架提供了代碼級別和界面級別的選擇來發現和管理網絡服務。APP能夠在用戶界面中整合MCBrowserViewController類來列出設備讓用戶選擇。一樣,也可使用MCNearbyServiceBrowser類來經過代碼搜索和管理設備。
更多信息,查看Multipeer Connectivity Framework Reference.
新的框架
iOS7包含下面一些新框架
遊戲框架(GameController.framework)提供了和遊戲相關硬件交互的接口.查看Game Controller Framework
精靈框架(SpriteKit.framwork)提供了基於精靈的動畫和圖形渲染.查看Sprite Kit Framework
多點鏈接框架(MultipeerConnectivity.framework)爲APP提供了點對點網絡鏈接.查看Peer-to-Peer Connectivity.
JavaScript核心框架(JavaScriptCore.framework)提供了Objective-c封裝的標準JavaScript對象的類。
使用這個框架能夠執行JavaScript代碼和解析JSON數據。更多信息,查看框架的頭文件。
多媒體框架(MediaAccessibility.framework)能夠管理多媒體文件是否顯示字幕。這個框架使用一些新的設置來讓用戶實現隱藏字幕。
Safari服務框架(SafariServices.framwork)支持使用代碼添加閱讀列表到Safari.更多信息,查看框架的頭文件。
以及加強了一些現有的框架