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
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