过去的一年里,Swift 团队与 swift.org 的开发者共同努力将 Swift 移植到 Windows,目前 Swift 已实现对 Windows 的初始支持,开发者现在可下载适用于 Windows 的 Swift 工具链镜像,这些镜像包含了在 Windows 上构建和运行 Swift 代码所需的开发组件。基于此,开发者终于实现了在 Windows 上进行 Swift 开发的目标。
Swift Core 团队的成员 Saleem Abdulrasool 指出,将 Swift 移植到 Windows 并非简单地移植编译器而已,还要确保完整的 Swift 生态都能在 Windows 平台使用。除了编译器之外,还要移植标准函数库以及核心函数库(Foundation, XCTest 和调度等),让开发者能够简单方便地编写功能强大的应用程序,而无需担心底层系统的细节。有了这些函数库,再加上 Swift 与 C 灵活的互操作性,开发者就能够在 Windows 中完全使用 Swift 开发应用程序,同时还能结合使用 Windows 平台现有的函数库。
Saleem 曾在 LLVM 开发者大会上分享过移植过程的技术细节,详情点此了解。
示例
Swift 团队展示了一个完全使用 Swift 编写的计算器 demo:
同时表示其代码可在 Swift 编写的应用程序代码和系统库之间无缝切换。此计算器 demo 使用以下项目构建:
-
Windows 上的 Swift 工具链
-
Visual Studio 2019 以及 CMake、Ninja 和 Windows SDK
虽然此 demo 使用 CMake 进行构建,但 Windows 上的 Swift Package Manager 支持即将到来。开发者很快就可以使用swift build
而不需要 CMake 或 Ninja 构建应用程序。此外,开发者还可以在 Windows 中使用lldb
调试已构建的应用程序:
跨平台应用
像 Readdle 这样的早期采用者正在试验用 Swift 开发跨平台应用程序,如此便能在不同平台使用同一份代码,还可以轻松地将许多现有的 Swift 库引入 Windows。Readdle Spark 团队的产品工程主管 Alexander Smarus 分享了使用 Swift 开发跨平台应用程序的感受,他认为尽管 Swift 的 Windows 支持目前尚不具备某些功能,但可以完全满足自己的需求。Alexander 建议道,如果正在考虑将现有的应用程序代码库扩展到 macOS/iOS 以外的平台,那么绝对可以立即或至少很快地使用 Swift 实现此目标。如果只是维护一个小的 Swift 库,现在已经可以轻松添加 Windows 支持。
Swift 团队表示,在 Windows 上支持 Swift 只是第一步,还有生态的其他部分,诸如 lldb 和 Swift Package Manager 等 工具 需要移植,这样才能完整支持跨平台开发。
猜你喜欢: