博客

介绍 swiftly 1.0

今天,我们很高兴推出 swiftly 的首个稳定版本,它是一个 Swift 版本管理器,可以轻松安装、管理和更新您的 Swift 工具链。

阅读更多...

Swift 的服务器支持如何驱动 Things Cloud

您可能熟悉 Things,这是一款令人愉悦的个人任务管理器,曾荣获两项 Apple 设计大奖,可在包括 iPhone、iPad、Mac、Apple Watch 和 Apple Vision Pro 在内的 Apple 设备上使用。在 Things 背后的团队 Cultured Code,我们关心产品各个方面的出色用户体验。这延伸到我们的服务器后端,经过重写后,我们的 Things Cloud 服务已完全过渡到 Swift。在过去一年的生产中,Swift 一直被证明是可靠、高性能的,并且非常适合我们的服务器端需求。

阅读更多...

介绍 gRPC Swift 2

向 gRPC Swift 2 打招呼:这是一个重大更新,带来了头等并发支持和更具表现力的 API,以实现无缝的开发者体验。

阅读更多...

宣布 Swift 6

我们很高兴地宣布 Swift 6 的正式发布。这是一个重大的新版本,将 Swift 扩展到更多平台和领域。

阅读更多...

规划一个没有数据竞争错误的软件包生态系统的路径

Swift 6 为任何 选择使用 Swift 6 语言模式 的代码引入了 编译时数据竞争安全检查。虽然各个模块可以增量且独立于其依赖项采用此模式,但只有当所有模块都选择加入时,才能充分实现运行时数据竞争安全性的好处。因此,开源软件包生态系统快速采用 Swift 6 语言模式将在推动整个 Swift 生态系统的数据竞争安全性方面发挥关键作用。

阅读更多...

介绍 Benchmark 软件包:使用性能检查补充单元测试

在软件开发领域,古老的格言“先使其工作,再使其正确,再使其快速”是创建健壮、高效应用程序的指导原则。这段旅程始于确保我们的代码按预期运行,单元测试和集成测试已证明在这项任务中不可或缺。然而,确保功能只是等式的一部分。衡量应用程序卓越性的真正标准延伸到其性能——在各种条件下它运行的速度和效率。这正是关键但经常被忽视的第三步:使其快速

阅读更多...

在 Swift 6.0 中迭代参数包

Swift 5.9 中引入的参数包,使编写可以抽象化参数数量的泛型成为可能。这消除了为一个参数、两个参数、三个参数等等而拥有相同泛型函数的重载副本的需要。在 Swift 6.0 中,包迭代使处理参数包比以往任何时候都更容易。这篇文章将向您展示如何最好地利用包迭代。

阅读更多...

Swift 5.10 发布

Swift 被设计为默认安全,在编译时防止整个类别的编程错误。C 语言系列中未定义行为的来源,例如在使用变量之前对其进行初始化或使用后释放,在 Swift 中被消除。

阅读更多...

Swift OpenAPI Generator 1.0 发布

我们很高兴地宣布 Swift OpenAPI Generator 的稳定 1.0 版本发布!

OpenAPI 是一个开放标准,用于描述具有丰富工具生态系统的 HTTP 服务的行为。OpenAPI 特别出名的一件事是生成交互式文档的工具。但 OpenAPI 的核心动机是代码生成,这允许采用者使用 API 优先的方法进行服务器开发,并且由于许多现有服务以这种格式记录其 API,因此允许客户端开发人员生成类型安全、符合语言习惯的代码来调用这些 API。

阅读更多...

Swift 中的崩溃时回溯

新的 Swift 5.9 版本包含许多有用的调试代码的新功能,包括一个进程外交互式崩溃处理程序,用于实时检查崩溃,触发调试器进行即时调试的能力,以及并发感知回溯,以便更容易理解使用结构化并发的程序中的控制流。

阅读更多...

介绍 Swift OpenAPI Generator

