1. 程式人生 > >關於iOS基礎總結(7)--ios各個版本新特性總結

關於iOS基礎總結(7)--ios各個版本新特性總結

iOS7新特性

· 在iOS7當中,使用麥克風也需要取得使用者同意了。如果使用者不允許app使用麥克風的話,那麼需要使用麥克風的app就不能接收不到任何聲音

· [NSArray firstObject]的實現,iOS4之前只是一個私有的方法

· UIImage.renderingMode著色(Tint Color),可以設定一個UIImage在渲染時是否使用當前檢視的Tint Color。

· UIScreenEdgePanGestureRecognizer可以從螢幕邊界即可檢測手勢

· 使用Core Image來檢測眨眼以及微笑iOS給Core Image增加了兩種人臉檢測功能:CIDetectorEyeBlink以及CIDetectorSmile。這也就是說你現在可以在照片中檢測微笑以及眨眼。

iOS8新特性

· 當使用iOS8定位的時候需要請求使用者授權,且在info.plist裡新增欄位NSLocationAlwaysUsageDescription 請求使用者授權的描述

· size classes是為了解決storyboard只能訂製一種螢幕樣式的問題,它不再是具體的尺寸,而是抽象尺寸通過寬/高 的compact、any、regular 組成了九種組合包含了所有蘋果裝置的尺寸。

· iOS8中,字型是Helvetica,中文的字型有點類似於“華文細黑”。只是蘋果手機自帶渲染,所以看上去可能比普通的華文細黑要美觀。iOS9中,中文系統字型變為了專為中國設計的“蘋方” 有點類似於一種word字型“幼圓”。字型有輕微的加粗效果,並且最關鍵的是字型間隙變大了!

iOS9新特性

· iOS9系統傳送的網路請求將統一使用HTTPs,將不再預設使用HTTP等不安全的網路協議,而預設採用TLS 1.2。伺服器因此需要更新,以解析相關資料。如不更新,可通過在 info.plist 中宣告,倒退回不安全的網路請求。

· 將允許出現這種場景:同一app中多個location manager:一些只能在前臺定位,另一些可在後臺定位

· bitcode的理解應該是把程式編譯成的一種過渡程式碼,然後蘋果再把這個過渡程式碼編譯成可執行的程式。bitcode也允許蘋果在後期重新優化我們程式的二進位制檔案,有類似於App瘦身的思想。

· stackView

· Multasking:多工特性,三種形式

· 臨時調出的滑動覆蓋:Slide Over

視訊播放的畫中畫模式(Picture in Picture)(AVPlayerViewController預設支援。MPMoviePlayerViewController被deprecated掉了,不支援)
iPad真正同時使用兩個App

· UI Test:iOS9.0之前加入非同步程式碼測設和效能測試,可以說Xcode自帶的測試框架已經能滿足絕大部分單元測試的需求了,但是這並不夠,因為開發一個iOS app從來都是很注重UI和使用者體驗的,之前UI測試使用KIF,Automating,iOS9.0的Xcode給出了自帶的XCUITest的一系列工具,和大多數UI測試工具類似,XCUI使用Accessbility標記來確定view,但因為是Apple自家的東西,可以自動記錄操作流程,所以只要書寫最後的驗證部分就好了,比其他UI測試工具方便多了

· Swift2

· APP Thinning:app為了後向相容,都同時包含了32bit和64bit,在圖片資源2X和3X的一應俱全,下載的時候只需要當前機型對應的一套資源,但是卻要全部打包下載,現在只需要升級iOS9,就可以省很多流量

· 3D touch

· 地圖顯示實時的交通狀況

· 人工智慧siri更加智慧,幾個大城市的地鐵及火車站入口都有詳細的標識

· 手機電池的低功耗設定

· Spootlight,你的裝置會向推薦最近通話過的聯絡人,使用過的APP以及你可能感興趣的去處、資訊呈現更精彩

iOS10新特性

· SiriKit 在 iOS 10 裡面開發者可以使用 Siri SDK,這可能是 iOS 10 最重要的新 SDK之一。從此開發者可以使用原生API提供語音搜尋、語音轉文字訊息甚至更多常見語音功能。

· Proactive Suggestions 貌似是一個和 CoreSpotlight 有整合的使用建議的東西。

· Message App Extension 在 iOS 10 裡面開發者可以給 Message.app 提供兩種 App Extension,分別是可以提供一個表情包,和一個自定義的介面,用於表情搜尋等。

· User Notifications 這個 API 讓你可以處理本地或遠端的使用者通知,並且可以基於某個條件,例如時間或者地理位置。這個異常強大,好像可以在通知裡包含圖片和視訊了,貌似可以攔截並替換自己 app 發下來的 payload。

· Speech Recognition 見聞知意,語音識別 API,可以把音訊流實時的轉換為文字。雖說早期版本已經有了TTS語音轉文字,但畢竟Siri語義識別的加入讓機器對自然語義的把握更精準,詳見Speech.framework

· App Search Enhancements 對 CoreSpotlight 的增強,其中我比較感興趣的是 Visualization of validation results。

· Widget Enhancements 為了配合 iOS 10 鎖屏下面 Widget 的體驗,蘋果提供了 widgetPrimaryVibrancyEffect 和 widgetSecondaryVibrancyEffect 用於定製化 Widget 的介面。

· CallKit callkit框架 VoIP應用程式整合與iPhone的通話介面,給使用者一個很棒的體驗,鎖屏後VoIP網路電話可以直接用iPhone系統UI接聽了。

· App Extensions 其實上面也有提到,iOS 10最重要的開發特點就是允許第三方應用對自帶基礎app的拓展關聯, 全新 7 種 App Extension:
Call Directory(VoIP回撥)

Intents(接Siri、Apple map等服務)

Intents UI(接Siri、Apple map等服務的自定義介面)

Messages(iMessage拓展)

Notification Content(內容通知)

Notification Service (服務通知)

StickerPack(iMessage表情包)

· Custom Keyboard 對第三方鍵盤的改進 通過 handleInputModeListFromView:withEvent: 可以彈出系統鍵盤列表。同時使用 documentInputMode 可以檢測輸入上下文中的語言,你可以對輸入方式進行一些類似於對齊方式的調整。

另外需要注意的是,和以往歷代iOS版本推出一樣,新陳代謝,有新SDK、新API的開放,也會有舊的API被遺棄,所以好好檢查你的專案,使用了被遺棄的API要儘快修改,以免不相容!還有個要注意的問題 iOS10 對隱私許可權的管理更為嚴格 ,比如訪問的攝像頭、麥克風等硬體,都需要提前請求應用許可權、允許後才可以使用,或者現在要提前宣告,雖然以往要求不嚴格。