開發(fā)者所需要知道的 iOS 11 SDK 新特性

參考 喵神博客 & WWDC 直播

作為iOS開發(fā)者,好像每年都會關注WWDC會議。?

此次新增框架:

? ? Core ML

? ? 自從阿爾法狗戰(zhàn)敗李世石、柯杰后,名聲大噪。雖然戰(zhàn)勝了,但也背負了很多罵名。馬云針對人工智能的看法是:“人工智能盡量是陪伴人類,而不是取代人類”。蘋果大會推出的 Core ML。簡單的說就是提供框架和已經學習好數據模型。

? ? 對機器學習模型的訓練是一項很重的工作,Core ML所扮演的角色更多的是將已經訓練好的模型轉換為 iOS 可以理解的形式,并且將新的數據“喂給”模型,獲取輸出。抽象問題和創(chuàng)建模型雖然并不難,但是對模型的改進和訓練可以說是值得研究一輩子的事情,這篇文章的讀者可能也不太會對此感冒。好在 Apple 提供了一系列的工具用來將各類機器學習模型轉換為 Core ML 可以理解的形式。籍此,你就可以輕松地在你的 iOS app 里使用前人訓練出的模型。

? ?Core ML 在背后驅動了 iOS 的視覺識別的Vision框架和 Foundation 中的語義分析相關 API。普通開發(fā)者可以從這些高層的 API 中直接獲益,比如人臉圖片或者文字識別等。這部分內容在以前版本的 SDK 中也存在,不過在 iOS 11 SDK 中它們被集中到了新的框架中,并將一些更具體和底層的控制開放出來。比如你可以使用 Vision 中的高層接口,但是同時指定底層所使用的模型。這給 iOS 的計算機視覺帶來了新的可能。

? ? Google 或者 Samsung 在 Android AI 上的努力,大多是在自帶的應用中集成服務。相比起來,Apple 基于對自己生態(tài)和硬件的控制,將更多的選擇權交給了第三方開發(fā)者。

? Core ML 鏈接:https://developer.apple.com/machine-learning/

? 人工智能資料:鏈接:http://pan.baidu.com/s/1qXMUGCs? 密碼:hmtz

? ?ARKit

Keynote 上的 AR 的演示可以說是唯一的亮點了。iOS SDK 11 中 Apple 給開發(fā)者,特別是 AR 相關的開發(fā)者帶來了一個很棒的禮物,那就是ARKit。AR 可以說并非什么新技術,像是 Pokémon Go 這樣的游戲也驗證了 AR 在游戲上的潛力。不過除了 IP 和新鮮感之外,個人認為 Pokémon Go 并沒有資格代表 AR 技術的潛力?,F場的演示像我們展示了一種可能,粗略看來,ARKit 利用單鏡頭和陀螺儀,在對平面的識別和虛擬物體的穩(wěn)定上做得相當出色。幾乎可以肯定,那么不做最早,只做最好的 Apple 似乎在這一刻回到了舞臺上

ARKit 極大降低了普通開發(fā)者玩 AR 的門檻,也是 Apple 現階段用來抗衡 VR 的選項??梢詴诚胍幌赂囝愃?Pokémon

Go 的 AR 游戲 (結合實境的虛擬寵物什么的大概是最容易想到的) 能在 ARKit 和 SceneKit 的幫助下面世,甚至在 iPad

Pro 現有技能上做像是 AR 電影這樣能全方位展示的多媒體可能也不再是單純的夢想。

而與之相應的,是一套并不很復雜的 API。涉及的 View 幾乎是作為 SceneKit

的延伸,再加上在真實世界的定為也已經由系統幫助處理,開發(fā)者需要做的大抵就是將虛擬物體放在屏幕的合適位置,并讓物體之間互動。而利用 Core ML

來對相機內的實際物體進行識別和交互,可以說也讓各類特效的相機或者攝影 app 充滿了想像空間。

其他值得注意的變更:

拖拽- 很標準的一套 iOS API,不出意外地,iOS 系統幫助我們處理了絕大部分工作,開發(fā)者幾乎只需要處理結果。UITextView和UITextField原生支持拖拽,UICollectionView和UITableView的拖拽有一系列專用的 delegate 來表明拖拽的發(fā)生和結束。而你也可以對任意UIView子類定義拖拽行為。和 mac 上的拖拽不同,iOS 的拖拽充分尊重了多點觸控的屏幕,所以可能你需要對一次多個的拖拽行為做些特別處理。

FileProvider 和 FileProviderUI- 提供一套類似 Files app 的界面,讓你可以獲取用戶設備上或者云端的文件。相信會成為以后文檔相關類 app 的標配。

不再支持 32 位 app - 雖然在 beta 1 中依然可以運行 32 位 app,但是 Apple 明確指出了將在后續(xù)的 iOS 11 beta 中取消支持。所以如果你想讓自己的程序運行在 iOS 11 的設備上,進行 64 位的重新編譯是必須步驟。

DeviceCheck- 每天要用廣告 ID 追蹤用戶的開發(fā)者現在有了更好地選擇 (當然前提是用來做正經事兒)。DeviceCheck 允許你通過你的服務器與 Apple 服務器通訊,并為單個設備設置兩個 bit 的數據。簡單說,你在設備上用 DeviceCheck API 生成一個 token,然后將這個 token 發(fā)給自己的服務器,再由自己的服務器與 Apple 的 API 進行通訊,來更新或者查詢該設備的值。這兩個 bit 的數據用來追蹤用戶比如是否已經領取獎勵這類信息。

PDFKit- 這是一個在 macOS 上已經長期存在的框架,但卻在 iOS 上姍姍來遲。你可以使用這個框架顯示和操作 pdf 文件。

IdentityLookup- 可以自己開發(fā)一個 app extension 來攔截系統 SMS 和 MMS 的信息。系統的信息 app 在接到未知的人的短信時,會詢問所有開啟的過濾擴展,如果擴展表示該消息應當被攔截,那么這則信息將不會傳遞給你。擴展有機會訪問到事先指定的 server 來進行判斷 (所以說你可以光明正大地獲取用戶短信內容了,不過當然考慮到隱私,這些訪問都是匿名加密的,Apple 也禁止這類擴展在 container 里進行寫入)。

Core NFC- 在 iPhone 7 和 iPhone 7 Plus 上提供基礎的近場通訊讀取功能??雌饋砗?promising,只要你有合適的 NFC 標簽,手機就可以進行讀取。但是考慮到無法后臺常駐,實用性就打了折扣。不過筆者不是很熟這塊,也許能有更合適的場景也未可知。

Auto Fill- 從 iCloud Keychain 中獲取密碼,然后自動填充的功能現在開放給第三方開發(fā)者了。UITextInputTraits 的textContentType中添加了username和password,對適合的 text view 或者 text field 的 content type 進行配置,就可以在要求輸入用戶名密碼時獲取鍵盤上方的自動填充,幫助用戶快速登錄。

小伙伴們閱讀后,請喜歡一下。文章更新可以提醒到你哦~~~~


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容