我们很高兴地宣布一组开源库,旨在帮助客户端和服务器开发人员使用行业标准 OpenAPI 规范简化围绕 HTTP 通信的工作流程。

阅读更多...

使用即将推出的功能标志

从 Swift 5.8 开始,您可以使用新的编译器标志和编译条件灵活地采用即将推出的 Swift 功能。这篇文章描述了即将推出的功能标志解决的问题、它们的优势以及如何开始在您的项目中使用它们。

阅读更多...

发展 Swift 工作组

今天,Swift 核心团队宣布了对 Swift 结构、工作以及周围人员的前瞻性变更。这些变更包括新的组、名称、组织,以及将包容性作为每个组的首要概念

阅读更多...

Swift Package Index 获得 Apple 赞助

构建蓬勃发展的开源生态系统对 Swift 的成功至关重要,而开源软件包是帮助驱动无数 Swift 项目的构建块。随着软件包数量的增加,对于需要查找帮助他们构建应用和服务的工具和库的开发者来说,发现变得至关重要。

阅读更多...

Foundation 的未来

Foundation 框架几乎在所有 Swift 项目中使用。它为字符串、集合和日期等基本要素提供了基础功能层,并为编写出色的 Swift 代码设定了约定。

阅读更多...

2023 年的 Swift 项目

Swift 项目中正在进行许多令人兴奋的工作,而且很难跟踪所有这些工作,因为它发生在许多不同的存储库、拉取请求和论坛主题中。为了让社区更好地了解全局,核心团队调查了整个项目的工作组和开发人员,并收集了有关他们在未来一年关注的信息。

阅读更多...

Swift 5.7 发布!

Swift 5.7 现已正式发布!Swift 5.7 包括对语言和标准库的重大新增功能、增强编译器以获得更好的开发者体验、改进 Swift 生态系统中的工具(包括 SourceKit-LSP 和 Swift Package Manager)、改进的 Windows 支持等。

阅读更多...

宣布 SwiftNIO IMAP

作为扩展 Swift on Server 生态系统的一部分,我们很高兴地宣布发布新的 IMAPv4 解析器和编码器 SwiftNIO IMAP。

阅读更多...

探索 Swift:野外的属性包装器

属性包装器 在 Swift 5.1 中引入,作为一种使重用常见编程模式更容易的方法,但从那时起,它们已发展为与本地上下文、函数和闭包参数等一起工作。我们很幸运,我们的社区中有很多创作者使用属性包装器创建应用程序,然后撰写关于他们经验的文章,我们想在这里与您分享我们最喜欢的一些。

阅读更多...

宣布语言工作组

Swift 社区共同完成了许多伟大的工作,通过 Swift Evolution 流程对 Swift 进行了数百次更改,并且自 Swift 成为开源项目以来,语言和工具方面取得了重大进展。近年来,通过各种工作组(包括 Swift 多元化和服务器工作组),社区的势头有所增加。核心团队认识到有机会利用这些工作组的潜力来扩大社区的影响力,并支持更多社区成员推动有影响力的投资。

阅读更多...

介绍 Swift Async Algorithms

作为 Swift 向安全、简单和高性能异步编程迈进的一部分,我们很高兴推出一个新的 AsyncSequence 算法软件包。它被称为 Swift Async Algorithms,现在可以在 GitHub 上获得。

阅读更多...

网站现已开源

长期以来, 站点一直是开发者聚集在一起开发开源 Swift 编译器、库和工具的中心。今天,我们很高兴地宣布 网站本身也是一个开源项目,随时准备接受社区贡献。通过此举,该网站也在扩展其使命,以更好地支持整个 Swift 用户社区,而不仅仅是贡献者。

阅读更多...

Swift-DocC 现已开源

在 WWDC21 上,Apple 宣布了 Swift-DocC,这是一个用于 Swift 框架和软件包的新文档编译器。Swift-DocC 提供了一种轻松编写出色文档的方式,与您的代码一起,并为 Swift 代码库生成全面的文档网站。它支持以代码注释形式编写的 API 文档、以 Markdown 编写的长篇概念文章,甚至带有集成图像的分步教程。

