Repolode
pointfreeco

pointfreeco/swift-composable-architecture

状態管理の一貫性、機能の合成、副作用の制御、充実したテスト支援を備えた、Appleプラットフォーム向けアプリ構築用Swiftライブラリ。

スター
14,979
フォーク
1,678
未解決の Issue
26
最終コミット
14 日前

これは何?

Composable Architecture(TCA)は、一貫性がありテストしやすい方法でアプリを構築するためのSwiftライブラリです。State型、Action型、状態を更新してEffectを返すReducer、ロジックを実行してSwiftUIまたはUIKitのUIを駆動するStoreを中心に、機能を構成します。

大規模な機能は、より小さく独立したコンポーネントに分割して組み合わせられるため、複数のXcodeターゲットやSwift packageにまたがるモジュール化されたコードベースを構築できます。ネットワークリクエストなどの副作用は、値としてReducerから返されるため、テストではモックの依存関係に置き換えられます。また、アクションの送信やEffectからのデータ反映に伴う状態の変化を、段階ごとに検証できるTestStoreも含まれています。

iOS、macOS、iPadOS、visionOS、tvOS、watchOSに対応しています。Todos、Tic-Tac-Toe、Voice Memos、SyncUpsなどのサンプルアプリに加え、ナビゲーション、依存関係、テストに関するドキュメントや記事も提供しています。

主な機能

  • 01機能の状態をシンプルな値型でモデル化し、Actionを通じて更新します。
  • 02大きな機能を、別々のモジュールにも配置できる小さなReducerから合成できます。
  • 03副作用をReducerから返すため、テスト時に置き換えられます。
  • 04状態やEffectを段階ごとに検証できるTestStoreを提供します。
  • 05本番用とテスト用の実装を注入できる依存関係システムを備えています。
  • 06Appleプラットフォーム全体でSwiftUIとUIKitに対応しています。

ユースケース

  • 複数の画面で状態を共有するSwiftUI製iOSアプリの構築。
  • 明確な境界を持つ機能モジュールに、大規模なXcodeプロジェクトを分割。
  • ネットワーク呼び出しを伴うアプリのロジックに対するユニットテストや統合テストの作成。
  • UIKitアプリを一方向データフローのテストしやすいアーキテクチャへ移行。

クイックスタート

  1. 1

    Xcode または Package.swift にパッケージ依存関係を追加します

  2. 2

    コードでライブラリをインポートします

    import ComposableArchitecture
  3. 3

    State、Action、body を含む @Reducer を定義し、アプリで Store を作成します

使う前に知っておきたいこと

  • Apple プラットフォーム(iOS、macOS、iPadOS、visionOS、tvOS、watchOS)のみを対象としています。
  • 自然に使いこなせるようになるには、独自の概念(state、actions、reducers、effects、stores)を学ぶ必要があります。

トピック

よくある質問

swift-composable-architecture とは?
状態管理の一貫性、機能の合成、副作用の制御、充実したテスト支援を備えた、Appleプラットフォーム向けアプリ構築用Swiftライブラリ。 Composable Architecture(TCA)は、一貫性がありテストしやすい方法でアプリを構築するためのSwiftライブラリです。State型、Action型、状態を更新してEffectを返すReducer、ロジックを実行してSwiftUIまたはUIKitのUIを駆動するStoreを中心に、機能を構成します。
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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト