リファクタリングのセッションでは作業を進めていく様子を詳しく紹介
- 2022/10/05 15:55-16:20 長期運用アプリのリファクタリングを考える
リファクタリングについてのセッションです。Androidはバージョンの更新やJetpackなどのライブラリスイートの刷新、JavaからKotlinへの言語の選定などさまざまな外部要因の変化に晒されており、サービス仕様やチームメンバーの入れ替わりなど内部要因にも変化があります。
そのためアプリの更新は長期運用アプリにとって必要不可欠ですが、単なるライブラリの更新や新仕様の実装だけでなく、未来の仕様に対する変更がしやすいアプリを目指す必要があります。セッションでは古いアプリを刷新する場合を例にとり、「理解・整理」「分離」「置き換え」と段階を踏み、リファクタの作業を進めていく様子が紹介されていました。
「理解・整理」フェーズでは既存コードの書式統一やメソッド単位のリファクタをしつつ動作仕様の理解、「分離」フェーズではFat Activityをレイヤ化などでロジック分離、「置き換え」フェーズではSingle Activity化へ置き換えていく実践的な解説をされていました。
当社では、先に挙げたCoincheck 4.0のフルリニューアルの取り組みの中で、ライブラリスイートの最新化やアーキテクチャの再構築のため、iOS/Androidともにフルスクラッチでアプリを開発しました。さらにリニューアル後にドメインの整理を行い、内部のEntityにも大幅な変更を加えるなど、新仕様に対する変更のしやすさを重視した設計になっています。
今後も長期運用されることが想定される当社のアプリですが、こういった設計の見直しは日常的に行っており、新機能実装時などの工数の低減や品質の向上を目指しています。
「DroidKaigi」を通じて感じたコミュニティの大切さ
DroidKaigiはここ数年、動画配信のみの開催でしたが、開発者が一堂に会してのオフラインイベントは数年ぶりの開催となり、非常に活況なイベントという印象でした。直接お会いすると登壇者のみならず参加者の方々の熱量を肌で感じられ、モチベーションアップに繋がりました。
近年、Androidの技術トレンドも大きく変化していることを公式サイトや開発者のブログで知ることはできていたのですが、言語化が難しい小さな悩みを共有できるのはこうしたオフライン開催ならではでないかと、コミュニティの大切さをあらためて認識したカンファレンスでした。いちiOS/Androidエンジニアとして、また来年の開催も楽しみにしております!