原文鏈接钞脂,沒有逐字逐句翻譯,英文不是很好捕儒,翻譯的不好各位見諒冰啃。
Swift 3
Swift3將在2016年底發(fā)布,這對(duì)開發(fā)者來說是影響最大的刘莹,因?yàn)樗麑⒁笪覀儗?duì)代碼做一些重大改變阎毅。
然而,如果你一直看Swift evolution project,這真的不應(yīng)該是個(gè)驚喜点弯。因?yàn)?Swift 是開源的扇调,蘋果和社區(qū)一直努力工作在過去的6個(gè)月里,這一切都被公開討論抢肛。今天沒有什么新的宣布狼钮,除了一件事情:Swift3 已經(jīng)和 Swift2.3 在 Xcode8里打包了。
這個(gè)解決了我去年的最大抱怨之一捡絮,我不能使用 Xcode7 除非我將代碼全部遷移到 Swift2 了熬芜。但是因?yàn)?Xcode8 已經(jīng)將 Swift3 和 Swift2.3(兼容2.2) 打包在一起了,所以現(xiàn)在可以在 Xcode8 里面使用 Swift2.2 的項(xiàng)目福稳,直到準(zhǔn)備好升級(jí)到 Swift3涎拉。
如果你沒有跟隨 Swift3 的討論,我們會(huì)在明天發(fā)布一個(gè)完整的文章關(guān)于 Swift3 的新內(nèi)容灵寺。此刻曼库,我尤其想提及一件將影響我們所有人的事情。
Swiftier Objective-C APIs
Swift3 的最大改變之一是將很多 API 變得更加 Swifty略板。
這很容易理解通過幾個(gè)例子:
// Swift 2.2
let content = listItemView.text.stringByTrimmingCharactersInSet(
NSCharacterSet.whitespaceAndNewlineCharacterSet())
// Swift 3
let content = listItemView.text.trimming(.whitespaceAndNewlines)
現(xiàn)在 Swift3 版本使用枚舉更加簡(jiǎn)潔毁枯。
這里還有個(gè)關(guān)于 Core Graphics 的例子:
// Swift 2.2
let context = UIGraphicsGetCurrentContext()
CGContextMoveToPoint(context, 5, 0)
CGContextAddLineToPoint(context, 10, 10)
CGContextAddLineToPoint(context, 0, 10)
CGContextClosePath(context)
// Swift 3
let context = UIGraphicsGetCurrentContext()!
context.moveTo(x: 5, y: 0)
context.addLineTo(x: 10, y: 10)
context.addLineTo(x: 0, y: 10)
context.closePath()
最后,這里還有一個(gè)使用 GCD 通過很簡(jiǎn)單API 的例子
// Swift 2.2
let queue = dispatch_queue_create("myqueue", nil)
dispatch_async(queue) {
// do stuff
}
// Swift 3
let queue = DispatchQueue(label: "myqueue")
queue.async {
// do stuff
}
正如你所看到的叮称,目的是減少冗長的命名;長遠(yuǎn)來看种玛,這會(huì)使語言更加簡(jiǎn)潔并且更容易讓新的開發(fā)者入門藐鹤。而且,Xcode8 也提供了遷移到 Swift3 的工具赂韵,這也讓事情變得更簡(jiǎn)單娱节。
我看到這些改變很激動(dòng)因?yàn)樾碌?APIs 看起來更加直觀。
Note: 如果想學(xué)習(xí)更多祭示,請(qǐng)看蘋果的API Design Guidelines和 Better Translation of Objective-C APIs into Swift
Swift Playgrounds on the iPad
這里作者也沒說什么肄满,大體意思就是很適合教學(xué)用。
Xcode 8
目前為止這里有幾個(gè)亮點(diǎn)對(duì)于我來說质涛。
Memory Debugger
Xcode8 有個(gè)很酷的特性是新的 Memory Debugger稠歉。
這是個(gè)內(nèi)置的工具可以讓你查看你的運(yùn)行應(yīng)用的整個(gè)內(nèi)存對(duì)象圖表,所以你可以馬上隔離泄露和循環(huán)引用汇陆。一旦你發(fā)現(xiàn)他們出現(xiàn)在圖標(biāo)中你可以選擇他們怒炸,查看該幀的棧和直接跳轉(zhuǎn)到有問題的代碼。
新的 Memory Debugger 可以自動(dòng)發(fā)現(xiàn)內(nèi)存泄露并且?guī)椭泷R上診斷問題毡代。Demo 是讓人印象深刻的阅羹,再見,循環(huán)引用教寂!
Interface Builder Improvements
你有沒有嘗試在 Interface Builder 里進(jìn)行縮小捏鱼,然后試著拖動(dòng)按鈕,你意識(shí)到不能這樣做除非 Interface Builder 在100%的比例下。
這種日子不多了孝宗! Xcode8 的 Interface Builder 現(xiàn)在允許你修改任意尺寸穷躁。
還提供了一個(gè)新的配置允許你在不同的設(shè)備和 size classes(iPhone, iPad等等)下預(yù)覽控制器大小,還會(huì)在編譯和運(yùn)行之前識(shí)別出 ambiguous 的布局約束因妇。
Source Code Editing
Xcode8 提高了編輯器的自動(dòng)預(yù)覽圖片和顏色的功能[1]问潭。
![此處輸入圖片的描述](http://i2.buimg.com/7f852ed9adbb4a4a.png)
![此處輸入圖片的描述](http://i2.buimg.com/a4d12c5522b7ceb8.png)
你也可以創(chuàng)建你自己的源碼編輯器擴(kuò)展來自定義編程體驗(yàn)。這是一個(gè)新的 Xcode 模板婚被,你完成以后可以將你的擴(kuò)展放到 Mac App Store 或者其他的渠道狡忙。
Performance Improvements
Xcode8 在幾個(gè)方面變得很快,舉個(gè)例子址芯,Indexing Tests 比之前提高了50倍灾茁。
速度的提升從根本上提高了開發(fā)者的效率,所以這是個(gè)大新聞谷炸。
iOS 10 SDK
iOS 10 SKD 添加了一些新的 kits北专,擴(kuò)展點(diǎn)并增強(qiáng)了現(xiàn)有的框架。
SiriKit
現(xiàn)在你可以在 iOS 10里使用 SiriKit旬陡。
SiriKit 提供了6個(gè)在應(yīng)用中可用的 Siri 服務(wù):
- 音頻或者視頻呼叫
- Messaging
- 轉(zhuǎn)賬或者收款
- 搜索圖片
- 預(yù)訂行程
- 管理鍛煉
如果你的應(yīng)用有上面幾點(diǎn)的功能拓颓,你應(yīng)該在你應(yīng)用中提供一個(gè) Intents Extension。Siri 處理所有語言間的細(xì)微差別和語義分析描孟,并將用戶的請(qǐng)求轉(zhuǎn)換成可操作的事情通過 Intents Extension驶睦。你可以選擇提供一個(gè)自定義 UI 來使用 Siri 或者 Maps砰左。
有一些細(xì)節(jié)在你的 Extension 中必須提供為了讓系統(tǒng)確保你的應(yīng)用可以處理用戶的請(qǐng)求。
Note: 想學(xué)習(xí)更多场航,請(qǐng)看 SiriKit Programming Guide.
iMessage Apps
動(dòng)圖和 fireworks缠导,我來了!
對(duì)于新的 Messages framework 你可以創(chuàng)建 extensions 來讓用戶發(fā)送文字溉痢,表情僻造,媒體,文件和交互式信息孩饼。
Sticker Packs
最簡(jiǎn)單的擴(kuò)展類型是 Sticker Packs嫡意。你可以很簡(jiǎn)單的創(chuàng)建和允許用戶可以發(fā)送給他們朋友的一套表情。如果你熟悉 Facebook Messenger 那么看起來會(huì)差不多捣辆,除了表情 可以被“peeled”并被放置在其他信息頂部。
Interactive Experiences
APIs 允許你創(chuàng)建完整的體驗(yàn)在 Messages 應(yīng)用里此迅,甚至提供了一個(gè)自定義用戶界面汽畴。這比第三方鍵盤有更好的體驗(yàn)。
Note: 想學(xué)習(xí)更多耸序,請(qǐng)看 Messages Framework Reference.
User Notifications
新的 UserNotificationsUI framework 允許我們創(chuàng)建豐富的通知忍些,這在之前是不可能的。
例如坎怪,現(xiàn)在通知可以內(nèi)嵌媒體就像股票消息應(yīng)用罢坝。這似乎涉及到了一個(gè)你的應(yīng)用和 APNs 之間的一個(gè) intermediate 服務(wù)。你甚至可以提供你自己的端對(duì)端的加密功能通過 intermediate 服務(wù)搅窿。
我還沒有時(shí)間去研究這部分嘁酿,你可以去查看 UserNotifications framework reference.
Widget Overhaul
Widget 在你主屏幕的左邊,他也可以顯示在應(yīng)用圖標(biāo)上通過3D Touch男应。
watchOS 3
在手表上啟動(dòng)應(yīng)用是很慢的闹司。
Speed Enhancements
在 Speed Enhancements 之前介紹了3件事情,Snapshots沐飘,Dock,Background Tasks游桩。這三者結(jié)合起來允許你的應(yīng)用保持更新并且用戶能夠得到一點(diǎn)提示。
Snapshots 和 Background Tasks 和 iOS 里的很像:
- 系統(tǒng)會(huì)將 UI 截圖當(dāng)你啟動(dòng)應(yīng)用和切換應(yīng)用耐朴。
- 當(dāng)你應(yīng)用是啟動(dòng)時(shí)借卧,在一定時(shí)間內(nèi)會(huì)在后臺(tái)更新信息。
SceneKit and SpriteKit Availability
你現(xiàn)在可以在手表應(yīng)用中使用 SceneKit 和 SpriteKit筛峭。一開始我認(rèn)為這只用于游戲铐刘,但是蘋果告訴我們還有個(gè)用途:在應(yīng)用中創(chuàng)建自定義動(dòng)畫。
目前在手表上的 UIKit 限制開發(fā)者創(chuàng)建自定義動(dòng)畫蜒滩。但是在 WatchOS 3中滨达,你可以添加實(shí)時(shí)3D渲染內(nèi)容在應(yīng)用中通過使用.scn文件打包你的資源奶稠,或者你也可以選擇創(chuàng)建2D 交互式動(dòng)畫通過打包.sks文件。
Complication Improvements
當(dāng)用戶在 watchOS 3中將你的應(yīng)用添加到 watch face 上捡遍,你的應(yīng)用可以保存隨便被啟動(dòng)的狀態(tài)并且每天可以進(jìn)行50次推送更新锌订。
tvOS 10
tvOS SDK 的更新看起來很輕量。
VideoSubscriberAccount 框架可以提供身份驗(yàn)證和授權(quán)画株。
現(xiàn)在有很多現(xiàn)在框架提供給開發(fā)者:
- ExternalAccessory
- HomeKit
- MultipeerConnectivity
- Photos
- ReplayKit
- UserNotifications
macOS
15年后辆飘,OS X 改名為 macOS。我不是一名 macOS 開發(fā)者谓传,但有個(gè)新特性我很感興趣蜈项。
Apple Pay for the Web
macOS Sierra 可以讓用戶在 web 上用 APPle Pay!
這個(gè)特性可以讓顧客不需要擔(dān)心信用卡信息在網(wǎng)站上被記錄。具體可以看 Apple Pay JavaScript framework.
Apple File System (APFS)
蘋果宣布了全新的文件系統(tǒng)续挟!
APFS 被設(shè)計(jì)在 Flash/SSD 上并且建立本地加密紧卒。
下面這段受限于自己水平,翻譯的不好诗祸,大家可以讀原文
包括崩潰保護(hù)跑芳,空間共享,克隆和快照直颅。崩潰保存使用了一個(gè) copy-on-write metadata 方案來確保更新文件系統(tǒng)是安全的并且減少日志的需要通過 HFS+博个。控件共享允許在同一個(gè)磁盤下的多個(gè)文件系統(tǒng)共享空閑的空間而不需要重新分區(qū)功偿。
克隆提供了一個(gè)在磁盤空間上無成本創(chuàng)建復(fù)制文件和目錄盆佣。快照允許系統(tǒng)創(chuàng)建一個(gè)只讀的數(shù)據(jù)實(shí)例并讓我們恢復(fù)到特定時(shí)刻械荷。
這篇文章同時(shí)發(fā)布在我的 Git 上,這個(gè)項(xiàng)目我會(huì)更新一些平時(shí)學(xué)習(xí)的資源和筆記共耍,有興趣的朋友可以 Watch 一下,本篇文章如有哪里翻譯的不對(duì)养葵,請(qǐng)各位指出征堪!
-
這個(gè)好像只能在 Playground 里面使用,具體是在Editor -> 底部有3個(gè) insert 選項(xiàng) ?