写点什么

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

评论

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

ClickHouse在大数据领域企业级应用实践和探索总结

王知无

大数据 Clickhouse

十三周总结

水浴清风

软件架构-缓存技术

看山

缓存 架构

构师训练营 - 第十三周课后练习

joshuamai

架构师训练营第2期 第13周总结

月下独酌

架构师训练营第2期

第一周-胡赵凯-作业

hisun胡

产品经理训练营

第一周-胡赵凯-总结

hisun胡

产品经理训练营

架构师训练营 week13 课后作业

花果山

HTML(一)——html相关介绍

程序员的时光

程序员 28天写作

最长公共前缀字符串, RxSwift的概念详细解析, 极客大学认识产品经理 John 易筋 ARTS 打卡 Week 35

John(易筋)

ARTS 打卡计划 最长公共前缀字符串 RxSwift的概念详细解析 极客大学认识产品经理 极客大学产品经理训练营

给自己当前岗位所定义的理想岗位模型

邹小胖

自我思考

前端也要懂机器学习(下)

执鸢者

机器学习 前端

项目管理系列 (5)-沟通规划

Ian哥

项目管理 沟通与管理 28天写作

在 AWS 的视角下,正确打开零信任安全模型

亚马逊云科技 (Amazon Web Services)

云计算 AWS

敏捷开发需要内外兼修

Bruce Talk

敏捷开发 Agile

第13周作业

Rocky·Chen

算法 数据分析

AWS Graviton2 | 匠“芯”定制,性能为王

亚马逊云科技 (Amazon Web Services)

云计算 AWS

架构师课程--第十三周作业

孤星

Hbase性能优化百科全书

王知无

大数据 HBase

如何 debug hive 源码,知其然知其所以然

王凯

hive 源码分析

英雄惜英雄-当Spark遇上Zeppelin之实战案例

王知无

大数据 spark

数字货币合约交易系统软件开发|数字货币合约交易APP开发

开發I852946OIIO

系统开发

Flink1.12集成Hive打造自己的批流一体数仓

王知无

大数据 flink

【计算机内功修炼】七:高并发高性能服务器是如何实现的

码农的荒岛求生

高并发 事件驱动 高性能 Event Driven 高并发优化

十三、数据应用二

Geek_28b526

有道乐读 x AWS | 云上的少儿图书馆!这个寒假让孩子爱上“乐读”

亚马逊云科技 (Amazon Web Services)

云计算 AWS

架构师训练营 week13 学习笔记

花果山

HDFS中的常用压缩算法及区别

王知无

大数据 hdfs

Springboot 中的切面AOP处理

武哥聊编程

Java aop springboot SpringBoot 2 28天写作

架构师训练营第2期 第13周命题作业

月下独酌

架构师训练营第2期

面试官:Netty的线程模型可不只是主从多Reactor这么简单

中间件兴趣圈

reactor Netty nio 中间件 线程模型

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