Repolode
pointfreeco

pointfreeco/swift-composable-architecture

一个用于构建 Apple 平台应用的 Swift 库,提供统一的状态管理、可组合的功能模块与便于测试的副作用处理。

Star
14,979
Fork
1,678
未关闭 Issue
26
最近提交
14天前

这是什么?

The Composable Architecture(TCA)是一个用于构建 Apple 平台应用的 Swift 库,目标是让应用的状态管理方式统一、易懂且便于测试。开发者用 State 描述功能的数据,用 Action 描述所有可能发生的事件,再通过 Reducer 定义状态如何变化以及需要执行哪些副作用,最后由 Store 驱动逻辑并更新界面。这套结构可同时用于 SwiftUI 和 UIKit。

大型功能可以拆分为相互独立的小模块,再组合回完整功能,适合跨多个 Xcode target 或 Swift Package 的模块化项目。网络请求等副作用以值的形式由 Reducer 返回,测试时可以替换为模拟依赖。库中的 TestStore 允许按步骤断言每次发送 Action 后状态的变化,以及副作用回传数据后的结果。

该库支持 iOS、macOS、iPadOS、visionOS、tvOS 和 watchOS。项目附带 Todos、Tic-Tac-Toe、Voice Memos、SyncUps 等示例应用,并提供导航、依赖管理和测试等方面的文档。

核心功能

  • 01用简单的值类型描述功能状态,通过 Action 驱动状态更新。
  • 02将大型功能由较小的 Reducer 组合而成,可拆分到独立模块。
  • 03副作用由 Reducer 返回,便于在测试中替换。
  • 04提供 TestStore,可逐步断言状态与副作用的变化。
  • 05内置依赖注入机制,可分别提供正式实现与测试实现。
  • 06同时支持 SwiftUI 与 UIKit,覆盖多个 Apple 平台。

适用场景

  • 开发包含大量共享状态页面的 SwiftUI iOS 应用。
  • 将大型 Xcode 项目拆分为边界清晰的功能模块。
  • 为涉及网络请求的业务逻辑编写单元测试与集成测试。
  • 将 UIKit 应用逐步迁移到单向数据流、易测试的架构。

快速上手

  1. 1

    在 Xcode 或 Package.swift 中添加包依赖

  2. 2

    在代码中导入该库

    import ComposableArchitecture
  3. 3

    定义带有 State、Action 和 body 的 @Reducer,并在应用中创建 Store

使用前须知

  • 仅支持苹果平台(iOS、macOS、iPadOS、visionOS、tvOS、watchOS)。
  • 需要先学习其自有概念(状态、动作、Reducer、副作用、Store),上手才会顺畅。

标签

常见问题

swift-composable-architecture 是什么?
一个用于构建 Apple 平台应用的 Swift 库,提供统一的状态管理、可组合的功能模块与便于测试的副作用处理。 The Composable Architecture(TCA)是一个用于构建 Apple 平台应用的 Swift 库,目标是让应用的状态管理方式统一、易懂且便于测试。开发者用 State 描述功能的数据,用 Action 描述所有可能发生的事件,再通过 Reducer 定义状态如何变化以及需要执行哪些副作用,最后由 Store 驱动逻辑并更新界面。这套结构可同时用于 SwiftUI 和 UIKit。
swift-composable-architecture 可以免费使用吗?用的什么许可证?
swift-composable-architecture 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
swift-composable-architecture 还在维护吗?
活跃维护中。swift-composable-architecture 最近一次提交是在 2026年10月6日。
swift-composable-architecture 适合用来做什么?
开发包含大量共享状态页面的 SwiftUI iOS 应用。 将大型 Xcode 项目拆分为边界清晰的功能模块。 为涉及网络请求的业务逻辑编写单元测试与集成测试。 将 UIKit 应用逐步迁移到单向数据流、易测试的架构。
swift-composable-architecture 怎么安装和运行?
在 Xcode 或 Package.swift 中添加包依赖 在代码中导入该库: import ComposableArchitecture 定义带有 State、Action 和 body 的 @Reducer,并在应用中创建 Store
在哪里获取 swift-composable-architecture?
源代码和安装说明在 GitHub 上:https://github.com/pointfreeco/swift-composable-architecture

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目