譯《WWDC 2016 Initial Impressions》

原文鏈接钞脂,沒有逐字逐句翻譯,英文不是很好捕儒,翻譯的不好各位見諒冰啃。

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]问潭。

此處輸入圖片的描述
此處輸入圖片的描述
此處輸入圖片的描述
此處輸入圖片的描述

你也可以創(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)各位指出征堪!


  1. 這個(gè)好像只能在 Playground 里面使用,具體是在Editor -> 底部有3個(gè) insert 選項(xiàng) ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末关拒,一起剝皮案震驚了整個(gè)濱河市佃蚜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌着绊,老刑警劉巖谐算,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異归露,居然都是意外死亡洲脂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恐锦,“玉大人往果,你說我怎么就攤上這事∫磺Γ” “怎么了陕贮?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長潘飘。 經(jīng)常有香客問我肮之,道長,這世上最難降的妖魔是什么卜录? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任戈擒,我火速辦了婚禮,結(jié)果婚禮上艰毒,老公的妹妹穿的比我還像新娘筐高。我一直安慰自己,他們只是感情好丑瞧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布凯傲。 她就那樣靜靜地躺著,像睡著了一般嗦篱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幌缝,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天灸促,我揣著相機(jī)與錄音,去河邊找鬼涵卵。 笑死浴栽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轿偎。 我是一名探鬼主播典鸡,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼坏晦!你這毒婦竟也來了萝玷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤昆婿,失蹤者是張志新(化名)和其女友劉穎球碉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仓蛆,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睁冬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了看疙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豆拨。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡直奋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出施禾,到底是詐尸還是另有隱情脚线,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布拾积,位于F島的核電站殉挽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拓巧。R本人自食惡果不足惜斯碌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肛度。 院中可真熱鬧傻唾,春花似錦、人聲如沸承耿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽加袋。三九已至凛辣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間职烧,已是汗流浹背扁誓。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚀之,地道東北人蝗敢。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像足删,于是被迫代替她去往敵國和親寿谴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,414評(píng)論 0 12
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫失受、插件讶泰、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評(píng)論 4 62
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)拂到,斷路器峻厚,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子閱讀 8,546評(píng)論 0 35
  • 明天都是新的一天 晚安
    賈美慧閱讀 134評(píng)論 0 0