Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build, Test, Distribute: App-Entwicklung mit Visual Studio App Center automatisieren

Build, Test, Distribute: App-Entwicklung mit Visual Studio App Center automatisieren

Jörg Neumann

February 26, 2017
Tweet

More Decks by Jörg Neumann

Other Decks in Technology

Transcript

  1. JÖRG NEUMANN | ACANDO BUILD, TEST, DISTRIBUTE APP-ENTWICKLUNG MIT VISUAL

    STUDIO APP CENTER AUTOMATISIEREN BUILD TEST DISTRIBUTE ANALYSE CRASHES
  2. 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
  3. ▪ 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
  4. IDEA BUILD LEARN MEASURE DATA CODE CHALLENGES Cross Platform Builds

    Physical Device Tests Beta Distribution Crash Reporting Usage Analysis
  5. 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, …
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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?
  16. ANALYTICS MIT APP CENTER NUTZUNG ▪ Active Users History ▪

    Länder & Sprachen SESSIONS ▪ Daily Sessions per user ▪ Session Duration DEVICE-EIGENSCHAFTEN ▪ OS-Versionen
  17. 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
  18. 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