# The Composable Architecture ## Docs - [@Dependency](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/dependency.md): A property wrapper that provides access to dependencies in reducers - [Effect](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/effect.md): Type for modeling side effects - [ForEach](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/foreach.md): Embeds a child reducer for each element in a collection of parent state - [IfLet](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/iflet.md): Embeds a child reducer that operates on optional state in a parent domain - [NavigationLink(state:)](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/navigation-link-state.md): SwiftUI NavigationLink integration for pushing state onto a navigation stack. - [@ObservableState](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/observable-state.md): A macro that makes reducer state observable for SwiftUI views - [@Presents](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/presents.md): A macro that wraps a property with PresentationState for managing optional child state in navigation. - [Reduce](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/reduce.md): A type-erased reducer for injecting logic without introducing new types - [Reducer](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/reducer.md): Protocol for evolving state and handling side effects - [@Reducer](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/reducer-macro.md): A macro that helps implement conformance to the Reducer protocol for a type - [Scope](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/scope.md): Embeds a child reducer in a parent domain by transforming state and actions - [StackState & StackAction](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/stack-state.md): Types for managing navigation stack state and actions in The Composable Architecture. - [Store](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/store.md): The runtime that powers your application - [StoreOf](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/store-of.md): A convenience type alias for referring to a store of a given reducer's domain - [SwitchStore](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/switch-store.md): A deprecated SwiftUI view for switching over enum state (use native switch instead) - [TestStore](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/test-store.md): A testable runtime for a reducer - [WithViewStore](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api/with-view-store.md): A deprecated SwiftUI view for observing store state changes (use @ObservableState instead) - [Composition](https://mintlify.wiki/pointfreeco/swift-composable-architecture/concepts/composition.md): Composing features together to build complex applications - [Effects](https://mintlify.wiki/pointfreeco/swift-composable-architecture/concepts/effects.md): The Effect type for managing side effects in TCA - [Reducers](https://mintlify.wiki/pointfreeco/swift-composable-architecture/concepts/reducers.md): The Reducer protocol and @Reducer macro for defining application logic - [State Management](https://mintlify.wiki/pointfreeco/swift-composable-architecture/concepts/state-management.md): How TCA manages state using value types and observation - [Store](https://mintlify.wiki/pointfreeco/swift-composable-architecture/concepts/store.md): The Store and StoreOf types that power TCA applications - [Counter](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/counter.md): Learn the basics of TCA with a simple counter example - [Search](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/search.md): Implement debounced search with API requests and cancellation - [SyncUps](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/syncups.md): A complete app demonstrating navigation, persistence, and speech recognition - [Tic-Tac-Toe](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/tic-tac-toe.md): Build a game with modular architecture and multi-UI support - [Todos](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/todos.md): Build a todo list app with collections, filtering, and animations - [Two Counters](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/two-counters.md): Learn how to compose features together using Scope and reducer builders - [Voice Memos](https://mintlify.wiki/pointfreeco/swift-composable-architecture/examples/voice-memos.md): Record and play audio with permissions, state machines, and custom dependencies - [SwiftUI Bindings Integration](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/bindings.md): Learn how to connect TCA features to SwiftUI bindings for two-way communication - [Swift Concurrency Integration](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/concurrency.md): Learn how to write safe, concurrent effects using Swift's structured concurrency - [Dependency Injection](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/dependencies.md): Learn how to register and manage dependencies in your TCA features - [Navigation Patterns](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/navigation.md): Learn about state-driven navigation in TCA, including tree-based and stack-based approaches - [Performance Optimization](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/performance.md): Learn how to improve the performance of features built in the Composable Architecture - [Shared State Management](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/sharing-state.md): Learn techniques for sharing state throughout your application and persisting data - [Testing with TestStore](https://mintlify.wiki/pointfreeco/swift-composable-architecture/guides/testing.md): Write comprehensive and exhaustive tests for your TCA features using TestStore - [Installation](https://mintlify.wiki/pointfreeco/swift-composable-architecture/installation.md): Add the Composable Architecture to your Xcode project using Swift Package Manager - [Observation Framework](https://mintlify.wiki/pointfreeco/swift-composable-architecture/integration/observation.md): Understanding Swift's Observation framework and TCA's Perception backport for iOS 13+ - [SwiftUI Integration](https://mintlify.wiki/pointfreeco/swift-composable-architecture/integration/swiftui.md): Learn how to integrate The Composable Architecture with SwiftUI views and components - [UIKit Integration](https://mintlify.wiki/pointfreeco/swift-composable-architecture/integration/uikit.md): Integrate The Composable Architecture with UIKit view controllers and components - [Introduction](https://mintlify.wiki/pointfreeco/swift-composable-architecture/introduction.md): Build applications in a consistent and understandable way with composition, testing, and ergonomics in mind - [Migration Guides](https://mintlify.wiki/pointfreeco/swift-composable-architecture/migration/overview.md): Learn how to upgrade your application to the newest version of The Composable Architecture - [Migrating to 1.17](https://mintlify.wiki/pointfreeco/swift-composable-architecture/migration/v1-17.md): The @Shared property wrapper and related tools have been extracted to their own library so that they can be used in non-Composable Architecture applications - [Migrating to 1.18](https://mintlify.wiki/pointfreeco/swift-composable-architecture/migration/v1-18.md): Stores now automatically cancel their in-flight effects when they deallocate. And another UIKit navigation helper has been introduced - [Migrating to 1.19](https://mintlify.wiki/pointfreeco/swift-composable-architecture/migration/v1-19.md): Store internals have been rewritten for performance and future features, and are now compatible with SwiftUI's @StateObject property wrapper - [Navigation Overview](https://mintlify.wiki/pointfreeco/swift-composable-architecture/navigation/overview.md): Learn about the two main forms of state-driven navigation in TCA: tree-based and stack-based navigation, and their tradeoffs - [Stack-based Navigation](https://mintlify.wiki/pointfreeco/swift-composable-architecture/navigation/stack-based.md): Learn about stack-based navigation with collections, including domain modeling, feature integration, testing, UIKit support, and more - [Tree-based Navigation](https://mintlify.wiki/pointfreeco/swift-composable-architecture/navigation/tree-based.md): Learn about tree-based navigation with optionals and enums, including domain modeling, feature integration, testing, and more - [Quick start](https://mintlify.wiki/pointfreeco/swift-composable-architecture/quickstart.md): Build your first feature with TCA in minutes with this step-by-step guide ## OpenAPI Specs - [openapi](https://mintlify.wiki/pointfreeco/swift-composable-architecture/api-reference/openapi.json)