写点什么

Swift 正式登录 Windows:苹果跨平台语言值几钱?

2020 年 9 月 24 日

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 上的 Swift 工具链

  • Visual Studio 2019 以及 CMake,Ninja 和 Windows SDK


尽管该应用程序是使用 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 上。看起来,双方都想在这场“战争”中获胜,不过微软似乎处于优势,而苹果才刚刚迈出一小步。


2020 年 9 月 24 日 12:372985

评论

发布
暂无评论
发现更多内容

MySQL是如何实现可重复读的?

超超不会飞

MySQL

第二周学习框架设计总结

三板斧

极客大学架构师训练营

从四个问题透析Linux下C++编译&链接

华为云开发者社区

c++ Linux 编程

架构师训练营 Week2 作业 1

lucian

极客大学架构师训练营

【架构师训练营第1期 02 周】 作业

Bear

极客大学架构师训练营

第二周作业

熊桂平

极客大学架构师训练营

苹果A14 Bionic人工智能算力翻倍,AIOps产品落地加速引领AI生态建设逐步完善

博睿数据

人工智能 运维 APM 运维自动化 AIOPS

#第二周作业

vitaminc

深入理解JVM垃圾回收算法 - 标记整理算法

WANDEFOUR

标记整理 双指针算法 Lisp2 引线整理算法

电商小游戏火爆,开发者如何快速接入?看这里

白开水

egret 淘宝电商 淘宝小程序 淘宝小游戏 电商小游戏

2020中国科技峰会系列活动青年科学家沙龙——AI学术生态与产业创新圆满召开

极客播报

人工智能 2020 中国科技峰会 青年科学家沙龙 中国科协

第二周课后练习

薛凯

华为:与全球180万云与计算开发者共成长,共创行业新价值

华为云开发者社区

架构师训练营 1 期 - 第二周总结(vaik)

行之

架构师训练营 - 第 2 周课后作业(1 期)

Pudding

金融科技推进数字金融“新基建”,着力建设三种类型数字金融基础设施

CECBC区块链专委会

金融 科技 科技革命

国内首个区块链村正式落地:数字经济的裂变之路

CECBC区块链专委会

区块链 数字经济

第 2 周 作业

Pyr0man1ac

架构师训练营—第二周作业

Geek_shu1988

一个草根的日常杂碎(9月26日)

刘新吾

社会百态 生活随想 时评杂谈

为什么区块链巨头企业一定会诞生在中国的原因分析

CECBC区块链专委会

区块链 科技

架构师训练营第二周学习总结

薛凯

架构师训练营—第二周学习总结

Geek_shu1988

架构师训练营作业一:食堂就餐卡系统设计

zjzj2017

UML

请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。

orchid9

[架构师训练营第1期]第二周学习总结

猫切切切切切

极客大学架构师训练营

架构师训练营第二周心得

CmHuang

华为侯金龙:打造行业智能体,共建全场景智慧

华为云开发者社区

华为云 经济 智能

【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频

华为云开发者社区

视频 API

架构师训练营 Week2 作业 2【学习总结】

lucian

极客大学架构师训练营

请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

orchid9

全民K歌技术公开课(后端篇)

全民K歌技术公开课(后端篇)

Swift正式登录Windows:苹果跨平台语言值几钱?-InfoQ