続・Android版Misocaのマルチモジュール対応

みなさんこんにちは、こまたつです。
突然ですが去年のこの記事を覚えていますか?

マルチモジュール化の波にのるべくモジュール分割にとりくんだのですが、しばらくころがしてみてこの分割方法ではイマイチということがわかってきました。
人生には失敗がつきもの、良くない点を整理して次へ進もうと思います。

まず今どうなっているか

冒頭にリンクをはった記事に詳細がありますが、だいたい次のような分割になっていました。

f:id:komatatsu:20190215150308p:plain
旧モジュール分割プラン

文書ごとにモジュールが分かれています。

なにがよくなかったか

まずはこの画面をみてくれ

f:id:komatatsu:20190215150358p:plain
取引先別文書一覧

こいつをどう思う?

すごく...モジュールをまたいでいるんですね。
そもそも各文書は似通ったデータ構造をしているのでクラスも抽象化されています。
これでは文書をさわると分割した別のモジュールにも影響が出てしまい、モジュール分割の恩恵をあまり受けられません。 *1

手間だけが増えてしまいビルドも早くならないし、モジュールをまたぐ画面があるので結合度が高くかえって複雑になってしまいました。

じゃあどうするの?

f:id:komatatsu:20190215150541p:plain
モジュール分割プラン2

これがモジュール分割プラン2です。
Misocaアプリはまだ機能も少ないので、ログインなどの今後追加される機能でも絶対必要な物さえ分離できていればちょうど良さそうというのがわかりました。
秘密の新機能が気になりますよね、私も気になります。

モジュール結合では分割時に追加したものを消したり移したりすれば特に躓くところはありませんでした。
AndroidStudioの表示がおかしいな?と思ったらAndroidStudioを再起動したりcleanしたりしてみましょう。

初挑戦で不安も多かったですが実際に試してみることで、資料を読むだけじゃわからない勘所がつかめました。
時間は失ってしまいましたが、この経験は今後のアプリ開発に活かされることでしょう。

採用情報

Misocaでは一緒にチャレンジしてくれるモバイルエンジニアを募集しています。
失敗を重ねて成功を掴みましょう。

*1:これを考えた当時は見積書だけInstantAppsにできるとよさそうみたいな構想があった