モジュール分割について
- CleanArchitectureに関わるDependencyDiagram(簡易版)

- 要点
- HogeDependencyモジュールに依存することで、上位レイヤーの具体を知らずに済む
- Errorは上位レイヤーのErrorの具体を知る必要があるのでErrorモジュールとして分離し依存させる
- Entityとして扱う考えもあるが、Entityはあらゆるモジュールから依存されるので、ほとんどのPackageにとって不要なError型は別モジュールとして扱うことにした
- Presentationモジュールの内部は、さらに画面ごとのモジュールとして細分化されている
- 画面間で具体を知らずに遷移可能にするためにRouter関連のモジュールが必要
- PresentationはRouterInterface(抽象)とRouterCore(基盤処理)に依存
- Router(具体)が各画面に依存
- 画面間で具体を知らずに遷移可能にするためにRouter関連のモジュールが必要
モジュールごとの特記事項
- Layers
- Infrastructure
- OpenAPI
- Application
- Interactor
- mock用の関数をDEBUG専用で用意。2秒置いてMockを返すようにしてる
- Error
LocalizedErrorに準拠
- Interactor
- Presentation
- ScreenModuleを構成要素の説明
- 単一方向のデータフローっぽくするための工夫
- ViewDataの更新をPresenter経由に限ることで、データフローの単一方向を維持

- ViewDataの更新をPresenter経由に限ることで、データフローの単一方向を維持
- CocoaPodsに依存する画面はAppTarget内部に配置
- Router
- UIKitを用いた遷移を呼び出す
- Infrastructure
技術メモ