Categories
程式開發

Swift正式登錄Windows:蘋果跨平台語言值幾錢?


近日,Swift 官方博客宣布將Swift 正式引入Windows,並附上了鏡像包的下載鏈接。 Swift 是蘋果新推出的編程語言,專門針對OS X 和iOS 的應用開發。 由於之前僅支持MacOS 和Ubuntu,所以使用Windows 電腦的開發者如果想開發iOS 的應用就只能購買一台Mac 或安裝Hackintosh(俗稱黑蘋果)。 現在,在Windows 上使用Swift 開發終於成為了可能。

Swift 團隊在官方博客中表示,過去一年多的時間裡,他們一直在與swift.org 上的開發人員一起努力將Swift 移植到Windows,現在,開發者已經可以在Windows 中使用Swift 構建自己的項目了。

此次將Swift 移植到Windows 並不是簡單地一直編譯器,而是確保完整的Swift 生態系統在Windows 中可用,包括編譯器,標準庫和核心庫等等。 Swift Core 團隊的工程師Saleem Abdulrasool 曾在2019 年的LLVM 開發者大會上分享過移植過程中的技術細節,感興趣的朋友可以移步 的YouTube 上進行觀看。

Swift 團隊在官方博客中展示了一款完全使用Swift 編寫的計算器:

Swift正式登錄Windows:蘋果跨平台語言值幾錢? 1

圖片來源於Swift 官方博客

該項目使用以下項目構建:

  • Windows 上的Swift 工具鏈
  • Visual Studio 2019 以及CMake,Ninja 和Windows SDK

儘管該應用程序是使用CMake 構建的,但Windows 上的Swift Package Manager 支持很快就會實現,屆時就可以使用swift-build 構建應用程序,而不再需要CMake 或Ninja。 除此之外,開發者可以在Windows 中使用LLDB 調試已構建的應用程序:

Swift正式登錄Windows:蘋果跨平台語言值幾錢? 2

博客中還表示,效率工具的廠商Readdle 正在嘗試使用Swift 編寫跨平台應用程序,可以將許多現有的Swift 庫直接移植到Windows 中以支持其應用程序。 Saleem Abdulrasool 說,他曾與Readdle 公司的一位工程主管Alexander 合作研究如何使用Swift 編寫跨平台應用程序,Alexander 對他表示:

一年多以前,我們就開始在Windows 上進行Swift 的試驗。 當時我們已經發布了Android 版Spark,所以我們對使用Spark 與iOS/macOS 共享核心代碼,並擴展到另一個平台很感興趣。
儘管尚未具備某些功能,但Windows 上的Swift 可以完全滿足我們的需求。 Spark 的所有業務邏輯都位於獨立的核心模塊中,我們稱它為Core,這也使得我們能夠在目標平台上使用任何UI 框架:macOS 的AppKit、iOS 的UIKit 以及Android 的UIToolkit。 因此,我們必須要將Spark Core 移植到Windows 上。
另一個挑戰是如何實現用戶界面,經過多次討論,我們最終決定採用Electron 作為Windows 版Spark 的前端部分。 這意味著我們要能夠在Windows 上構建Spark Core,同時Spark Core 還需要是Node.js 的可加載插件。
我想說的是,如果您正在考慮將現有的應用程序代碼庫擴展到macOS / iOS 以外的平台,那麼您絕對可以立即使用Swift 做到這一點。 如果您要維護一個小的Swift庫,則可以輕鬆添加Windows 支持!

開發者可以參照官方教程在Windows 中構建Swift 項目。

從Swift 發布起,就有開發者希望可以在Windows 中構建iOS/macOS 應用程序,但多年來蘋果一直沒有行動,反觀微軟早已將.NET 移植到iOS 和macOS,.NET 也幾乎在所有平台上都具備完整的API 支持。 而現在,蘋果終於將Swift 移植到Windows 上。 看起來,雙方都想在這場“戰爭”中獲勝,不過微軟似乎處於優勢,而蘋果才剛剛邁出一小步。