Firebaseを使ってもう2年間です。振り返って考えと、よく使っている機能は「Firebase Cloud Messaging」、「Firebase Crashlytics」と基本の分析機能ですが、他の機能はほぼ触っていません。

Firebaseの管理画面に「Performance」ずっと気になりますが、中々使い機会がありません。最近、やっと余裕な時間がありました。

この機会で、知りたい質問を持って、Performance機能を体験しました。

今回解決したい問題:

・「Performance」はなにものですか?

・「Performance」はなにができますか?

・導入の方法?

・今後のプロジェクトに導入価値がありますか?

 

「Performance」はなにものですか

「Performance」はアプリのパフォーマンスを監視する機能です。

監視内容として、アプリ起動時間、画面表示までレンダリング時間、APIのリクエスト時間などです。

全体パッと見ると下記のイメッジです

  

・「Performance」はなにができますか?

公式サイトに「パフォーマンス指標を国、端末、アプリのバージョン、OS レベルで分析できます」を記載しています。個人的に一番きになる分析内容はアプリのバージョンによって、ネットワーク通信パフォーマンス。具体的には下記のキャプチャーとなります。

分析すると、アプリを使っているAPIはほぼ50ミリ秒でレスポンスが返しました。(よし、良くやったね!サーバー設計が悪くない。APIのリクエストが軽いので、ユーザーのアプリ体験が上がるでしょう) あと、もう一つ良いところがここに見たデーターは実際のユーザーとサーバー通信時間なので、もっと正確的に今回使っている「クラウドサービス」は自分サービスにあっているかどうかを判断できます。

ここは一つAPIあるいはSDKのパフォーマンスが悪い例を上げます。

0%!!!(||゚Д゚)ヒィィィ! なに!!!使ってある計測ライブラリのリクエスト全部失敗しました。((T▽T) 昔のアプリをリニュアルしたので、一部コードを流用した問題を見つかりました・あと、なんでfacebookとtwitterのApiが遅い…気になるわ!!!)

 

もちろん、もっと詳しい情報は管理画面に見れます。

例:各国に対して通信パフォーマンスと通信内容のMIME タイプグラフ。

例:アプリバージョンによって平均パフォーマンス

色々参考できる情報が管理画面に確認できますので、きっとアプリの改善方向に参考できると思います。

・導入の方法

わりと簡単です。

iosの場合(podを使う):
参考リンク:https://firebase.google.com/docs/perf-mon/get-started-ios?hl=ja
pod 'Firebase/Core'
pod 'Firebase/Performance'

そのあと、初期化コード2行で終わり。

Androidの場合:
参考リンク:https://firebase.google.com/docs/perf-mon/get-started-android?hl=ja

・今後のプロジェクトに導入価値がありますか?

もちろん、結構価値があります。アプリ性能の改善とか、ユーザー実際のパフォーマンス問題を確認とか…色々使い道があります。

最後ですが、「Performance」計測情報の反映は24時間がかかります。

最初「Performance」を入れった時、次の日に確認してください。