Androidアプリ開発では、テストをするための端末が必要です。
でも、リモートワークだと会社の端末が持ち出せないので
テストが出来ません。。。
そこで上司と相談して、エミュレータで実行することになりました。
エミュレータについて知り、FirebaseAnalyticsのDebugViewの使い方、そしてコマンド実行の方法の順に進めていきます。
FirebaseAnalyticsとは?
簡単にいうと、アプリのイベントをトラッキングし、ユーザの嗜好などを分析するためのサービスです。
もっと砕いていうと、あらかじめアプリ内にトラッキングコードを組み込んでおき、実際にユーザがどのボタンを操作するのか、どのくらいの頻度で通信しているのか等を知ることができます。
この分析をすることによって、
んー、この機能はほとんど使われていないな。
この機能を削除する修正をしよう。
この前の修正で、投稿ボタンがよく押されるようになったぞ!
逆にこのボタンは、押されなくなったな…うーん。
…といった具合に、ユーザの考えていることを行動から分析することができます。
その分析の元となるデータを集められるサービスです。
DebugViewとは?
FirebaseAnalyticsの中の機能の1つです。
デバッグという言葉がある通り、動作確認の際に使用します。
アプリを操作して、リアルタイムにトラッキングすることができます。
使った感覚としては、
操作して3秒ほど時差があって反映されます。
エミュレータとは?
手元にあるパソコン上に、あたかもスマホが存在するかのように処理するソフトウェアのことです。
模倣装置とも呼ばれ、実機がなくてもアプリを実行することができます。
※「シミュレータ」とも呼びますが、厳密にはエミュレータです。
エミュレータのメリット・デメリット
メリットは以下のようなものです。
- 実機がなくても、様々なバージョンでテストを行える。
- 操作を全てPC上で行えるため、省コストを図れる。
デメリットは以下のようなものが挙げられます。
- カメラやヘッドフォン、Bluetoothなど機能に制限がかかる。
(最近では出来ることも増えたようです) - 処理がとても重く、PCのスペックに左右されやすい。
FirebaseAnalytics の DebugView を見る方法
Androidでは、以下のコマンドを実行する必要があります(Firebase公式サイト)。
adb shell setprop debug.firebase.analytics.app <package_name>
ADB(Android Debug Bridge)は、端末とPCを結びつけるためのコマンドラインツールです。
これを使うと、コマンドライン上でAndroid端末にインストールしたり、シェルコマンド実行などの操作が可能になります。
このコマンドを実行することで、
FirebaseAnalytics が端末を認識してくれるわけか!
事前にADBが必要なので、注意してくださいね。
エミュレータを起動する
実機をPCに繋いでいない状態で、アプリをAndroidStudioでビルドします。
「Create New Virtual Device」という項目を選んで、使いたい端末、OSバージョンなどを選択します。
ちなみに、初めてエミュレータで実行する場合、OSのダウンロードが必要になります。
1つのOSあたり約1GBあるので、通信量に要注意です!
複数のOSで実行したい場合は、その数だけダウンロードしなければなりません。
エミュレータの使い方については、公式サイトを参照ください。
端末の傾きを調整したり、電話機能などが使えます。すごい。
エミュレータをネットワークに接続する
私は、この時につまづきました。
Androidのエミュレータでは、ネットワークに繋がらない事象が起きることがあります。
エミュレータが、DNSサーバに接続できないことが原因で繋がらないようです。
おそらく、DNSとして設定されているルータのIPアドレスが、エミュレータでうまく処理できなかったと思われます。
対応は簡単で、システム環境設定→ネットワーク→接続しているネットワーク→DNSに「8.8.8.8」を追加するだけです。
エミュレータをFirebaseAnalyticsのDebugViewで見れるようにする
先述にあるコマンドを実行することによって、Firebase上で認識されてイベントトラッキングされるようになります。
AndroidStudioの下に「Terminal」というタブがあります。
そこを選択した状態で
adb shell setprop debug.firebase.analytics.app com.exampleApp
あとはFirebaseAnalyticsのDebugViewで、トラッキングを分析するだけです!
ざっくりまとめ
今回の内容を以下にまとめました。
- FirebaseAnalyticsのDebugViewでイベントを確認する場合、ADBコマンドを実行する必要がある。
- エミュレータの場合、ネットワークの設定が必要になる。