以下に示すような GitHub repository を検索するアプリのリファクタリングを行いました。
- IDE:Android Studio Arctic Fox | 2020.3.1 Patch 1
- Kotlin:1.5.31
- Java:11
- Gradle:7.0.3
- minSdk:23
- targetSdk:31
- Kotlin data class File from Json
アーキテクチャとして選定しました。選定した理由を、構成するクラスとともに説明します。
Repository層を設けることで、ViewModelの保守性、テストのしやすさが向上すると考えたのでこの層を設けました。
検索結果の保持、Repositoryを挟んだAPI callをするためにこのクラスを定義しました。
Ktor-Clientから、Retrofitを利用したAPI通信方法へ移行するリファクタリング
Repository層から、Flowを使って検索結果のListをcollectし、View側へと通知するために使用
検索クエリを入力後に、検索結果が表示されるまでの間の circular progress indicator を実装