Slide 1

Slide 1 text

JÖRG NEUMANN | ACANDO BUILD, TEST, DISTRIBUTE APP-ENTWICKLUNG MIT VISUAL STUDIO APP CENTER AUTOMATISIEREN BUILD TEST DISTRIBUTE ANALYSE CRASHES

Slide 2

Slide 2 text

JÖRG NEUMANN THEMEN ▪ Mobile Development ▪ UI-Technologien ▪ Consulting, Coaching, Training KONTAKT ▪ Mail: [email protected] ▪ Twitter: @JoergNeumann ▪ GitHub: https://github.com/JoergNeumann ▪ Blog: www.HeadWriteLine.BlogSpot.com

Slide 3

Slide 3 text

▪ Hypothesis ▪ Define Metrics ▪ Implement Minimum Viable Product ▪ Collect Usage Data ▪ Get User Feedback Analyze Data Make a Decision IDEA BUILD LEARN MEASURE DATA CODE DEVELOPMENT LIFECYCLE

Slide 4

Slide 4 text

IDEA BUILD LEARN MEASURE DATA CODE CHALLENGES Cross Platform Builds Physical Device Tests Beta Distribution Crash Reporting Usage Analysis

Slide 5

Slide 5 text

BUILD TEST DISTRIBUTE ANALYSE CRASHES TestFlight, Apperian, HockeyApp, … AWS Device Farm, Xamarin Test Cloud, Ranorex, … Azure ALM, Mac in Cloud, ... Azure AppInsights,, Google AppAnalytics, Apsalar Raygun, Countly, Instabug, …

Slide 6

Slide 6 text

BUILD DEVICE TESTS BETA DISTRIBUTION CRASH REPORTING ANALYTICS MOBILE BACKEND VERSION CONTROL GitHub Visual Studio Team Services Xamarin Test Cloud HockeyApp Xamarin Insights Application Insights Azure Mobile Services

Slide 7

Slide 7 text

APP CENTER FEATURES ▪ Automatische Builds nach jedem Pull ins Git-Repository ▪ UI-Automation Tests auf echten Devices in der Cloud ▪ Automatische Distribution der App an Beta-Tester ▪ Monitoring von Crashes und Bugs ▪ Laufzeit-Daten und eigene Events analysieren ▪ Mobile Backend mit Table Storage, Identity Management und Offline-Support UMGEBUNGEN ▪ iOS, Android ▪ Xamarin ▪ React Native

Slide 8

Slide 8 text

DEMO App Center

Slide 9

Slide 9 text

BUILD OPTIONEN ▪ Debug & Release-Builds ▪ Support für mehrere Branches ▪ Verschiedene XCode-Versionen (iOS) ▪ Automatische Builds (nach Push) ▪ Automatische Signierung ▪ Automatische Verteilung SIGNIERUNG ▪ iOS: Provisioning Profile & p12-Datei (info) ▪ Android: Keystore-Datei

Slide 10

Slide 10 text

DEMO Build Configuration

Slide 11

Slide 11 text

Lässt sich die App auf dem Device installieren? Wie sieht die App auf dem Device aus? Stürzt die App bei der Bedienung ab? Können Device- Feature genutzt werden? DEVICE TESTS Unterschiedliche Device-Größen Unterschiedliche Auflösung/DPI Unterschiedliche OS-Versionen Hersteller- Anpassungen

Slide 12

Slide 12 text

ANDROID DEVICE FRAGMENTATION Quelle: OpenSignal.com; Stand: 8/2015

Slide 13

Slide 13 text

ANDROID DEVICE FRAGMENTATION Quelle: OpenSignal.com; Stand: 8/2015

Slide 14

Slide 14 text

ANDROID DEVICE FRAGMENTATION Quelle: OpenSignal.com; Stand: 8/2015

Slide 15

Slide 15 text

