作為 ios 開發者,和往年一樣,我整理了一下在可能需要關注的地方。
新增框架
新加入 sdk 的大的框架有兩個,分別是負責簡化和整合機器學習的 core ml 和用來建立增強現實 (ar) 應用的 arkit。
core ml
自從 alphago 出現以來,深度學習毫無疑問成了行業熱點。而 google 也在去年就轉變 mobile-first 到 ai-first 的戰略。可以說一線的網際網路企業幾乎都在押寶 ai,目前看來機器學習,特別是深度學習是最有希望的一條道路。
如果你不是很熟悉機器學習的話,我想我可以在這裡「僭越」地做一些簡介。你可以先把機器學習的模型看作乙個黑盒函式,你給定一些輸入 (可能是一段文字,或者一張),這個函式會給出特定的輸出 (比如這段文字中的人名地名,或者中出現的商店名牌等)。一開始這個模型可能非常粗糙,完全不能給出正確的結果,但是你可以使用大量已有的資料和正確的結果,來對模型進行訓練,甚至改進。在所使用的模型足夠優化,以及訓練量足夠大的情況下,這個黑盒模型將不僅對訓練資料有較高的準確率,也往往能對未知的實際輸入給出正確的返回。這樣的模型就是乙個訓練好的可以實際使用的模型。
arkit
xcode
編輯器和編譯器
速度就是生命,而開發者的生命都浪費在了等待編譯上。swift 自問世以來就備受好評,但是緩慢的編譯速度,時有時無的語法提示,無法進行重構等工具鏈上的欠缺成為了最重要的黑點。xcode 9 中編輯器進行了重寫,支援了對 swift **的重構 (雖然還很基礎),將 vcs 提到了更重要的位置,並新增了 github 整合,可以進行同區域網的無線部署和除錯。
新的編譯系統是使用 swift 重寫的,在進行了一些對比以後,編譯速度確實有了不小的提公升。雖然不知道是不是由於換成了 swift 4,不過正在做的公司專案的總編譯時間從原來的三分半縮短到了兩分鐘半左右,可以說相當明顯了。
xcode 9 中的索引系統也使用了新的引擎,據稱在大型專案中搜尋最高可以達到 50 倍的速度。不過可能由於筆者所參加的專案不夠大,這一點體會不太明顯。專案裡的 swift **依然面臨失色的情況。這可能是索引系統和編譯系統沒有能很好協同造成的,畢竟還是 beta 版本的軟體,也許應該多給 xcode 團隊一些時間 (雖然可能到最後也就這樣了)。
由於 swift 4 編譯器也提供了 swift 3 的相容 (在 build setting 中設定 swift 版本即可),所以如果沒有什麼意外的話,我可能會在之後的日常開發中使用 xcode 9 beta,然後在打包和發布時再切回 xcode 8 了。畢竟每次完整編譯節省一分半鐘的時間,還是一件很誘人的事情。
像是使用 ib 來構建 ui 的時候,乙個很頭疼的事情就是設計師表示我們要不換個主題色。你很可能需要到處尋找這個顏色進行替換。但是現在你只需要在 xcassets 裡改一下,就能反應到 ib 中的所有地方了。
其他值得注意的變更
剩下的都是些小變化了,簡單瀏覽了下,把我覺得值得一提的列舉出來,並附上參考的鏈結。
開發者所需要知道的 iOS 11 SDK 新特性
作為 ios 開發者,和往年一樣,我整理了一下在可能需要關注的地方。新增框架 新加入 sdk 的大的框架有兩個,分別是負責簡化和整合機器學習的 core ml 和用來建立增強現實 ar 應用的 arkit。core ml 自從 alphago 出現以來,深度學習毫無疑問成了行業熱點。而 google...
開發者所需要知道的 iOS 11 SDK 新特性
作為 ios 開發者,和往年一樣,我整理了一下在可能需要關注的地方。新增框架 新加入 sdk 的大的框架有兩個,分別是負責簡化和整合機器學習的 core ml 和用來建立增強現實 ar 應用的 arkit。core ml 自從 alphago 出現以來,深度學習毫無疑問成了行業熱點。而 google...
開發者所需要知道的 iOS 11 SDK 新特性
新加入 sdk 的大的框架有兩個,分別是負責簡化和整合機器學習的 core ml 和用來建立增強現實 ar 應用的 arkit。自從 alphago 出現以來,深度學習毫無疑問成了行業熱點。而 google 也在去年就轉變 mobile first 到 ai first 的戰略。可以說一線的網際網路...