GMTC北京站两周后开幕,58个议题全部上线,点击查看 了解详情
写点什么

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

评论

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

华为云数据库GaussDB(for openGauss):初次见面,认识一下

华为云开发者社区

数据库 分布式 华为云 GaussDB(for openGauss) 开源数据库

Nirvana NA公链 NAC公链的两面观

区块链第一资讯

《2020年IT行业项目管理调查报告》重磅发布

禅道项目管理

开源 项目管理 项目 调查报告 互联网行业薪资

高频量化交易系统开发功能丨量化交易机器人系统开发详情

系统开发咨询1357O98O718

uniapp实现音视频通讯

anyRTC开发者

uni-app 音视频 WebRTC 跨平台 sdk

Continue 玩转像素点,Python 图像处理学习的第 3 天

梦想橡皮擦

28天写作 3月日更

fil挖矿系统开发|fil挖矿系统软件APP开发

开發I852946OIIO

系统开发

IPFS云矿机系统开发|IPFS云矿机APP软件开发

开發I852946OIIO

系统开发

万物摩尔定律

soolaugust

AI

uni-app跨端开发H5、小程序、IOS、Android(三):理解uni-app框架MVVM思想

黑马腾云

微信小程序 uni-app android iOS Developer 3月日更

超简单的网站暗黑模式,它真的超简单!

HelloGitHub

前端

设计有意义的选择——再谈心流

Justin

心理学 28天写作 游戏设计

区块链追溯系统开发,区块链底层公共服务平台建设方案

WX13823153201

区块链追溯系统开发

Adobe国际认证!杜绝“带薪难过”,志在打破创意产业不平等

Adobe国际认证

Adobe国际认证 带薪难过 创意产业

全球币系统开发案例(源码)

系统开发咨询1357O98O718

「SaaS第一股」微盟集团财报业绩大涨,超预期财报揭示多元投资布局

ToB行业头条

SaaS 微盟

共筑“新基建” 京东云全面开启渠道合作伙伴招募计划

京东科技开发者

云服务

耽改热、腐文化!开启创意者和教育者的Adobe国际认证旅程

Adobe国际认证

创意 教育 Adobe国际认证 腐文化

百度大脑开放日重庆站-智能物流专场报名啦

百度大脑

百度大脑 智能物流 智能物流开放日 重庆站

企业大数据实战:Kyuubi 与 Spark ThriftServer 的全面对比分析

网易数帆

大数据 spark Kyuubi Thrift HiveServer2

2021 OS 大赛来了,为中国操作系统发展按下加速键

InfoQ写作平台官方

活动专区

马特机器人系统开发(成品案例,快速上线)

系统开发咨询1357O98O718

别人家的孩子!是如何用Adobe国际认证,设计自己的职业道路

Adobe国际认证

设计 Adobe国际认证 职业道路

@Component,@Service等注解是如何被解析的?

Java小咖秀

spring 面试 工作 注解 经验

看完了进程同步与互斥机制,我终于彻底理解了 PV 操作

飞天小牛肉

Java 程序员 面试 操作系统

【实战问题】-- 并发的时候分布式锁setnx细节

秦怀杂货店

Java 分布式 高并发

华为云应用服务网格最佳实践之从Spring Cloud 到 Istio

华为云开发者社区

微服务 Spring Cloud istio 华为云 服务网格

Python基础之:Python的数据结构

程序那些事

Python 程序那些事 python数据结构

小树系统开发案例(源码)丨小树机器人系统开发流程

系统开发咨询1357O98O718

「 视频云大赛 — 大咖驾到 」下一代技术新浪潮,正由视频云驱动

阿里云视频云

阿里云 音视频 intel

Python if __name__ == ‘main’ 的作用介绍

HoneyMoose

Service Mesh的演化与未来

Service Mesh的演化与未来

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