こんにちは。エクセルソフトの田淵です。
今日は Xamarin Advent Calendar 19日目です。
今日は Xamarin Insights について軽くご紹介します。(ドキュメント読んでサンプル動かしただけとも言うw)
Xamarin Insights とは?
Xamarin Insights は皆さんの作るアプリに Analytics と Crash Report の機能を追加する Xamarin のサービスで、2014年11月に開催された Evolve で発表されました。(Keynote のビデオ)
機能の詳細については Xamarin のドキュメントページ をご参照ください。Insights 登録後は こちら でもスタートガイド的なドキュメントを確認できます。
現在は Preview 版として、Xamarin ユーザーであればどなたでもご利用いただけますので、ベータテストなどで使ってみると良いかと思います。
ドキュメントページにあるサンプルアプリ Android Insights を落として動かしてみました。
How It Works
Xamarin Insights を使うには以下の手順が必要です。
- Initialize
- User Resistration
- Reporting
詳細はドキュメントページをご参照ください。
ユーザーを登録しておくと、Xamarin Insights.Traits.Name
で名前を取得出来たりするようです。
レポートは try/catch して Insights.Report(ex)
すればいい感じです。
インストール
最初に Xamarin Insights サイト に行き、Add New App
でアプリを作成し、Copy the API Key
に表示される API Key の値を控えておきます。
次にプロジェクトで NuGet から Xamarin.Insights
をインストールします。
後は各 OS の書式に沿って Initialize します。
Android はいくつか Permission を追加する必要があり、iOS は正確なクラッシュログを取得するには dSYM ファイルをアップロードする必要があります。
クラッシュレポートの使い方
try/catch でエラーをレポートします。
try
{
int divByZero = 42 / int.Parse("0");
}
catch (DivideByZeroException ex)
{
Insights.Report(ex);
}
レポートが集まってグラフ化されるのには半日〜1日くらいかかるのですが、各エラーレポートはすぐに確認できます。
Insights のサイトで Users > ユーザー選択 > ISSUES を選択すると右下に表示されます。
右下に表示されるエラーをクリックするとレポートの詳細が表示されます。レポートには情報を追加することもできます。
try
{
var block = new byte[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
using (var text = File.OpenWrite(@"/bin/hello.txt"))
{
text.Write(block, 0, 10);
}
}
catch (IOException ex)
{
// see http://msdn.microsoft.com/en-us/library/system.exception.data%28v=vs.110%29.aspx for more details on this
ex.Data["MoreData"] = "You can't write to the bin directory!";
// send the report
Insights.Report(ex);
// throw the exception - this exception would need to be caught using another try/catch
throw ex;
}
この IOException ex
を catch した場合は次のようにエラーが確認できます。
次のように try/catch 出来なかった想定外のエラーも収集できます。
btnCrash.Click += delegate
{
var block = new byte[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
block[11] = 10;
};
Event/Time Tracking
イベントや時間を取ることもできます。こちらは Google Analytics / Components / Xamarin みたいな機能かもしれません。が、時間がなくて触れませんでした。是非皆さんで確かめてみてください笑
以上です。
明日は @omanuke さんです。
ガチ勢のエントリー楽しみですね!引き続き Xamarin をよろしくお願いいたします。