此源码解析适用于
0.41.0
之前的版本。最新的源码已经把Reducer
重构成了一个协议ReducerProtocol
,但核心的实现方法还是离不开这个版本的源码。
The Composable Architecture (简称 TCA)是一个可以让你用一致和可理解的方式来构建应用的库。可用于 SwiftUI、UIKit 等;并且适用于任何苹果平台(iOS、macOS、tvOS 和 watchOS)。
阅读前
在阅读本系列文章之前,最好是已经对 Redux 有所了解。因为 TCA 的思想本质上和 Redux 类似。先了解 Redux 有助于对 TCA 的理解。可以去看我之前写的《在 SwiftUI 中实现 Redux》了解 Redux。
另外,TCA 使用了 Swift 全新的 Combine
和 Concurrency
框架来编写。如果能对它们有所了解,将会有助于阅读 TCA 的源码。建议阅读这两本书: 《Modern Concurrency in Swift》 和 《Combine: Asynchronous Programming with Swift》。
什么是 TCA
TCA 提供了一些核心工具,可用于构建不同用途和复杂度的应用。你可以用它去解决在日常开发中经常碰到的许多问题,比如:
-
状态管理(State Management) 如何使用简单的值类型管理应用的状态,并在多个界面之间共享状态,以便在另一个界面中立即观察到一个界面上的变化。
-
组合(Composition) 如何将庞大的功能分解为更小的组件,这些组件可以提取到它们自己的独立模块中,并轻松地组合在一起实现完整的功能。
-
副作用(Side Effects) 如何让应用的某些部分尽可能以可测试和可理解的方式与外界沟通。
-
测试(Testing) 如何不仅测试架构中构建的功能,还为由许多部分组成的功能编写集成测试,并编写端到端测试,以了解副作用如何影响应用。这使你能够有力地保证业务逻辑以期望的方式运行。
-
工效(Ergonomics) 如何在一个简单的 API 中用尽可能少的概念和移动部件完成以上所有工作。
文章列表
- 【The Composable Architecture (TCA) 源码解析】02 - Effect
- 【The Composable Architecture (TCA) 源码解析】03 - Effect 扩展之 Animation
- 【The Composable Architecture (TCA) 源码解析】04 - Effect 扩展之 Cancellation
- 【The Composable Architecture (TCA) 源码解析】05 - Effect 扩展之 Debounce & Defer & Throttle
- 【The Composable Architecture (TCA) 源码解析】06 - Effect 扩展之 Publisher
- 【The Composable Architecture (TCA) 源码解析】07 - Reducer
- 【The Composable Architecture (TCA) 源码解析】08 - Store
- 【The Composable Architecture (TCA) 源码解析】09 - ViewStore