この記事は
マルチモジュールって何だろうと思い、恥を忍んでAndroidのお師匠さんに聞いてみた私が、「マルチモジュール完全に理解した」になるまでの物語である。
先生、マルチモジュールって何ですか?
これまでpackageとして管理していたある機能を持つまとまりを、モジュールとしてライブラリのように切り離して扱う方法のこと。
...ハァ?
あの...モジュールって何ですか...?
ていうか、パッケージって何...(小声)
- packageとは
app->com.ウンニャラカンニャラ
の下にあるフォルダ(?)
以下の画像におけるview
やviewModel
がパッケージとなる
- moduleとは
かの有名などすこい先生のリポジトリを見てみましょう。
GitHubClientForJetpackCompose
自動生成されるものは省きますが、例えばdataやuiなどがモジュールに当たります。
このように、今までapp
ディレクトリの中のcom.~~
配下で管理していたui(view, viewModel)
やdata(repository, usecase)
をapp
と同じディレクトリでモジュールとして切り離し、ライブラリのように扱うのがマルチモジュール(らしい)です。
じゃあ、appには何が入ってるの?
いままでapp配下で管理していたuiやdataなどのパッケージを、app外に出すということは、逆にapp内には何が存在しているのか。
もはや、appの存在意義は何なのか。
app配下にはAndroidManifestなど、build時に必要なファイルが格納されている。
appの実行を通じて、他のモジュールも実行され、最終的にアプリがビルドされる流れであるので、appの存在意義としては、アプリのエントリポイントのようなものと言えるでしょう。