Swift 新框架在 iOS 开发者中日益流行

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

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" 等大型公司的支持(在试点项目中),这表明了对该技术的信任。

推荐库