On this page
Overview
The Composable Architecture (TCA) is a Swift library for managing application state, user actions, side effects, and tests with one consistent model. Features are defined with @Reducer and @ObservableState, driven through Store, and composed into larger SwiftUI or UIKit applications.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Keep State, Action, and Reducer logic inside each feature domain
A feature uses @Reducer, an @ObservableState State type, an Action enum, and a Reduce body to describe state transitions and effects. UI events and business logic therefore follow one explicit domain model.
Sources: [2]
Drive runtime behavior and tests from the same reducer
SwiftUI views hold a StoreOf<Feature>, observe state, and send actions. TestStore can assert state changes and actions returned by effects step by step, including integration tests for composed features.
Sources: [2]
Best fit
Fits iOS applications that need feature modularity around complex state and side effects
It is especially useful when navigation, dependencies, asynchronous effects, and shared state need consistent conventions across a growing SwiftUI or UIKit application.
Sources: [2]
Before adoption
Version 1.26.2 uses Swift tools 6.4, iOS 16+, and includes traits for the path to 2.0
Package.swift for 1.26.2 uses Swift tools 6.4 and Swift 6 mode, with minimum platforms of iOS 16, macOS 13, tvOS 16, and watchOS 9. It also exposes ComposableArchitecture2Deprecations traits so teams can surface upcoming major-version migrations incrementally.
Official sources
- [1]pointfreeco/swift-composable-architecture — GitHub repository(2026-10-06)
- [2]Composable Architecture 1.26.2 — README(2026-10-06)
- [3]Composable Architecture 1.26.2 — Package.swift(2026-10-06)
- [4]Composable Architecture 1.26.2 release(2026-10-06)
- [5]Composable Architecture MIT license(2026-10-06)
Supplemental curator note
TCA fits SwiftUI and UIKit applications that need consistent conventions for complex state, navigation, dependencies, and asynchronous effects. Version 1.26.2 requires Swift tools 6.4 and iOS 16+, so check the project toolchain and deployment target first.
Try it in 3 steps
- 1
Add ComposableArchitecture 1.26.2
Pin the reviewed release. Version 1.26.2 uses Swift tools 6.4 and requires iOS 16 or newer.
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", exact: "1.26.2") - 2
Define a minimal reducer feature
Follow the README Basic Usage pattern and keep State, Action, and Reducer in one feature domain.
import ComposableArchitecture @Reducer struct CounterFeature { @ObservableState struct State: Equatable { var count = 0 } enum Action { case incrementButtonTapped } var body: some ReducerOf<Self> { Reduce { state, action in switch action { case .incrementButtonTapped: state.count += 1 return .none } } } } - 3
Create a Store and send an action
Build the Store from the same reducer and verify the minimal action-to-state-update path.
let store = Store(initialState: CounterFeature.State()) { CounterFeature() } store.send(.incrementButtonTapped)
Growth
Growth trends · Last 30 days
14,952 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 10
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- architecture
- composition
- modularity
- testability
- swiftui
- uikit
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Starscream8,641 Stars
3 shared tag(s) · 2 shared category(s) · Same language
connect RFC 6455 WebSockets in Swift and handle text, binary, TLS/WSS, and compression events
Swift - Nimble4,836 Stars
3 shared tag(s) · 2 shared category(s) · Same language
express Swift test expectations with expect, matchers, and polling assertions
Swift - DeviceKit4,733 Stars
3 shared tag(s) · 2 shared category(s) · Same language
augment UIDevice with value-typed device models, simulator detection, battery state, and hardware capabilities
Swift - SnapshotTesting4,362 Stars
3 shared tag(s) · 2 shared category(s) · Same language
detect regressions by comparing UI, requests, JSON, and other values against reference snapshots
Swift - Apollo iOS4,037 Stars
3 shared tag(s) · 2 shared category(s) · Same language
generate type-safe Swift models from GraphQL and combine queries with normalized caching
Swift - Flutter179,343 Stars
3 shared tag(s) · 2 shared category(s)
build mobile, web, and desktop UI from one Dart codebase
Dart
Report incorrect information
Tell us if any listing information is incorrect or outdated.