LoginSignup
7
7

More than 5 years have passed since last update.

Xamarin Insights ことはじめ

Last updated at Posted at 2014-12-19

こんにちは。エクセルソフトの田淵です。

今日は 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 を使うには以下の手順が必要です。

  1. Initialize
  2. User Resistration
  3. 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 を選択すると右下に表示されます。
スクリーンショット_2014-12-19_22_54_12.png

右下に表示されるエラーをクリックするとレポートの詳細が表示されます。レポートには情報を追加することもできます。

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 した場合は次のようにエラーが確認できます。
スクリーンショット 2014-12-19 18.48.07.png

次のように try/catch 出来なかった想定外のエラーも収集できます。

btnCrash.Click += delegate
{
    var block = new byte[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    block[11] = 10;
};

スクリーンショット 2014-12-19 18.47.26.png

Event/Time Tracking

イベントや時間を取ることもできます。こちらは Google Analytics / Components / Xamarin みたいな機能かもしれません。が、時間がなくて触れませんでした。是非皆さんで確かめてみてください笑

以上です。

明日は @omanuke さんです。

ガチ勢のエントリー楽しみですね!引き続き Xamarin をよろしくお願いいたします。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7