## 概要
- 正社員として、自社プロダクトであるチケットリセールサービスのバックエンドおよびアプリ開発を担当(2022年5月〜2023年11月)。Web版とアプリ版の機能差分解消とコードのモダン化に取り組み、UXの向上を図った。
## 担当
- バックエンド開発(Rails)
- アプリ開発(React Native, TypeScript)
- エラー監視(New Relic, BugSnag)
- ビジネスチームとの連携
- 設計、コードレビュー
## 課題
- このサービスにはWeb版とアプリ版がありましたが、アプリ版の改修が2年以上行われていない状態でした。toC向けのチケットリセールサービスのため、アプリユーザー数が年々増加しており、アプリ側の改修が急務となっていました。
## 取り組み
- チーム内にアプリ開発の経験者が不在だったため、長期間放置されていたアプリ改修に私が挑戦しました。私自身もReactやアプリ開発の経験はありませんでしたが、React Nativeやモバイルアプリ開発に興味があったため、自ら希望して担当を申し出ました。
- 業務時間外にReact Nativeやアプリ開発をキャッチアップしながら、ビジネスサイドと綿密に連携し、仕様や開発の優先順位を協議しつつ進行しました。
## 工夫した点
- Web版とアプリ版での機能差分を解消するため、Web版のみで実装されていた機能をアプリにも追加しました。また、アプリ側は古いReact Nativeのコードを使用していたため、JavaScriptからTypeScriptへの移行、クラスコンポーネントを関数コンポーネントに置き換えるリファクタリングも実施しました。
- 新規機能追加と並行して、既存コードのリファクタリングをデグレを防ぎつつ進めました。ビジネスサイドのメンバーにも協力してもらい、STG環境でのQAを徹底して行い、リリース前の確認作業を確実に実施しました。
- 結果として、Web版とアプリ版の機能差分を解消するとともに、TypeScript化や関数コンポーネント化などのリファクタリングも完了し、保守性と拡張性の高いコードに改善しました。