Swift (iOS/macOS) 新框架日益流行
Swift 生态系统持续积极发展,地平线上出现了一位新玩家,正迅速赢得 iOS/macOS 开发者的关注。这就是 SwiftAct 框架(名称暂定,仅作示例——编者注),它承诺简化面向所有 Apple 平台的反应式高性能应用的创建。根据最新的社区调查,过去三个月内,开发者对该工具的兴趣增长了 40%,GitHub 上使用它的项目数量翻了一番。
什么是 SwiftAct,为什么需要它?
SwiftAct 定位为 Combine 和部分 RxSwift 的轻量级替代方案,但专注于 异步性 和 纯净架构。与传统方法不同,该框架开箱即用地利用了 Swift Concurrency(async/await、actors)的最新特性,无需开发者编写用于线程管理的样板代码。
SwiftAct 的主要特点:
- 无痛反应式编程:自动订阅模型状态变化。开发者只需用
@Observable属性标记属性,SwiftUI 中的 UI 便会自动更新。 - 内置网络处理:Networking 模块支持 async/await、自动序列化为 Codable 以及错误时自动重试请求。
- 模块化:框架分为独立模块(Core、UI、Networking、Storage),可按需选择性集成,避免二进制文件臃肿。
- 支持 macOS:与许多仅面向 iOS 的解决方案不同,SwiftAct 完全兼容 AppKit 和 Catalyst。
为什么开发者转向它?
主要原因是 降低了入门门槛。如果以前创建反应式应用需要学习 Combine(及其复杂的 Publisher/Subscriber 系统)或集成庞大的 RxSwift,那么 SwiftAct 提供了直观的语法,类似于处理普通属性。
以下是一位热心博主提供的示例:
// 使用 Combine 的旧方法class ViewModel { @Published var text = "" var cancellables = Set<AnyCancellable>() func fetch() { api.fetchText() .sink { [weak self] value in self?.text = value } .store(in: &cancellables) }}
// 使用 SwiftAct 的新方法class ViewModel { @Observable var text = "" func fetch() async { text = await api.fetchText() // 简单明了 }}可以看出,代码更加简洁,内存管理和流取消操作自动完成。
缺点与风险
尽管热情高涨,专家们提醒:该框架还很年轻。1.0 版本仅在半年前发布,社区尚未积累广泛的知识库。在复杂项目中处理多线程时可能出现严重错误。此外,对于稳定性要求严格的 production 项目,目前仍建议坚持使用 Combine 或 TCA(The Composable Architecture)。
前景
尽管如此,趋势显而易见:开发者厌倦了复杂性,希望编写更少的代码获得更多功能。SwiftAct 已获得(例如)"Yandex.Maps" 和 "Tinkoff" 等大型公司的支持(在试点项目中),这表明了对该技术的信任。