阅读更多...

Swift 5.5 发布!

Swift 5.5 现已正式发布!Swift 5.5 是一个大规模版本,其中包括新引入的并发语言功能,包括 async/await、结构化并发和 Actors。衷心感谢整个 Swift 社区对并发性(以及构成此版本的其他新增功能)的所有积极讨论、审查和迭代。谢谢!

阅读更多...

软件包集合

在 Swift 5.5 中,Swift Package Manager 添加了对软件包集合的支持——精选的软件包列表,可以轻松发现、共享和采用软件包。

阅读更多...

宣布 Swift 导师计划

我们很高兴地宣布 Swift 导师计划——Swift 社区的一个新贡献者计划,也是 Swift 多元化 倡议的一部分。Swift 导师计划旨在支持开发者成为 Swift 项目的积极开源贡献者,提供与社区经验丰富的成员的直接指导。

阅读更多...

庆祝女性历史月

在这个女性历史月,我们非常高兴地庆祝我们社区中杰出的女性开发者。女性通过构建我们每天使用的重要工具、创建资源来传递她们所学到的知识等等,对 Swift 生态系统产生了巨大的影响。这篇文章重点介绍了一些来自 Women in Swift 社区的个人的杰出贡献。

阅读更多...

庆祝黑人历史月

黑人历史月是了解、反思和庆祝黑人社区的影响和成就的时刻。为了纪念黑人历史月,我们策划了一些来自黑人 Swift 社区的杰出贡献,以承认和庆祝他们对 Swift 生态系统的影响。

阅读更多...

Swift 多元化

6 年前,Swift 发布了。此后的几年里,围绕着对构建和使用 Swift 编程语言的共同热情,一个蓬勃发展的社区应运而生。这个社区通过会议、开源存储库、社区编写的书籍等方式传播到 Apple 之外——人们总是在寻找新的方法来与世界各地的其他 Swift 开发者联系和支持。但是,我们认为我们可以做得更多,以鼓励更广泛的开发者积极参与我们的社区。这就是为什么我们很高兴地宣布 Swift 多元化。这项倡议的重点是进一步提升各种声音,并使开发者更容易开始学习或贡献 Swift,无论他们的背景如何。

阅读更多...

Swift 社区中的可访问性和包容性

在编写旨在被所有人使用和欣赏的软件时,多元化和包容性都是至关重要的价值观。Swift 社区拥抱这些价值观,我们很高兴强调确保每个人都感到受欢迎的方式,并将更多人带入 Swift 开发的阵营。

阅读更多...

介绍 SwiftNIO SSH

我很高兴地介绍 Swift Server 生态系统的一个新的开源项目 SwiftNIO SSH。SwiftNIO SSH 以 Swift 软件包的形式分发,旨在使 Swift 开发者能够与 SSH 网络协议进行交互。

阅读更多...

介绍 Swift Atomics

我很高兴地宣布 Swift Atomics,这是一个新的开源软件包,可以在 Swift 代码中直接使用底层原子操作。此库的目标是使大胆的系统程序员能够直接在 Swift 中开始构建同步结构(例如并发数据结构)。

阅读更多...

Swift System 现已开源

6 月,Apple 推出了 Swift System,这是一个用于 Apple 平台的新库,它为系统调用和底层货币类型提供了符合语言习惯的接口。今天,我很高兴地宣布我们将 System 开源并添加 Linux 支持!我们的愿景是 System 最终成为所有受支持的 Swift 平台的底层系统接口的唯一家园。

阅读更多...

介绍 Swift Cluster Membership

我很高兴地宣布 Swift Server 生态系统的一个新的开源项目 Swift Cluster Membership。此库旨在帮助 Swift 在服务器应用程序的新领域中发展:集群多节点分布式系统。借助此库,我们提供了可重用的运行时无关的成员资格协议实现,这些实现可以在各种集群用例中采用。

