做者:Jesse Squires,原文連接,原文日期:2017-06-09
譯者:四娘;校對:walkingway;定稿:CMBhtml
這周的事情不少!今天是 WWDC 2017 的最後一天,Swift 4 隨着 Xcode 9,一塊兒放出了開發者公測版。Xcode 和 Swift 都有好幾個重大的改進和新的功能 — 這個版本真的很棒。整個社區的反響都很正面。恭喜 Apple 的 Xcode, Swift 和開發工具組!ios
想要贊助 Swift Weekly Brief 嗎?點擊此處瞭解更多git
第 14 集:Swift 更新內容,Part 1github
咱們討論了 Swift 4 裏的一些新功能和改進。編程
Apple 宣佈 Swift Playgrounds 已經支持對玩具機器人和無人機的編程了。他們正與多家公司合做,包括 Lego, Sphero 等一衆公司。 這件事情很棒很好玩,你能夠在這裏查看相關視頻。swift
Erica Sadun 的新書 Swift Style 這周正式開始銷售。api
objc.io 已經放出了他們的新書,Optimizing Collections。做者 Károly Lőrentey 在這本書裏介紹瞭如何使用 Swift 編寫高效的自定義集合類型。xcode
Xcode 9 beta 以及新的 SDK 全都放出來啦!app
Rober Widmann 合併了修改,使用了 Xcode 新的未定義行爲檢測器,來修復了一些未定義的行爲。
Roman Levenstein 作了一些小調整,讓標準庫的代碼體積減小了 1.5% !!!
Swift 服務端 API 工做組發佈了一個新的 repo,主要是關於跨平臺 HTTP API 的開發。
Ben Cohen 向 swift-4.0 分支
發起了一個合併的請求,用於提升 substring 比較的性能。Nate Cook 也發起了一個提升字典效率的合併請求,如今已經有好幾個 Swift 4 的合併請求 了,但願那些已經請求完成的合併請求能夠儘快經過。咱們應該能夠在接下來的 beta 版裏看到這些改進。
Slava Pestov 修復了幾個 Bug。?
SE-0180:字符串索引類型統一,Dave Abrahams,正在 review
如今
String
跟它的CharacterView
共用一個Index
類型,但UTF8View
,UTF16View
以及UnicodeScalarView
就不是了。這個提案從新定義了這幾個類型的Index
類型,讓它們跟String
保持一致。而且暴露一個公開的encodedOffset
屬性和構造器,用於序列化和反序列化String
和Substring
的索引值。[…]
這樣的結果就是不少 API 都沒法從本來的設計中獲益,一般來講,一個 view 的索引若是能夠在另外一個 view 有對應的索引值的話,這些索引值的轉換都應該在內部完成,而不是像如今這樣須要寫不少沒必要要的代碼。
[…]
全部 String 的 view 都會使用同一種 Index 類型 (
String.Index
),這樣索引值就能夠在內部進行轉換,而不用顯式地去完成。
Ted Kremenek 發佈了一個公告,關於即將開源的重構工具,以及其它在 WWDC 公佈的事情:
今天下午在 WWDC 上,咱們發佈了 Xcode 9 裏新的重構功能(支持 Swift,C,Objective-C 和 C++)。咱們同時宣佈將會把這個引擎的核心代碼開源出來,包括 Xcode 編譯時纔會索引的新功能。
大概會在接下來的幾個星期裏, 咱們將會分階段把這些代碼發佈出來:
關於 Swift 的重構功能,咱們還須要作一些收尾工做,例如文檔的編寫,咱們想在發佈以前完成。 Argyrios Kyrtzidis 和他的團隊負責處理這個計劃。
關於 C/C++/Objective-C 的重構功能,咱們想和 LLVM 社區一塊兒完成而後併入 LLVM。第一階段應該會在 swift-clang 的 repo 裏完成,可是他們想作的不僅是這些。Duncan Exon Smith 和他的團隊負責這個計劃。
咱們也會開源編譯器對於編譯時索引的支持,包括了 Clang 和 Swift。Argyrios 和他的團隊負責推動這件事。關於 Clang 的改變他們應該會在也會在 swift-clang 上完成,而後跟 LLVM 社區討論如何將他們併入 Clang 裏。
最後,咱們將會把 Swift 遷移工具剩餘的部分開源出來。Argyrios 和他的團隊負責推動這件事情,這些修改只會在 Swift 倉庫裏完成。
和以前同樣,咱們還須要完成 Swift 與 Apple 最新的 SDK 的橋接工做。但願能夠在下週以前完成,以後咱們就會暫時關閉倉庫的 commit 權限。相關的細節以後會經過郵件公佈。在此以前, Swift.org 的可下載的工具鏈均可以跟 Xcode 8.3.2 交互。在這以後, 咱們可下載的工具鏈就主要會面向 Xcode 9 beta。這件事情很必要,由於以後最上層的 API 會依賴於最新的 SDK。
Rick Ballard 發了一個關於 Swift 4 包管理器的公告:
Hello, Swift Pacakage Manager 的社區。
我想要彙報一下 Swift 4 裏 SwiftPM 的開發進度。咱們已經在這個春季實現了一系列的 evolution 提案:
除了這些提案,咱們還實現了一些重大的改進:
在 macOS 上,包的交互和包的編譯如今都沙盒化了,可以減輕惡意軟件帶來的損耗。
許多錯誤信息和診斷都增強了,包括依賴管理時出現的衝突。
Xcode 工程文件生成器也改進了,如今容許在從新生成工程文件時讓 scheme 引用包裏的 target。
而且作了大量的小改進和 bug 修復。
Xcode 9 在新的編譯系統裏爲 Swift 包管理提供了原生的支持。這個編譯系統提供了靈活性和拓展性,讓 Xcode 能夠支持新的編譯模型,例如 Swift 包管理。此外, SwiftPM 爲 SwiftPM 的庫作了大量的工做,讓 Swift 包管理的工具能夠輕鬆嵌入諸如 Xcode 的軟件裏。
那 SwiftPM 4 還有什麼?首先,咱們將會實現 SE-0179,支持
swift package run
命令。另外,咱們還但願開始放下如今的版本,而後開始計劃後面,雖然咱們仍是在接收建議和 evolution 的提案[…]
其它功能咱們應該會考慮在下個版本進行支持,例如包資源(例如圖片),許可證和元數據支持,用於處理源代碼控制分支的顯式支持,以及一個泛用的機制去處理編譯工具不支持包管理的狀況。最後, 咱們確實考慮了以後創建一箇中心化的包索引機制,咱們也許會在接下來一年爲這件事情作一些基礎工做。
最後 -- self storage
本文由 SwiftGG 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 http://swift.gg。