🦔

TCA をざっくりと理解する

に公開

TCA とは?

The Composable Architecture の略。Composable は「組み換えが可能な要素」的な意味なので、複数の細かな部品や要素に分かれたものたちを結合していくことで、アプリを作っていこうぜ!っていう思想のアーキテクチャだってことがわかる。まあ、なんか Clean Architecture 的な思想と一緒だよね。

じゃあ、Clean Architecture と何が違う?

簡単に言うと目線感が違う。ということになるのか? Clean Architecture はどっちかというとアプリ全体の設計思想。で、TCA は UI の細かな状態管理から副作用のハンドリングまでの設計思想みたいなもの。そして、「State」っていう概念があることから、若干の Redux っぽさも感じる。というか、Swift 版 Redux のベストプラクティスがようやく確立された感がある?にぎわいの根源もそこらへんの気もする。SwiftUI との相性的な話もあるだろうけど

概念図

超適当な概念図はこんな感じ。登場人物は

  • State
  • Action
  • Environment
  • Reducer
  • Store

State

UIの状態とかアプリの状態とかの保持。

Action

その名の通り、クライアントで実行されるアクションのユースケース

Environment

外部通信周りのロジック。API とか DB とか。副作用には TCA フレームワークの Effect を使う

Reducer

Action を元に State を更新する役割

Store

View と Reducer を橋渡しするブリッジ

Discussion