iOS 12
? 本來看片頭風格大改,以為會換界面,結(jié)果只是AR Kit 2??。個人以為不管AR、VR、還是MR,用在手機上還是有點雞肋的。大概至少要集成到Google Glasses 的程度,才會普及吧。當然,新的控制方式是少不了的。
? 大部分新功能被推遲了,本次更新最大的賣點是性能優(yōu)化。應用啟動速度和系統(tǒng)響應速度有明顯改進,包括iPhone 5s(個人覺得這比“嚇死人的鬼科技”要實在多了)??磥黼姵亻T在內(nèi)部的影響還是挺大的。
? Siri增加了一個類似語音宏的功能,可以把軟件的一些快捷功能設置成語音指令了。
? 通知分組功能。不用再滿屏聊天消息了。另外提供了API接口控制分組。
? macOS上倒是增加了一個黑色主題,系統(tǒng)級支持,希望iOS明年能跟上吧。另外一個有意思的地方,是官方在macOS 10.14上啟用了UIKit支持,目前還沒有開放,只是官方移植了幾個應用。預計明年會對開發(fā)者開放,到時候就可以把iOS應用直接移植到mac上了。
Xcode
? XCode10 變化還是挺多的,主要在功能改進和細節(jié)完善上。嗯,感謝電池門:
- Swift編譯速度大幅改進,純Swift項目,平均可以提升一倍。
- 新的Build系統(tǒng),嗯,又是新的。
- 改進了語法高亮和代碼提示的可靠性,這個說多了都是淚??。
- Playground新增步進運行和增量運行。以前一點改動就要重新運行?,F(xiàn)在可以運行代碼到指定位置然后暫停,或者寫一行運行一行。
- 新增了一個本地化相關的Asset,集中管理本地化翻譯內(nèi)容。
- Instruments可以自定義測量項目了。
Swift
? Swift 5 推遲半年,今年只有4.2了,變化不大。 ABI鎖定什么的無所謂啦,只希望到時候能有await/sync 。
- Enum增加了一個
CaseIterable自動協(xié)議,提供allCases類屬性,返回枚舉的所有值。 - IUO隱式可空重寫了,新的實現(xiàn)是普通的Optinal加上一個meta flag。對使用沒什么影響。
-
Hashable改進,改成了hash(into:)方法,由系統(tǒng)提供高質(zhì)量的hash算法。這個主要是出于安全性的改進。另外由于hash使用了應用啟動時隨機生成的種子,Dictionary和Set的遍歷順序可能每次都會不一樣。 - 原生隨機數(shù)API,告別用arc4random拼湊隨機數(shù)的日子。比如
Int.random(in: 1...10)及Double.random(in: 0..<100),或者丟個硬幣Bool.random()。同時也提供RandomNumberGenerator實現(xiàn)自己的隨機數(shù)算法。感謝社區(qū)。 - 容器增加了
shuffle()/shuffled()用以打亂元素順序,以及randomElement()獲取隨機元素。 - Debug模式改了默認編譯模式,編譯速度提升。
Framework / UIKit
- 大幅改進了AutoLayout的性能。特別是復雜約束和嵌套約束,性能影響從次方級變成了線性。
- 新的Accelerate庫,提供了大量矩陣運算(SIMD)的高級封裝。Swift優(yōu)化,為全部Apple硬件提供支持。這個主要是用來做圖像和3D加速的,要是開源跨平臺就好了。。。
- Create ML,用于快速訓練模型的工具,可以在Playground里玩,只需要幾行代碼,在臺式機上跑個幾分鐘,就能訓練出效果很好的模型,而且模型只有幾十KB到十幾MB。這其實是官方提供的半定制的預生成模型,有三種:喂圖片出標簽,喂文本出標簽,以及喂表格預測數(shù)據(jù)(官方例子是根據(jù)房子戶型面積等預估一個房價)。
- ARKit 2,這個是蘋果主推。然而Session里面的印式英語實在讓人頭疼??,不過最大的特色應該就是支持多人互動吧,從開發(fā)者的角度來說,就是多設備共享同一個AR場景。然后是更好的對象識別,更精確的定位,以及新的跨平臺格式USDZ。