DEVICE TESTS XAMARIN TEST CLOUD ▪ App mit UI-Tests ausstatten ▪ Test lokal o. in der Cloud ausführen ▪ >1000 physischen Devices VARIANTEN ▪ Calabash-Scripts ▪ Xamarin.UITest XAMARIN TEST CLOUD Deploy VISUAL STUDIO App Code UI Tests App Package UI Tests Reports & Screenshots Device Selection

Slide 16

Slide 16 text

TESTS ERSTELLEN TEST-PROJEKT ▪ Projektvorlage “UI Test App” ▪ NuGet-Packages: NUnit 2.6 (nicht höher!) & Xamarin.UITest APP-PROJEKT ▪ NuGet-Package: Xamarin.TestCloud.Agent AUSFÜHRUNG ▪ In der IDE (Unit Test Pad) ▪ In der Test Cloud

Slide 17

Slide 17 text

XAMARIN TEST RECORDER FUNKTION ▪ Erzeugt UI-Test-Code während der Bedienung der App ▪ Zur Zeit noch in Beta-Phase QUELLE ▪ xamarin.com/test-cloud/recorder

Slide 18

Slide 18 text

DEMO Device Tests

Slide 19

Slide 19 text

BETA DISTRIBUTION FEATURES ▪ Automatische Distribution nach dem Build ▪ Manuelle Distribution eines Packages möglich ▪ Anlage von Beta-Testern (Mail) ABLAUF ▪ Tester bekommt eine Einladungsmail ▪ Tester akzeptiert die Einladung durch Registrierung bei Mobile Center ▪ Tester bekommt nach jedem Build eine Installations-Mail ▪ App wird installiert ▪ Bei iOS müssen alle Tester-Devices ins Provisioning Profile aufgenommen werden

Slide 20

Slide 20 text

DEMO Beta Distribution

Slide 21

Slide 21 text

CRASH REPORTING ABBRÜCHE ANALYSIEREN ▪ Unbehandelte Exceptions ▪ StackTrace wird übertragen ▪ Debug-Symbole können hochgeladen werden ▪ Status kann verwaltet werden INFORMATIONEN ▪ Crashes per Day ▪ Crash-free Devices per Day ▪ Devices ▪ OS-Versionen

Slide 22

Slide 22 text

DEMO Crash Reporting

Slide 23

Slide 23 text

ANALYTICS In welchen Ländern / Sprachen wird die App genutzt? Auf welchen Devices / OS- Versionen kommt die App zum Einsatz? Wieviele Anwender haben die App installiert? Wie lange nutzen die Anwender die App durchschnittlich? Wie oft wird die App genutzt? Welche Features werden oft verwendet?

Slide 24

Slide 24 text

ANALYTICS MIT APP CENTER NUTZUNG ▪ Active Users History ▪ Länder & Sprachen SESSIONS ▪ Daily Sessions per user ▪ Session Duration DEVICE-EIGENSCHAFTEN ▪ OS-Versionen

Slide 25

Slide 25 text

DEMO Analytics

Slide 26

Slide 26 text

IDENTITY- & BACKEND-INTEGRATION IDENTITY PROVIDERS ▪ Azure Active Directory ▪ Facebook ▪ Google ▪ Microsoft Account ▪ Twitter DATA BACKEND ▪ Cloud-basierter Data Store für tabellenbasierte Daten ▪ Einfacher Zugriff über REST-API ▪ Client SDK mit Offline Support verfügbar ▪ Einfache Berechtigungsverwaltung

Slide 27

Slide 27 text

DEMO Identity & Data

Slide 28

Slide 28 text

FAZIT HERAUSFORDERUNGEN ▪ App-Projekte haben kein festes Ende ▪ Ständige Weiterentwicklung erfordert einen CI-Prozess ▪ Build, Test & Distribution müssen automatisiert werden MOBILE CENTER ▪ Sehr einfach zu konfigurieren ▪ Kombiniert die besten Tools für den Job ▪ Einfache Analyse von Crashes und Usage möglich ▪ Leichte Integration von Data-Backend, Offline & Identity ▪ Weitere Funktionen in Planung