🦔
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