几个月前,Swift 社区宣布将以纯 Swift 形式重写 Foundation 框架,以改善 Swift 的跨平台开发。近日,基于 Swift 重写的 Foundation 发布了首个 Preview 预览版。
Foundation 框架是苹果 macOS 和 iOS 的基础组件支持核心,几乎所有的 Swift 项目都使用 Foundation 框架,其主要包含了大量常用的 API,为许多基本功能提供了一个基础层,也为编写优秀的 Swift 代码奠定了基础。
发布公告写道,此预览版提供了更快、更安全的 Foundation 实现,并且设立了一个新的 Foundation 工作组来协调 Swift 社区的需求和苹果工程的需要。
新 Foundation 构建了许多类型的 Swift 实现,包括 JSONEncoder、Calendar、TimeZone 和 Locale 等,还有一个名为 FoundationICU 的单独软件包,用于在非 Darwin 平台上提供国际化支持。
此外,这个采用 Swift 编写的新实现在 JSON 解码和日期格式化等多方面比之前的 C 和 Objective-C 版本显著提高了性能。
Swift Foundation 为JSONDecoder
和JSONEncoder
提供了全新的 Swift 实现,消除了往返于 Objective-C 集合类型的昂贵往返开销。在 Swift 中紧密集成解析 JSON 以初始化Codable
类型也提高了性能。在解析测试数据的基准测试中,解码时间从 200% 提高到近 500%。
开发团队表示质量和性能是他们对该项目最重要的两个目标。因此,2023 年上半年的计划是继续完善核心 API,增加单元和性能测试套件,并尽可能扩展到其他平台,使用 swift-corelibs-foundation 中最相关的代码。
作为次要目标,该项目要求社区提议添加具有重点范围的新 API,以完善 Foundation 中的现有 API 功能。
今年晚些时候,将继续移植其他 Foundation API 的高质量 Swift 实现,例如 URL
、 Bundle
、 FileManager
、 FileHandle
、 Process
、 SortDescriptor
、 SortComparator
等。