Möchte man ohne großen Aufwand Telemetriedaten und Absturzberichte seiner App sammeln, so sollte man sich das Visual Studio Mobile Center näher anschauen. Derzeit noch in der Testphase, soll es laut Microsoft in naher Zukunft HockeyApp und die Xamarin Test Cloud ablösen. Neben den hauseigenen Plattformen Xamarin und UWP werden Java, Swift und React Native unterstützt.

Einrichtung

Zunächst muss man sich unter mobile.azure.com anmelden. Dies ist während der Testphase kostenlos. Mit dem anschließenden Assistenten erstellt man nun eine neue „App“ im Mobile Center.

Um Telemetriedaten zu erfassen nimmt man folgende Anpassungen an der eigenen App (am Beispiel von Android) vor:

1. Dependencies in Gradle File eintragen:

dependencies {
def mobileCenterSdkVersion = '0.11.1'
compile "com.microsoft.azure.mobile:mobile-center-analytics:$latex {mobileCenterSdkVersion}"
compile "com.microsoft.azure.mobile:mobile-center-crashes:${mobileCenterSdkVersion}" }

2. In der onCreate() Methode der Mainactivity den Mobile SDK starten:

MobileCenter.start(getApplication(), "<APP SECRET>",
Analytics.class, Crashes.class);

Dieses Beispiel startet die Module „Analytics“ (erfassen von Telemetriedaten) sowie „Crashes“ (erfassen von Absturzberichten). Den String „<APP SECRET>“ ersetzt man selbstverständlich durch das eigene App Secret (zu finden unter „Getting Started“ in der Mobile Center Web Oberfläche) ersetzen.

Nachdem die oben genannten Anpassungen vorgenommen wurden kann man die App bereits starten. Nach erfolgreichem Start findet an unter „Analytics“ bereits die ersten Ergebnisse:

Telemetrie Übersicht

Eigene Events

Ziel von Telemetriedaten ist es, herauszufinden welche Funktionen die Benutzer am meisten Nutzen. Um dies zu ermöglichen, kann man an beliebigen Stellen im App Code Telemetrie-Events senden:

Analytics.trackEvent("Connecting")
// ...
Analytics.trackEvent("Disconnecting")

Nach dem Ausführen tauchen diese Events unter Analytics/Events auf:

Ansicht eigener Events

Absturzberichte

Um einen Absturz zu provozieren wirft man einfach eine Exception in der eigenen Anwendung (die natürlich nicht behandelt wird). Alternativ kann man auch mit folgender Code-Zeile einen Absturz verursachen:

Crashes.generateTestCrash();

Wechselt man auf der Webanwendung in das Modul „Crashes“ so erhält man eine gruppierte Ansicht, der aufgetretenen Abstürze:

Ansicht der Crash Reports

Zu jedem Absturz erhält man detailierte Auswertungen nach betroffenen Geräten, OS- und App-Versionen sowie Stack Traces:

Ansicht der Crash Reports

Fazit

Um bei einer kleineren App schnell Absturzberichte und Telemetriedaten zu erfassen ist das Visual Studio Mobile Center eine gute Wahl. Man sieht dem ganzen Projekt zwar durchaus an dass es noch sehr jung ist, die bereits implementierten Features funktionierten bei meinem kurzen Test aber durchwegs zuverlässig.

Neben der Datenerfassung gibt es auch noch Module zur Testunterstützung, zum Verteilen von Testversionen und Verteilen von Pushnachrichten. Da diese nicht im Fokus meiner kleinen Untersuchung standen kann ich zu deren Qualität keine Aussage treffen.

Da das Tool sich derzeit noch in einer Testphase befindet, ist es komplett kostenlos. Im Gegenzug dazu hat man natürlich keine garantierte Verfügbarkeit. Gerade bei missionskritischen Apps sollte man dies auf jeden Fall kritisch hinterfagen.

Abschließend muss ich gestehen, dass mir gerade die Einfachheit des Tools sehr gut gefällt. Meist sind Analytics Lösungen zwar sehr mächtig, aber auch kompliziert – was gerade bei kleinen Projekten oft Overkill ist. Dies ist beim Mobile Center richtig gut gelöst. Zudem besitzt bereits die frühe Version eine sehr gute Dokumentation. Den derzeitigen Stand würde ich für kleinere Sideprojekte empfehlen und bei kritischen Apps auf etablierte Lösungen zurückgreifen.