Androidアプリにおいて、起動のもたつきやスクロールのカクつきは、ユーザーの離脱やCVR低下に直結する重大な課題です。しかし、プロジェクトが複雑になるにつれて、Firebase Performance Monitoring などの一般的な手法では、「なぜパフォーマンス指標が落ちているのか」「どこがボトルネックなのか」を突き止めるのが難しくなります。 たとえば、画面の初期状態が表示されるまでの時間(Time to First Frame)が遅い場合、Data層の処理実行や画像のデコードが遅延していると思われがちですが、実際には、TCPコネクションの確立やCDN経由でのDNS解決など、アプリの外側の非同期処理が真因であるケースもあります。また、I/Oの詰まりがパフォーマンスの不具合に繋がる場合があり、必ずしもネットワークそのものが原因とは限らないため、手元で再現できないボトルネックの調査は非常に困難です。 本セッションでは、バックエンドで広く使われている「分散トレーシング(Distributed Tracing)」の概要と、それをAndroidアプリでどのように活用できるかを解説します。また、pixivアプリが世界中の多様な環境のユーザーから愛用される中で、高品質を維持するために、アプリ内の処理とシステム処理の因果関係を明らかにし、パフォーマンスの問題を特定しやすくする手法や、モニタリングの工夫についても紹介します。 さらに、Firebase Performance や Systrace との違いを踏まえながら、OpenTelemetry を使ったトレーシングの設計・運用、モバイル向けにカスタマイズした SDK の実装例、そして実際の改善事例を交えて、「読み込みが遅い」の正体をつかむための技術と仕組みをわかりやすくお伝えします。 想定目次 - なぜ従来の手法ではパフォーマンスの原因を特定が難しいのか - 分散トレーシングとは? - Trace / Span / Context Propagation の基本概念 - OpenTelemetry とそのエコシステム - Firebase Performance, Systrace との比較 - Androidアプリ向け分散トレーシングの設計と導入 - 測定単位の粒度 - モバイル向け軽量SDKの設計と実装例 - データ収集とサンプリング - 可視化と運用 - Grafana等を用いた観測方法 - アラート設計のベストプラクティス - 課題解決フローと導入効果 - パフォーマンス問題解決フローの実例:観測→パフォーマンス指標の遅延→調査→改善→観測 - 考察と展望 - 導入前後での開発プロセスの変化 - 分散トレーシングの持つ将来的な可能性(AIと連携したモニタリングについてなど)
andousan Android Engineer @ pixiv.inc
■Androidエンジニア - Android アプリのObservabilityに興味がある方 - Android アプリのパフォーマンス改善全般に興味のある方 - Android アプリのパフォーマンス問題の原因特定が難しいと感じている方 - Firebase Performance Monitoring に限界を感じている方 ■プロダクトマネージャー・チームリーダー - アプリの現状のパフォーマンスを把握したい方 - アプリ品質を向上させたい方 ■QAエンジニア - アプリのSLO/SLA/SLIなどパフォーマンス指標のモニタリングに携わる方