アイスタイルでiOS開発をしています @mishimay です。 アイスタイルアドベントカレンダーの17日目の記事を担当します。 アイスタイルでは日々新しい試みを行っていますが、iOS設計のベストプラクティスがだんだんと収束してきたので一旦まとめておこうと思います。 目指す設計 理解しやすい 開発しやすい テストしやすい 方針 上記設計を実現するための基本的な戦略は、各コンポーネントを 疎結合 にすることです。 具体的には以下のような設計を目指します。 コンポーネントの役割を明確にする 依存関係を明確にする 現在、Clean Architecture 1 や MVVM などの設計手法を参考に以下のような設計を行っています。 設計 依存関係を一方通行にする 円の内側ほど抽象度が高く一般性がある 外側から内側は参照可 内側は外側の事情を知らなくて良い 内側から外側を参照したい場合は 依存関係逆