写点什么

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

评论

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

浅谈如何做好软件研发团队的盘点

大黄蜂

团队管理 技术管理

一文吃透PHP进程信号处理

书旅

php Linux 信号

2w字 + 40张图带你参透并发编程!

cxuan

Java 后端 并发

Python3 for ... else ...陷阱

王坤祥

Python Python PEP

SpreadJS 纯前端表格控件应用案例:集成 Odoo提升企业ERP表格功能

Geek_Willie

开源 SpreadJS Odoo

华为:新政务风口下加宽“护城河”

脑极体

核查框架新的选择

柿子

jsr-303 核查框架 butterfly

进击谷歌:多线程下程序顺序怎么稳定不乱?

架构师修行之路

数据结构与算法

大厂面试必读,JAVA进阶神书《深入理解Java虚拟机》第三版更新内容全曝光!

华章IT

JVM 虚拟机 周志明 Java虚拟机 jvm调优

跟我一起基于Karma搭建一个测试环境(下)

Jack Q

测试框架 前端进阶训练营 Karma

为什么 Bash 脚本总是不稳定?

柴锋

bash Linux DevOps 运维 Shell

LeetCode题解:66. 加一,新数组求和再翻转,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

法定数字人民币将成中国金融新名片

CECBC区块链专委会

数字货币 人民币

Flink所需组件-1

小知识点

scala 大数据 flink 流计算

ST在keil下开发时候文件options配置的一些小技巧

良知犹存

嵌入式

《精益创业》摘要

孙苏勇

书摘 精益创业

吃透Laravel的Ioc容器

书旅

laravel 容器 ioc

大数据技术发展(二):Hadoop 技术生态圈的发展

抖码算法

Java 大数据 hadoop 大数据技术 hadoop3

“庆俞年”大战,真正受损的不是李国庆

北柯

创业 合伙人 创业者 互联网人 当当网

微服务-技术专题-设计原则AFK

李浩宇/Alex

Pulsar 联合 TiDB 推出大数据场景数据应用分析解决方案

Apache Pulsar

大数据 InfoQ Apache Pulsar #TiDB

Week11

一叶知秋

优雅快速的统计千万级别uv

架构师修行之路

哈希表 数据结构与算法

为什么一旦自己创业了,很难再回到公司去坐班?

北柯

创业 互联网 创业心态 上班 上班族

9大训练营免费开营!阿里云大数据团队的独门绝学全在这了

Apache Flink

大数据 训练营

有一种自我欺骗,叫只为孩子

zhoo299

随笔杂谈 家庭

56张图入门操作系统——内功心法,适合所有程序员

执鸢者

前端 操作系统

云原生架构的基石

soolaugust

Docker 架构 Kubernetes 容器 云原生

奈学:reaseShared共享式释放锁

奈学教育

共享锁

浅谈技术管理之团队管理

大黄蜂

团队管理 技术管理

四种主要的 IO 模型

方明

Netty

飞猪Flutter技术演进及业务改造的实践与思考

飞猪Flutter技术演进及业务改造的实践与思考

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