マンション管理アプリ
### 使用した技術 MVVM, Kotlin, Jetpack, Android Architecture Component, Retrofit, OkHttp, Kotlin Coroutine, GitHub Actions, CircleCI ### 担当 設計<br> 開発<br> 保守・運用<br> CI/CD設計開発<br> レビュワー<br> ### 開発内容 設計段階でアサインされ、開発、テスト、運用保守まで担当しました。 Pure MVVMでViewModelのロジックが複雑になってしまう問題をRealmをStoreとしてfluxの要素を加えることで、Fat ViewModelにならずに済むMVVM + fluxのアーキテクチャで設計いたしました。 Android Architecture Componentを積極的に取り入れ、Navigation Component, ViewPager2, LiveData, ViewModelなど最新の技術を使用しました。 HTTP通信にはRetrofit, Okhttpを使い、非同期処理にはCoroutineを使用しました。 100を超える画面がある中で、80画面近く実装し、20画面以上の共通化を行いました。 またテックリードが気づかないRealmの落とし穴や並列処理の修正も行いました。 サーバーサイドが遅延していてなかなかAPI来ず、納期が危なかったでしたが、1日3本近くAPIを繋ぎ込み結局合計80本近くAPIの繋ぎ込みを行いました。 またViewPager2の中のViewPager2の中にRecyclerViewが3つあるという複雑な画面でかなりレンダリングが酷かったものを、Epoxyと同じような理論で大幅に改善もしました。 開発途中で新人がアサインされる中、1人称で開発を進め、また新人教育もしながらという経験もございます。 AndroidとiOS間でデザインに差異がある際はデザイナーとiOSチームと話し合いをし、どれが一番OSに最適なデザインかなどを提案をしました。 またサーバーサイドの遅れを取り戻すべく、API仕様書を定義しサーバーサイドの開発高速化にも努めました。 また、アプリチーム内では導入したことのなかったCI/CDの導入も進めました。 初めはGithub Actionsから始め、プルリクエストがオープンされたタイミング、レビューでApproveが出されたタイミング、マージされたタイミングなど様々なトリガーを駆使し、レビュー以外の工程をほぼ自動化しました。 CI/CDを導入したことにより、作業効率が20%ほど向上しました。 Github Actionsは従量課金ということもあり、時間のかかるリリースビルドやLintチェックなどはGithub Actionsで行うと、お金が膨大にかかってしまうため、コンテナ数が制限され順番待ちで処理を行うCircleCIへと移行し、コストダウンにも貢献致しました。 リリース作業も担いました