阅读更多...

其他 Linux 发行版

我很高兴地宣布 Swift 项目正式支持一组新的 Linux 发行版。 现在为以下新的 Linux 发行版提供可下载的工具链和 Docker 镜像

阅读更多...

标准库预览软件包

我很高兴地宣布一个新的开源软件包以及对 Swift Evolution 流程的增强:标准库预览软件包!预览软件包提供了对已通过 Swift Evolution 流程 接受到 Swift 标准库中,但尚未作为官方 Swift 版本发布的功能的访问权限。这将使我们能够整合来自真实世界使用情况的反馈,并消除许多为标准库做出贡献的技术障碍。

阅读更多...

Swift 中的库演进

Swift 5.0 在 Apple 平台上引入了稳定的二进制接口。这意味着使用 Swift 5.0 编译器构建的应用程序可以使用操作系统内置的 Swift 运行时和标准库,并且现有应用程序将在未来的操作系统版本中与新版本的 Swift 运行时保持兼容。

阅读更多...

介绍 Swift Crypto

我很高兴地宣布 Swift 生态系统的一个新的开源项目 Swift Crypto。Swift Crypto 是一个新的 Swift 软件包,它将 Apple CryptoKit 的出色 API 带给更广泛的 Swift 社区。这将允许 Swift 开发者,无论他们将应用程序部署在哪个平台上,都可以访问这些 API 以进行一组常见的加密操作。

阅读更多...

Swift 数值计算

我很高兴地宣布一个针对 Swift 生态系统的新开源项目:Swift Numerics!Swift Numerics 将作为一组细粒度的模块捆绑到一个 Swift 包中,为 Swift 中的数值计算提供构建块。我希望我们能够快速填补标准库现有 API 中的一些重要空白,并为 Swift 语言开启新的编程领域。

阅读更多...

SSWG 年度更新

Swift 服务器工作组 (SSWG) 在 12 个月前 启动,旨在定义和优先考虑新的工作,以满足 Swift 服务器社区的需求。从那时起,我们一直忙于定期会议、与社区合作、定义指南、编写 Swift 包、对提案进行投票、在论坛中发帖等等。我们认为,我们朝着去年设定的目标取得了重大进展,今天想与大家分享一份高层更新。

阅读更多...

新诊断架构概述

诊断在编程语言体验中起着非常重要的作用。对于开发者生产力而言,编译器能够在任何情况下,特别是对于不完整或无效的代码,产生正确的指导至关重要。

阅读更多...

UTF-8 字符串

Swift 5 将字符串的首选编码从 UTF-16 切换到 UTF-8,同时保留了高效的 Objective-C 互操作性。由于 String 类型抽象了这些底层问题,因此开发者无需进行源代码更改*,但值得强调的是,此举现在和将来为我们带来的一些好处。

阅读更多...

ABI 稳定性后 Apple 平台上的 Swift 演进

随着 Swift 5.0 的发布,Swift 现在 ABI 稳定,并作为 macOS、iOS、tvOS 和 watchOS 的核心组件交付。ABI 稳定性自 Swift 诞生以来一直是其目标,并为这些平台的开发者和用户带来了许多好处

阅读更多...

ABI 稳定性和更多

在 macOS、iOS、watchOS 和 tvOS 上稳定 Swift 的 ABI 一直是一个长期目标。虽然稳定的 ABI 是任何语言成熟的重要里程碑,但对 Swift 生态系统的最终好处是为应用程序和库启用二进制兼容性。这篇文章描述了二进制兼容性在 Swift 5 中的含义以及它在未来 Swift 版本中将如何演进。

阅读更多...

Sourcekitd 压力测试器介绍

