Swift 開源那點事
最近各大網站上最喜大普奔的新聞莫過于 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 今后的方向。
來自:http://swiftcafe.io/2015/12/07/swift-opensource/