■ライブ配信アプリ
ユーザー数 2万
<<案件概要>>
(状況)
ユーザー数の増加や機能拡張に対応できるよう、アプリ全体のスケーラビリティを高める必要がありました。しかし、当初の実装は命令型UI(XMLベース)と一部複雑化した構造が残っており、コードの可読性・再利用性・保守性に課題がありました。そのため、宣言的UIへの移行、機能単位でのリファクタリング、データストリーム設計の見直しを通じて、将来的なスケールや継続的開発に耐えうる構造へ改善を図りました。
(課題)
コードの構造をスケーラブルかつメンテナブルに再設計し、今後のユーザー増・機能追加に伴う開発コストや障害リスクを最小化すること。
(行動)
・命令型UIから Jetpack Composeによる宣言的UIへ段階的に移行
・UIと状態管理の結合度を下げるため、ViewModel / UseCase / Repository の責務を明確化し、アーキテクチャを再設計
・各機能単位での 分離可能なモジュール設計 にリファクタリング(Clean Architectureをベースに構築)
・イベント処理・非同期データフローに関して、RxJava → Kotlin StateFlow への全面的な置き換えを実施し、フローのシンプル化と学習コストの低減を実現
(成果)
レガシーコードの置き換えを行い、今後の実装において、拡張性を持たすことができました
<<担当業務>>
・要件定義
・基本設計・基本設計書作成
・詳細設計・詳細設計書作成
・実装
<<習得スキル>>
・Jetpack Composeによる宣言的UIの設計・実装スキル
・ViewModel / UseCase / Repository を用いた責務分離と状態管理のアーキテクチャ理解
・Kotlin Coroutines / StateFlow による非同期データフローの構築スキル
・RxJavaからStateFlowへの置き換えに伴うデータストリーム設計の再構築経験
・Clean Architecture に基づいた機能単位のモジュール分割およびリファクタリング実践
・Androidアプリにおける拡張性・保守性を意識した設計・改善の知見
<<コメント>>
・Jetpack Composeによる画面設計・実装を1から行う中で、宣言的UIの理解が深まり、UI状態とデータフローの関係性に対する知識がより一層高まった
・アーキテクチャや設計方針の見直しを推進する中で、技術的な背景や意図を理解することで、実装への自信に繋がった