MacやXcodeを知らないやつが始めるXamarinアプリ開発 – HockeyApp SDKの使い方

今回は、HockeyApp SDKの使い方についてです。
SDKはHockeyAppサイト(https://hockeyapp.net/releases/)に対象OSごとに分かれてダウンロードできるようになっています。
Xamarinの場合、安定版(Stable)は他のOSと同様で個別ダウンロードですが、PreRelease版はNuGetに対応しています。
PCLプロジェクトと個別プロジェクト(Android/iOS/UWP)プロジェクトのそれぞれに対して、"HockeySDK.Xamarin"をインストールします。

次は個別機能の使い方です。若干使いずらいところですが、対象プラットフォームごとに記述が微妙に異なります。
とりあえずはCrash Report/User Metric/Custom Eventsの3点についてまとめてみます。
※今回、UWPについては省略します。
[iOS]
〇Crash Report
AppDelegate.csに「using HockeyApp.iOS」と、FinishedLaunching()に以下のロジック(青枠部分)を追加します。
(Xamarin Test Cloud関連がありますが、ここでは無視してください(;^ω^))001

これだけで、クラッシュ時のレポートがHockeyAppサイトに上げれるようになります。
(クラッシュ後の再起動時に、こんな画面が表示されます)
002

HockeyAppサイトでは、こんな感じで取得されます。
008

クラッシュイベントをクリックすると、以下のような詳細情報が表示されます。
009

〇User Metrics
Crash Reportのロジックで自動的に取得されます。取得したくない場合は、StartManager()の前に「manager.DisableMetricsManager = true;」を追加します。

〇Custom Events
基本的にPCLプロジェクト側にロジックを実装することになると思います(「何かのボタンをクリックした」とか)。
イベントを発生させたい部分に「using HockeyApp」と「MetricsManager.TrackEvent("[イベント名]")」を追加します。
※イベント名に日本語を使うとうまく動かなかったので、英数字のみで指定したほうがよさそうです。

例えば、ListViewでグループのメンバーリストを表示し、どのメンバーがクリックされたかを取得したい場合、OnSelected()にTrackEvent()を実装します。
003

004

ここでは、リスト内の下段にあるローマ字での名前(MemberクラスのUserCounterNameに格納)をカスタムイベント名としています(例:「二村春香」をクリックするとイベント名は"Futamura Haruka")。

HockeyAppのサイトでは、こんな感じで集計されます(「Event Name」に"Futamura Haruka"があります)。
006

[Android]
〇Crash Report
MainActivity.csに「using HockeyApp.Android」と、OnCreate()に以下のロジック(青枠部分)を追加します。
※青枠以外はXamarin Test CloudやMetric用なので(略
005

〇User Metrics
MainActivity.csに「using HockeyApp.Android.Metric」と、OnCreate()に以下のロジック(青枠部分)を追加します。
007

〇Custom Events
iOSと同じです。

簡単なロジック追加で、HockeyAppの機能(クラッシュレポート/メトリック取得など)が使えるようになるのが実感できるかと思います。
次は、Xamarin Test Cloudとの連携についてです。

“MacやXcodeを知らないやつが始めるXamarinアプリ開発 – HockeyApp SDKの使い方” への3件の返信

  1. こんにちは、記事を読ませてもらい、とても参考になりました。ありがとうございます。
    UWPはどうやったらいいのか激しく知りたいですw
    HockeySDK.XamarinはUWP、WindowsStoreAppに対応していないようで、
    3環境に対してPCLで作りたい場合に、どうすればいいのか調査しています。
    HockeySDK.Xamarinは使わずに、個別にHockeySDK.iOS、HockeySDK.Android、HockeySDK.UWPを入れる感じがいいのでしょうか?

  2. こんな拙いブログを見ていただきありがとうございます&少し返信が遅くなりました。
    最新の情報で再度確認してみましたが、yukiさんが認識されているとおり、HockeySDK.XamarinはUWP/StoreAppには対応していません。また、UWP用のSDK(HockeyApp for Windows[https://github.com/bitstadium/HockeySDK-Windows])はyukiさんが調査されるとおりライブラリとしては存在しているのですが、PCL Projectで使用した場合、"Custom Events"しか使えないという状態です(上記URLのページの「Feature Support」にプラットフォームごとの機能一覧があります)。
    Custom Eventsのみ使用したいということであれば、プラットフォームごとのSDKを使用する形になります。
    MSさんの全体的な流れとしては、HockeyAppからVisual Studio Mobile Center(現時点ではPreview)に移行しようとしているところですが、現時点ではMobile CenterもXamarinのサポート対象にUWPが含まれないという状況ですので、気長に待っているところです。(;^ω^)

  3. ぶらっくさん、コメントへの返信ありがとうございます。
    CustomEventsだけでも十分役に立つので、プラットフォームごとのSDK入れてやってみます
    MobileCenterはまだプレビューだからと手を付けてませんでしたが、たしかに公式サイトでもHockeyAppからこれに置き換わっていくと載っていました。これから使い方勉強してみます!
    (HockeyApp自体、モバイル向けのApplicationInsightsが無くなるっていうので移行してきて、あまり使いこなせてなかったのですがまた変わるのかw)

yuki へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください