### ニュースアプリ Gunosy, LUCRA の Android 開発・運用
- Gunosy https://play.google.com/store/apps/details?id=com.gunosy.android
### プロジェクト概要
- チーム規模:10 人
- 役割:Android エンジニア
### 主な業務と成果
#### 雨雲レーダーの実装
- Google Map を用いた現在地域にある雨雲の予想情報を提示する機能
- Design, Analytics Team と連携して、UI/UX と要件定義の設計からリリースまで、開発の実装をリードする
#### 動画広告の実装
- Android UI Layout を Component 化にして、SDK として他アプリの実装に使えるように、全 Product 実装の工数を削減
- 再生 SDK の ExoPlayer に Kotlin Coroutines の Multithreading 運用を加えて、Performance Tuning による動画再生のユーザー体験を向上
- Server-Side, Marketing Team を含めて、アプリの仕様設計を担当し、iOSを含めた実装の工数を削減
- 詳細:https://gunosy.co.jp/ad
#### ラジオ機能の実装
- Kotlin Coroutines Flow の初導入をリードし、Code Architecture: MVI を新しく設計・運用、今後開発の見通しと効率を向上
- Server-Side, Design Team と連携しながら、Animation を含めた複雑な UI 実装を行う
- 詳細:https://gunosy.co.jp/news/255
#### 通知の Push 改善
- Android における Notification の仕様を調査し、Marketing Team に通知の施策運用に対して、参考出来る情報を提供
- Android 13 通知権限の対応に伴い、他チームを巻き込んで、許諾フローの要件定義から実装まで自ら担当し、Push における許諾率と開封率を向上
#### チュートリアルの実装
- Android ユーザーの習性を調査し、Marketing, Analytics Team と議論しながら、仕様の要件定義を行う
- 初回起動のユーザーに対する施策の結果として、新規ユーザーの獲得数を向上
#### 開発環境の改善
- CI/CD に Lint Check, Automatic Release, E2E Unit Test を導入、新規・既存機能の安定性を維持しながら、アプリの Deploy 品質を強化
- MagicPod 自動化テストの運用にて、QA Team と連携しながら、CI/CD の実行 Pipeline, Scripts を完備
- CircleCI を Gihub Actions に移行することに当たり、Git Flow の概念を用いて Pipeline を再設計、Deploy 効率を向上
#### 継続的改善
- RxJava の Kotlin Coroutines 移行に伴い、RxJava の不具合解消と Crash の解決で、アプリのクラッシュフリー率を99.9%達成
- 広告 SDK の 全体 Refactoring にて、Facade Pattern の概念を導入することにより、複数アプリでの開発効率を向上
- App Start の起動速度を改善し、Firebase Performance Monitoring を通じて起動時間を50%短縮し、ユーザー体験を向上
#### 知見共有
- 技術勉強会の社内発表
- 新規施策の技術選定・実装設計
- 技術ブログの執筆
- CircleCI + Android UI Test スクリーンショットの確認仕組み https://tech.gunosy.io/entry/android_test_screenshot
- Android + Kotlin Coroutines の実用的な開発Tips https://tech.gunosy.io/entry/android_coroutine_tips
- Gradle + Kotlin + CircleCI による Android Google Play デプロイの自動化 https://tech.gunosy.io/entry/android_google_play_deploy
- Android MVI with Coroutines Flow https://tech.gunosy.io/entry/2022/10/17/140000