Open7
Androidマルチモジュール移行方法

マルチモジュール全然わからん
マルチモジュール化のメリットやどういう粒度で分割すべきかというのは先人たちが共有してくれているけど、具体的にモジュールを分けていく手順については詳しい解説が見つからなかった。
以下に手探りでマルチモジュール化していった方法を投稿していく。

参考文献メモ
- モジュール作成方法
- バージョンカタログ
- build.gradle.kts 設定の共通化
- https://qiita.com/irgaly/items/b735b61ff73d43e8741d#version-catalog-の設定
- https://docs.gradle.org/current/samples/sample_convention_plugins.html
- ビルドロジックの共通化
- https://qiita.com/gottie/items/67ee341fb379b5d58af6
- https://zenn.dev/nagaoooon/articles/edef0104bb764b
- Now in Androidリポジトリ
- DroidKaigi 2023リポジトリ

そもそもモジュールって
メニューのFile -> New -> New Module...から、またはプロジェクトビューのプロジェクト上で右クリックしてNew -> Moduleから新しいモジュールを追加することができる。
このモジュールに分割して管理することをマルチモジュール化対応と言う
メニューから作成する場合
プロジェクトビューから作成する場合

Version Catalog
モジュールを分割する前にまずはVersion Catalog対応をする。
Version Catalog対応は必須ではないけど、この後ビルドロジックを共通化する際にしておいたほうがよさそう(というか参考にしているレポジトリやサイトの大半がVersion Catalogで管理しているのでそれに習うのが楽そう)。
Version Catalogに移行する方法はAndroid developersに分かりやすい解説記事があるのでそちらを参照

ビルドロジックの共通化

ちょっと前まではbuildSrcでビルドロジックを共通化するのが流行りだったけど、今はCompositon buildが主流のよう。
buildSrcだとちょっとした変更でもフルビルドとテストが走って時間がかかるけど、Composition buildはそれがないらしい。かわりに設定が少し複雑。

(Android)Composite Build でビルドロジックをまとめるが詳しい。
この記事とNow in Android, DroidKaigi2023のリポジトリを見ながら見様見真似でビルドロジックを切り出した。