Plaidのマルチモジュール化を調べてみた
しほちゃんです。
所属プロジェクトでマルチモジュール化を進めていきたいと思い、Plaidのマルチモジュール化について調べたことをメモ程度ですが残しておこうと思います。 まとめていたら書いていることがまとまらなくなってきたので、あまり深く考えずに小分けにざざっと書いてしまいます。
内容はPatchwork Plaid — A modularization storyの記事と、nickbutcher/plaidのリポジトリに基づきます。
Plaidについて
- Google製のニュースアプリのサンプル
- マテリアルデザインとDynamic Feature Moduleが適用されたアプリ
- ニュースソースのDesigner News, DribbbleなどそれぞれがDynamic Feature
- 検索、このアプリについてなどの各画面もDynamic Feature
- 各Dynamic Featureはbaseのアプリに含まれず、必要に応じてオンデマンドに配信
Plaidでのマルチモジュール化
- 60%以上のインストールサイズの削減
- コードの衛生面の向上
- オンデマンドでのコード配布
非マルチモジュールプロジェクトのモジュール化の手順
- すべてのコードとリソースをcoreモジュールに移動
- モジュール化できる機能を特定
- Featureモジュールを作成しコードとリソースを移動
coreモジュール
- はじめにすべてのコードとリソースを移動する
- リファクタリング後にはFeatureモジュール間で共有されるコードとリソースのみが残る
- これにより依存関係を明確に分離可能