Skip to content

VIPERにTCA的な状態管理と副作用制御を組み込む

Notifications You must be signed in to change notification settings

FujimoriGit/TCAInspiredVIPER

Repository files navigation

TCAInspiredVIPER

このリポジトリは、従来のVIPERアーキテクチャにTCA(The Composable Architecture)の状態管理と副作用制御の考え方を取り入れたサンプルです。ビュー層ではStoreを介して状態を操作し、ビジネスロジックはInteractorにまとめ、副作用はEffectとして抽象化します。

なぜTCAInspiredVIPERなのか

一般的なVIPERではDI(依存性注入)の構造が複雑になりがちで、Presenterのロジックも肥大化しやすいという課題があります。本プロジェクトでは以下を目指しています。

  • Reducerによる一元的な状態管理
  • 副作用を値として扱うことでテスト容易性を高める
  • AppDependencyから各Contextへ依存を分配し、モック注入を容易にする

VIPERとの違い

役割
Feature Presenter 相当。ReducerとしてActionからStateとEffectを生成
Interactor ドメイン処理を担う純粋関数群。副作用はEffect生成メソッドとして提供
Effect API呼び出しや画面遷移など非同期タスクを表す値
Context AppDependencyを基にした各Feature用依存注入構造体

About

VIPERにTCA的な状態管理と副作用制御を組み込む

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages