Swift 開源那點事

swiftcafe.io發表於2015-12-07

  最近各大網站上最喜大普奔的新聞莫過於 Swift 正式開源這條了。這無疑是一個里程碑式的前進,蘋果也向開源社群更加進了一步。那麼 Swift 開源後有什麼具體的改變呢,我們一一道來。

 成立開源社群 swift.org

  Swift 將開源社群功能都放在了 swift.org 這個網站上,提供了諸如 bug 報告系統,郵件列表,社群文件,以及社群貢獻指引這些開源專案應具備的特性。

  開啟 swift.org 可以看到全新的開源社群主頁:

 Swift 現在支援 Linux 了

  開源的 Swift,可以移植到任何一個平臺,從此它不再是僅僅侷限於 iOS 和 Mac 平臺的開發語言了。swift.org 網站上列出了支援 Linux 平臺的 Swift 開發包:

  除了下載地址,網站上還提供了在各個平臺上的環境配置指引。在 Mac 平臺上,我們不僅可以使用 XCode 自帶的 Swift 版本,也可以安裝最新的開發版 Swift(不過 swift.org 社群網站上還說明了一點,如果是提交到 App Store 的應用,則必須使用 XCode 預設的 Swift 版本進行編譯,這點需要大家注意)。

 Github 上面的開放原始碼

  Swift 將所有開放的原始碼託管到 Github 上面。它的 Github 主頁 https://github.com/apple/swift

  進入主頁,Swift 的所有原始碼都可以供我們使用了。並且它的社群極其活躍,下面是我寫這篇文章時候對 Swift 在 Github 上專案的提交記錄的截圖,可以看到,幾個小時之內就有好多有效提交:

 Swift 包管理工具

  隨著 Swift 的開源,社群為 Swift 推出了全新的包管理工具。Swift 包管理的規則是通過建立一個叫做 Package.swift 的檔案實現的。這個檔案中定義了當前專案的依賴包等等。

  Swift 開源社群通過一個示例專案演示了包管理的使用方法, 我們在命令列輸入如下命令,即可使用這個示例專案,並通過包管理處理依賴包的獲取:

git clone https://github.com/apple/example-package-dealer.git
cd example-package-dealer
swift build
.build/debug/Dealer

  首先,我們通過 git clone 將示例專案複製到本地,然後進入專案所在目錄,使用 swift build 命令構建專案,這時就會根據該專案的 Package.swift 檔案,獲取相應的依賴包。

  我們再來看一下這個專案中的 Package.swift 檔案:

import PackageDescription

let package = Package(
    name: "Dealer",
    dependencies: [
        .Package(url: "https://github.com/apple/example-package-deckofplayingcards.git", majorVersion: 1),
    ]
)

  我們看到,這個示例專案還依賴於另外一個專案 https://github.com/apple/example-package-deckofplayingcards.git。 當我們使用 swift build 進行構建的時候,包管理會幫助我們把相關的依賴專案也拉取下來,並進行構建。

  我們之前也介紹過 iOS 平臺開發時用到的包管理工具,如果你對包管理的瞭解還不是很多,也可以參看這兩篇文章:

  Carthage 包管理工具,另一種敏捷輕快的 iOS & MAC 開發體驗   Swift Tips - 當 Swift 遇上 CocoaPods

  因為開源的 Swift 是跨平臺的,Swift 包管理的應用範圍在今後會更加廣泛。

 Swift 核心庫

  Swift 在今後會提供一套核心庫,這個庫不依賴於任何具體的平臺,針對程式設計中得基礎操作,比如通用的字元處理,網路請求處理,多執行緒操作這些,都會通過核心庫的方式來實現。

  社群網站上說的是,重新構建這樣一個庫是一個十分龐大的工程,所以決定基於現有的庫的基礎上進行構建,比如 在 iOS 的 Foundation 庫的基礎上構建核心庫。但這個核心庫雖然和蘋果平臺的介面很多類似,但他底層是依賴於 Objective-C 執行時的,所以它是一套獨立的庫。

  目前,這樣核心庫的開發工作還在規劃當中,估計要的 Swift 3.x 版本才能釋出出來。

 Mailing List

  最後嘛,Swift 社群提供了郵件列表訂閱,開源社群的各種交流溝通,都可以在這個郵件列表中進行,只需要將你的郵箱地址提交到表單中,即可開始訂閱郵件列表內容了。

 結語

  好啦,Swift 開源相關的主要內容跟大家分享的也差不多了。總的來說呢,對於 iOS 或者 Mac 平臺上 APP 的開發,這些變化的影響可能不那麼明顯。我們開發 APP 的時候還是使用 XCode,還是提交到 AppStore,並且 Swift 版本也被限制在 XCode 自帶的範圍內。

  但是從更遠的角度來看,開源對 Swift 來說是一件非常好的事情。今後的 Swift 會藉助社群的力量更加壯大。也許在不久的將來 Swift 不僅能在 iOS 和 Mac 平臺上大展身手,可能也會成為一個服務端開發的利器。

  就好像 Swift 原來只是蘋果公司在開發維護。而現在,全世界的開發者和團隊都可以為 Swift 的發展做出貢獻,甚至去決定 Swift 今後的方向。

相關文章