Sourcekitd 提供了关键编辑器功能的数据支持,例如代码完成、语义高亮和重构,适用于 Xcode 和最近发布的 SourceKit-LSP 中的 Swift 文件。为了帮助提高其稳健性,我们引入了一个新工具 sourcekitd 压力测试器,在过去的几个月中,它帮助找到了 91 个可重现的 sourcekitd 崩溃、断言失败和挂起。这篇文章介绍了压力测试器的实现、其在 Swift 的 CI 和 PR 测试中的部署,以及 Swift 开发者如何在其自己的项目上运行它,以帮助改善每个人的 Swift 编辑体验。

阅读更多...

Swift 5 独占性强制执行

Swift 5 版本默认在 Release 构建中启用对“内存独占访问”的运行时检查,进一步增强了 Swift 作为安全语言的能力。在 Swift 4 中,这些运行时检查仅在 Debug 构建中启用。在这篇文章中,我将首先解释此更改对 Swift 开发者意味着什么,然后再深入探讨为什么这对 Swift 的安全性和性能策略至关重要。

阅读更多...

Mirror 工作原理

Swift 非常强调静态类型,但它也支持关于类型的丰富元数据,这允许代码在运行时检查和操作任意值。这通过 Mirror API 向 Swift 程序员公开。人们可能会想,像 Mirror 这样的东西在如此强调静态类型的语言中是如何工作的?让我们来看看!

阅读更多...

Swift 4.2 已发布!

Swift 4.2 现已正式发布!Swift 4.2 基于 Swift 4 的优势构建,提供更快的编译时间、改进的调试体验、更新的标准库以及趋于二进制兼容性。

阅读更多...

Swift 社区托管的持续集成

我们很高兴地宣布 持续集成测试系统的重要扩展。Swift 社区的成员一直在努力支持 Swift 在许多新平台上的运行,我们扩展了 Swift CI 系统以支持社区托管的节点,用于测试其他平台。

阅读更多...

隐式解包可选类型的重新实现

隐式解包可选类型 (IUO) 的新实现已于今年早些时候在 Swift 编译器中落地,并且可以在最新的 Swift 快照 中试用。这完成了 SE-0054 - 废除隐式解包可选类型 的实现。这是对语言的一项重要更改,它消除了一些类型检查中的不一致之处,并澄清了如何处理这些值的规则,使其一致且易于推理。有关更多信息,请参阅该提案的 动机部分

阅读更多...

Swift 4.1 已发布!

Swift 4.1 现已正式发布!它包含对核心语言的更新,包括对泛型的更多支持、新的构建选项,以及对 Swift 包管理器和 Foundation 的小幅增强。在稳定 ABI 方面也取得了重大进展。

阅读更多...

Swift 4.0 中的字典和集合改进

在最新版本的 Swift 中,字典和集合获得了一些新的方法和初始化器,这些方法和初始化器使常见任务比以往任何时候都更容易。诸如分组、过滤和转换值之类的操作现在可以在一个步骤中执行,使您可以编写更具表现力和效率的代码。

阅读更多...

Swift 4.0 已发布!

Swift 4 现已正式发布!Swift 4 基于 Swift 3 的优势构建,提供更高的稳健性和稳定性,提供与 Swift 3 的源代码兼容性,改进了标准库,并添加了诸如归档和序列化之类的功能。

阅读更多...

Swift 本地重构

Xcode 9 包含一个全新的重构引擎。它可以本地转换单个 Swift 源文件中的代码,也可以全局转换代码,例如重命名在多个文件甚至不同语言中出现的方法或属性。本地重构背后的逻辑完全在编译器和 SourceKit 中实现,现在在 swift 仓库 中开源。因此,任何 Swift 爱好者都可以为该语言贡献重构操作。这篇文章讨论了如何在 Xcode 中实现和展示简单的重构。

阅读更多...

Swift 包管理器 Manifest API 重新设计

Swift 4 中的包管理器包含重新设计的 Package.swift manifest API。新的 API 更易于使用,并遵循 设计指南。Swift 3 包管理器中的目标推断规则是常见的困惑来源。我们修改了这些规则并删除了大部分推断,倾向于在 manifest 中显式指定包结构的实践。

阅读更多...

Swift 3.1 已发布!

