QCon全球软件开发大会8折优惠倒计时最后3天,购票立减¥1760!了解详情 >>> 了解详情
写点什么

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:373285

评论

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

港美股交易系统开发框架构造简述篇

软件开发大鱼V15724971504

国际配售 港股交易系统开发 证券交易系统 资管系统 港股打新系统

SGY奇点交易所系统软件APP开发

开發I852946OIIO

系统开发

官方活动 | 盘点2020有奖征文

InfoQ写作平台官方

活动专区 盘点2020

LeetCode题解:515. 在每个树行中找最大值,DFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

刚拿到蚂蚁金服架构师offer!大佬教你如何成为offer收割机

比伯

Java 编程 架构 面试 计算机

助力孩子走上学霸之路,K12学习神器现已面世!

新闻科技资讯

训练营第八周作业

大脸猫

极客大学架构师训练营

最简单的Go Dockerfile编写姿势,没有之一!

万俊峰Kevin

go Docker Dockerfile

训练营第八周总结

大脸猫

极客大学架构师训练营

DolphinDB与Elasticserach在金融数据集上的性能对比测试

DolphinDB

数据处理 金融 时序数据库 tsdb DolphinDB

三分钟看懂新一代.Net Core3.1工作流引擎平台

Philips

敏捷开发 工作流

装机必备:借用IDM实现百度云高速下载

懒得勤快

话题讨论 | 程序员自己电脑中毒是甚么体验?

xcbeyond

话题讨论

什么是802.11ax(Wi-Fi 6)

服务于阿里、滴滴、华为等一线互联网公司的分布式消息中间件RocketMQ核心笔记

Java架构追梦

Java 架构 面试 RocketMQ 消息中间件

请问如何短时间突击 Java 通过面试?

Java架构师迁哥

《迅雷链精品课》第十二课:PoW共识算法

迅雷链

区块链

构师训练营第八周学习笔记

李日盛

笔记

Spark-submit执行流程,了解一下

华为云开发者社区

spark 技术 流程

JS&Swift

ios swift

动态高并发时为什么推荐ReentrantLock而不是Synchronized?

moon聊技术

JVM 并发 synchronized ReentrantLock 锁升级

使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘

华为云开发者社区

LiteOS 脚本 语言

恕我直言!有了这份MySQL学习文档,你收藏夹里的其他MySQL学习资料都可以扔了

Java架构之路

Java 程序员 架构 面试 编程语言

了解OAuth2.0

环信

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

小Q

Java Linux centos 学习 面试

让垃圾分类开发“极快致简”的好物件,零基础的开发小白也能轻松驾驭它!

华为云开发者社区

数据 分类

华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀

华为云开发者社区

专家 华为云 深圳

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

996小迁

Java 架构 面试 Centos6

滴滴DoKit-功能介绍之文件同步助手

工具 文件 DoKit

github上标星70.5k,贼火的Java突击手册,全面详细对标阿里P7

Crud的程序员

Java 多线程 架构师 java面试 java基础

一周信创舆情观察(11.30~12.6)

统小信uos

移动应用开发的下一站

移动应用开发的下一站

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