DroidKaigi2018 〈マルチモジュールのすヽめ〉というセッションについて
この記事では Droidkaigi2018で自分が話す 〈マルチモジュールのすヽめ〉というセッションにおいて、 何を話すか・何を話さないか を共有します。
想定と違ってがっかりしてしまう方がいないことを願って。
また逆にこの記事で興味を持ってくれる方がいることを願って。
セッションのゴール
自分のセッションには下記のようにゴールを設定しています。
- good: 聞いてくれた方が「...(マルチモジュールわんちゃんありやな)...」って思ってもらえた
- very good: 聞いてくれた方のうち誰かが実践してくれた
話すこと
上記のゴールを満たす為に大まかには下記を説明することに焦点をおきました。
- マルチモジュールでアプリを実装することの有効性
- マルチモジュールの導入 (実践イメージが湧くレベル)
実際のagendaは下記となっております。
- なぜマルチモジュール化するのか
- マルチモジュール化するデメリット
- モジュールの分け方について
- Case Annict
- 実際にマルチモジュールにしてみる
- モジュール間の連携について
下記のようなストーリーを思い浮かべてます。
章 | 聞いた後の想定する感想 |
---|---|
なぜマルチモジュール化するのか | でもデメリットはあるんでしょ? |
マルチモジュール化するデメリット | メリット・デメリットはわかった。じゃぁ実践するには? |
モジュールの分け方について | 具体的には? |
Case Annict | 分け方はわかった。実際どうするの? |
実際にマルチモジュールにしてみる | なにか困ることない? |
モジュール間の連携について | (実際に聞いた人のみぞ知る) |
各章の聞いた後の疑問がなるべく次の章で解決するように、最後には実装イメージが湧くようにと考えました。
話さないこと
下記は話しません。
- instant appsについて (キーワードで触れるレベルです)
- kotlin nativeについて
- その他agendaにないこと
元の仮案とのdiffについて
下記が元のdescriptionです。
自分の関わるAndroidのアプリ開発ではマルチモジュールな作り方を実践しています。 その中で得られた知見を共有します。 下記がagenda(仮)です。 - マルチモジュールに分けた動機 - メリット - デメリット - 技術的な実現方法 - ハマりポイント & 気をつける場所 - 途中からマルチモジュール化する - etc
それぞれ統合、名前の変更、除外などあります。
マルチモジュールに分けた動機
〈なぜマルチモジュール化するのか〉に統合されています。
メリット
〈なぜマルチモジュール化するのか〉に統合されています。
デメリット
〈 マルチモジュール化するデメリット〉と名前を変えました。
技術的な実現方法
〈実際にマルチモジュールにしてみる〉と名前を変えました。
ハマりポイント & 気をつける場所
とくに触れたかった〈モジュール間の連携について〉に絞りました。
途中からマルチモジュール化する
agendaのストーリーから外れるために今回は外しました。実践経験あるのでオフィスアワーで聞いてくださいませ。
話したかったけど外したこと
入らなかったり、あまり膨らまなかったりしたので下記は外しました。
- resource moduleを作るといいよ
- API client moduleを作るといいよ
- 途中からマルチモジュール化する
上記について、またはそれ以外でもオフィスアワーに参加していますのでなんでも聞いてください。