Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase Performance を利用したアプリの起動時間高速化
Search
Akifumi Tominaga
May 20, 2024
0
98
Firebase Performance を利用したアプリの起動時間高速化
Akifumi Tominaga
May 20, 2024
Tweet
Share
More Decks by Akifumi Tominaga
See All by Akifumi Tominaga
Firebase Remote Config を利用した Feature Flags の導入
decoch
0
120
依存関係を静的解析しよう
decoch
2
370
CircleCIを使って 「完全サーバーレス運用」を 実現した話
decoch
2
430
GOで作るCLIツール
decoch
1
320
DBFlute Introで 気軽にDBコメント変更
decoch
0
120
DBFlute-intro
decoch
0
53
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
For a Future-Friendly Web
brad_frost
175
9.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
How GitHub (no longer) Works
holman
310
140k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Raft: Consensus for Rubyists
vanstee
136
6.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Transcript
Firebase Performance を利⽤した アプリの起動時間⾼速化 SODA Flutter Talk #1 #SODAFlutter
Agenda • 自己紹介 • SODAについて • Firebase Performance Monitoring とは
• 導入背景 • 起動時間の改善のためにやったこと • 再発防止
株式会社SODA • 2022年1月~ アプリエンジニア • 2022年8月~ エンジニアリングマネージャー 個人事業主 株式会社Brhino
株式会社ビズリーチ 冨永 晃史
SODAについて
鑑定付き 利用者数 No.1 スニーカー‧トレカ フリマアプリ
正規品を安心して購入できるC2Cマーケットプレイス スニダンが取引の間で真贋鑑定をすることで、偽造品の心配をすること なく取引ができる Product スニーカーダンク C2Cマーケットプレイス ブランド公式取扱アイテムやここでしか入手できない Exclusiveなアイテムを取り揃えるファッション・コレクティブ
オンラインストア
スニーカー、トレカの新作がどこで・いつ・いくらで発売するのかを毎日発 信。全情報をまとめることで、スニダンさえ見ていれば、新作情報を漏れ なく確認することができる コレクティブルなカルチャーに特化した国内最大級のSNS X(旧Twitter)やInstagramなど他SNSにはない深くニッチな情報が飛び 交っている Product スニーカーダンク コミュニティ
メディア
Product スニーカーダンク 海外の市場環境に合わせて ローカライズしたグローバル向けのアプリを展開中 海外版アプリをリリース 北米・アジア圏を中心に16カ国で展開中
Business Model ビジネスモデル
3年で 100万人 → 600万人 MAU プロダクトの急成長
負荷スパイク(人気スニーカー発売など) 1万〜2万 rps リクエスト数 プロダクトの急成長
Dartファイル数 約3,700ファイル Dartコード行数 約417,000行 ソースコード - Dart プロダクトの急成長
Firebase Performance Monitoring とは
アプリのパフォーマンス特性を把握できる アプリからパフォーマンス データを収集し、Firebase コンソールでデータのレビューと分 析を行う その情報を使用してパフォーマンスの問題を解決できる https://firebase.google.com/docs/perf-mon?hl=ja Firebase Performance
Monitoring とは
導⼊背景
SNKRDUNK は元々 WebView で作られたアプリ 現在ではFlutterエンジニアが増え、徐々に Flutter への移行している Flutter 化の最初のリリースをする際に社内から起動時間が遅くなっているというフィー ドバックがあった
Flutterエンジニアが目視で起動時間を何回か測定し比較をしたところ明確な差がなく 修正を行わなかった 起動時間の低下疑惑
起動時間の低下疑惑 手動でつらい😭 試行数が少なくデータの信頼性に疑問 ユーザーの手元の状況はわからない
起動時間を計測し監視をできるようにしていきたいため、Firebase Performance Monitoring を導入 SNKRDUNK は初回起動のみ表示する画面があり起動時に初期化処理が行われて る。 導入する際に Firebase Performance
Monitoring でデフォルトで計測できる起動時 間だけでなく、起動から初期化処理完了後に初めて画面が表示されるまでの時間もカス タムコード トレースで計測 導入したこと
導入したこと
起動時間の改善
導入しアプリを長期で運用していたところ、起動時間が遅いというフィードバックが上がっ たため、Firebase Performance Monitoring を使って調査 特定のバージョンから起動時間が遅くなっていることがわかったためリリースの差分を 確認し原因の特定を行った 原因は、起動時に不要な非同期処理が入っていたこと、並列実行できる処理が直列で 実行されている箇所があったため修正しリリース 起動時間の改善
起動時間を 76% 高速化!! 起動時間の改善
再発防⽌
リリース時にFlutterエンジニアが起動時間が遅くなっていることに気が付かなかったと いう課題があった Firebase Performance Monitoring のアラート機能を設定し、しきい値を超えたら開 発者にアラートが飛ぶように改善 再発防止
長期でアプリを運用している徐々にパフォーマンスが悪くなることがある Firebase Performance Monitoring を使えばパフォーマンス計測が行え、ボトルネッ クの特定に役立つ アラートの設定をすることで、問題が起きたときに検知できる まとめ
質疑応答
ご清聴ありがとうございました