※ 下記はGeminiによる本スライドの要約です
課題:ポート増加に伴うマップ表示の遅延
LUUPは電動マイクロモビリティのシェアリングサービスで、アプリ起動時に表示されるマップが重要な役割を担っています。 当初は約50箇所だったポート数が急増し、全ポート情報を読み込む方式では表示に著しい遅延が発生するようになりました。 これによりユーザーが利用を諦める可能性が懸念されました。
対策:必要な情報のみを取得・描画
この課題に対し、以下の2段階で対応しました。
ポート情報の取得:
課題:位置情報や車両数など、時々刻々と変化するポート情報を高頻度で取得する必要がありました。
対策:Geohashという技術を活用し、DBレコードにGeohash情報を含めることで、アプリは現在画面に表示されている範囲に必要なポート情報のみを効率的に取得できるようにしました。
アプリでのポート描画:
課題:Google Maps SDKを利用していましたが、大量のピンを描画するとパフォーマンスが低下します。
対策:画面内に表示されているピンのみを描画し、画面外に出たピンはマップから削除することで、描画負荷を軽減しました。
これらの工夫により、ポート表示速度は改善されました。
さらなるポート増加と継続的改善
しかし、2023年5月時点で約3,000箇所だったポート数は、現在13,000箇所以上にまで増加しています。 パフォーマンスを維持・向上させるため、以下の取り組みを進めています。
計測と評価: ポートが表示されるまでの時間をSLI(サービスレベル指標)として設定し、SLO(サービスレベル目標)を定義。 ダッシュボードで状況を可視化し、客観的な評価を可能にしました。
今後の対策: ポート情報のキャッシュや、ローディング表示の改善、ユーザーにとって真に必要なポートのみを表示するUI/UXの改善などを検討中です。
LUUPは今後もポート数の増加が見込まれるため、継続的なパフォーマンス計測と改善を通じて、ユーザー体験の維持・向上を目指しています。