大規模なアプリのマルチモジュール構成の実践 by giginet

iOSDC Japan 2021
採択
2021/09/19 11:30〜
Track A
レギュラートーク(40分)

大規模なアプリのマルチモジュール構成の実践

giginet giginet giginet

近年、1つのiOSアプリケーションを複数のモジュールに分割してビルドするマルチモジュール構成を採用したプロジェクトが増えてきています。

我々のアプリでは、過去2年間で、アプリ全体を30個程度のモジュールに分離し、十数名の開発者で年間50回程度のリリースを実現しています。

この構造により、各機能が疎結合になったことや、単機能でのアプリ実行によるビルド時間の高速化、Xcodeの動作速度アップといったDX改善の恩恵を受けることができました。

しかし、その構造を実現するには、モジュール構成のデザインや、依存関係の解決といった技術上の課題も多く存在しました。
また、如何にアーキテクチャを整備できたとしても、チーム全体で日常的に利用していくために、モジュール分離を促進していくための仕組み作りも不可欠です。

本セッションでは、我々のアプリ開発を通して培った、実践的なマルチモジュール開発についての実情をお伝えします。
以下の論点について網羅的にお伝えする予定です。

  • マルチモジュール化以前
    • なぜマルチモジュール化が必要だったのか
    • どのようなマルチモジュール構成に向いているか
  • モジュールの構成
    • アプリ全体のプロジェクト構成をどのように分離すべきか
  • 依存解決
    • 型安全なモジュール間の相互依存解決の仕組み
    • 外部ライブラリの利用や抽象化
    • テストや動作確認環境の整備
  • チーム内にモジュール分離を用いた開発を浸透させるには
    • コード生成機によるモジュール分離の促進
    • ドキュメントやポリシー整備のノウハウ
    • メタプログラミングやlinter、コンパイル時チェックを利用した機械的な制約手法