Swift 3.1 现已正式发布!Swift 3.1 是一个次要版本,其中包含对标准库的改进和优化。感谢 IBM 和社区其他成员的努力,它还包括对 Swift 的 Linux 实现的许多更新。Swift 包管理器也有许多更新。

阅读更多...

使用预编译桥接头的更快混合搭配构建

对混合使用 Objective-C 和 Swift 的 Xcode 项目的构建时间进行检查,这些项目可能包含大型桥接头,结果表明 Swift 编译器花费大量时间为项目中的所有 Swift 文件重新处理相同的桥接头。在某些项目中,即使 Swift 文件非常小,每个额外的 Swift 文件也会明显增加整体构建时间。

阅读更多...

服务器 API 工作组

自从 Swift 在 Linux 上可用以来,人们对在服务器上使用 Swift 产生了巨大的兴趣,从而涌现出许多 Web 框架,包括 Kitura、Vapor、Perfect 和 Zewo,以及许多其他框架。作为 Swift 生态系统的重要组成部分,也是我们渴望培养的部分,我们今天宣布成立服务器 API 工作组。

阅读更多...

Swift 3 中的全模块优化

全模块优化是 Swift 编译器的一种优化模式。全模块优化的性能提升在很大程度上取决于项目,但它可以高达两倍甚至五倍。

阅读更多...

Swift 3.0 已发布!

Swift 3.0 是 Swift 开源以来的第一个主要版本,现已正式发布!Swift 3 是一个重要的版本,包含对核心语言和标准库的重大改进和优化,对 Swift 的 Linux 端口的主要补充,以及 Swift 包管理器 的第一个正式版本。

阅读更多...

Swift 2.2 中的新功能

Swift 2.2 带来了新的语法、新功能以及一些弃用。这是今年晚些时候 Swift 3 带来更大变化 之前的临时版本,Swift 2.2 中的更改与 Swift 3 的更广泛目标一致,即通过添加缺失的功能、改进现有功能以及删除语言中不再需要的功能,逐步稳定核心语言和标准库。Swift 2.2 中的所有更改都经历了社区驱动的 Swift 演进过程 — 自 Swift 几个月前开源以来,已提交、审查和接受了 30 多个提案。

阅读更多...

Swift 2.2 已发布!

我们非常高兴地宣布 Swift 2.2 的发布!这是自 2015 年 12 月 3 日 Swift 开源以来的第一个正式版本。值得注意的是,该版本包含了来自 212 位非 Apple 贡献者的贡献 — 这些更改涵盖了从简单的错误修复到核心语言和 Swift 标准库的增强和更改。

阅读更多...

扩展提交访问权限

既然 Swift 持续集成系统已经建立并得到验证,我们希望更频繁地向在良好贡献方面建立了良好记录的项目贡献者授予提交访问权限。如果您想要提交访问权限,请发送电子邮件至 代码所有者列表,其中包含我们未经修改接受的 5 个非 trivial 的 pull request 列表。

阅读更多...

Swift 3 API 设计指南

常用库的设计对编程语言的整体感觉有很大的影响。优秀的库感觉像是语言本身的扩展,库之间的一致性提升了整体开发体验。为了帮助构建优秀的 Swift 库,Swift 3 的目标 之一是定义一组 API 设计指南,并始终如一地应用这些设计指南。

阅读更多...

Swift Linux 端口

随着开源 Swift 项目的启动,我们还发布了一个与 Linux 操作系统兼容的端口!您可以从 Swift 源代码构建它,或者 下载 Ubuntu 的预构建二进制文件。该端口仍在开发中,但我们很高兴地说它今天可以用于实验。目前 x86_64 是 Linux 上唯一支持的架构。

阅读更多...

博客

欢迎来到 上的博客!今天,我们启动了开源 Swift 项目以及 网站。我们非常高兴在一个开放的社区中共同努力,查找和修复问题,添加增强功能,并将 Swift 带到新的平台。

阅读更多...