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 今後的方向。
相關文章
- Android開發——說說Adapter那點事AndroidAPT
- 佈局那點事
- 前端加密那點事前端加密
- 作用域那點事
- 遞迴那點事遞迴
- Android Activity那點事Android
- Java synchronized那點事Javasynchronized
- Spring Boot與多資料來源那點事兒~Spring Boot
- 【GoLang 那點事】gRPC 攔截器那點事,希望幫到你(六)GolangRPC
- vue元件的那點事Vue元件
- 跨域的那點事跨域
- 面試那點事兒面試
- Webpack4那點事Web
- PostgreSQL的那點事兒SQL
- QQ申訴那點事
- MySQL的timeout那點事MySql
- Java 物件頭那點事Java物件
- 聊聊 Kafka Consumer 那點事Kafka
- Flutter FocusNode 焦點那點事-(一)Flutter
- 檔案下載那點事
- js關於物件那點事JS物件
- SpringCloud微服務的那點事SpringGCCloud微服務
- PHP定時器那點事PHP定時器
- MySQL 慢查詢那點事MySql
- Toast與Snackbar的那點事AST
- 求職那點破事兒求職
- Swift開源庫MoyaSwift
- 關於http斷點續傳那點事HTTP斷點
- 資料埋點測試的那點事
- Spring Cloud 微服務的那點事SpringCloud微服務
- [資料庫]--Transaction那點事兒資料庫
- 關於 Flex 的那點事兒Flex
- 寫技術部落格那點事
- 微信、支付寶支付那點事
- 【幣乎】關於 KEY 那點事
- Redis主從複製那點事Redis
- 關於蘋果企業開發者賬號那點事蘋果
- java多執行緒那點事兒Java執行緒
- 多執行緒那點事—Parallel.for執行緒Parallel