こんにちは、エンジニアリンググループ マルチデバイスチーム 新卒2年目の小林です。
先日、iOS版m3.comアプリのリファクタリングに関する記事が公開されましたが、Android版もリファクタリングを行っているため、Androidの方で起きていた問題とリファクタリングをどのように行っているのかについて紹介します。
- m3.com Androidアプリについて
- m3.com Androidアプリの課題
- ActivityやFragmentにビジネスロジックが書かれている
- 必要以上にコードが共通化されている、ActivityやFragmentが多段階に継承されている
- 責務が不明なクラスがある
- 多くのコードがJavaで書かれている
- リファクタリングの検討
- リファクタリングの大まかな設計やルール
- アーキテクチャをFluxに
- FluxとAAC ViewModelの使い分け
- StateFlowによるViewの状態の管理
- マルチモジュール化
- ライブラリのモダン化
- ID型を定義
- 過剰な継承の禁止
- ○○Helperや○○Serviceという名前のクラスを作らない
- アーキテクチャをFluxに
- リファクタリングの進め方
- UIの実装について
- Groupieによるリスト画面の描画
- Jetpack Composeの導入
- 最後に
- We are hiring!
m3.com Androidアプリについて
m3.comアプリは医療従事者専用なので中身はお見せできないのですが、一言で説明すると、トップ画面に様々なサービスのタブが並べられたポータルアプリです。サービスは 20個以上あります。
主力のアプリであるため、今後もサービスが増えたり保守運用を続けていく必要があります。 他に開発しているアプリはモダンな構成になっているのですが、このアプリは運用歴が長いこともあり、様々な課題がありました。
続きを読む