作者 | 李俊辰
近日,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 编写的计算器:
该项目使用以下项目构建:
尽管该应用程序是使用 CMake 构建的,但 Windows 上的 Swift Package Manager 支持很快就会实现,届时就可以使用 swift-build 构建应用程序,而不再需要 CMake 或 Ninja。除此之外,开发者可以在 Windows 中使用 LLDB 调试已构建的应用程序:
博客中还表示,效率工具的厂商 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 上。看起来,双方都想在这场“战争”中获胜,不过微软似乎处于优势,而苹果才刚刚迈出一小步。