1, 2, 3 build - continuous integration für mobile apps
TRANSCRIPT
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 1
1, 2, 3 - Build!Continuous Integration für Mobile
Apps@PachaAlexander
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 2
MotivationJenkins aufsetzen (Oh nein… nicht schon wieder!)
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 3
“Zivilisationen entwickeln sich weiter, indem sie die Anzahl der wichtigen Operationen erhöhen, die sie durchführen können ohne zu denken.“ (Sinngemäß aus dem Englischen)
Alfred North Whitehead
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 4
Kurze Umfrage
Was wird entwickelt?Versionskontrollsysteme?
Delivery Methode?CI Tools?
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 5
Continuous Integration
Quelle: https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 6
1Automatisierter Build
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 7
Der Build-Prozess
Repository Bekannte Buildumgebung Deliverable
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 8
Bekannte Buildumgebung
iOS-Apps benötigen Mac
Projektabhängig
UWP-Apps benötigen Windows
Android Apps sind plattformunabhängig
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 9
Live-Demo
GreenhouseCIAutomatisierten Buildprozess aufsetzen
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 10
Automatische Versionierung
https://gist.github.com/apacha
CI sollte Versionsnummer automatisch vergeben
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 11
Apps signieren
AndroidKeystores (selbstgeneriert)Debug vs. Release Keystore
Weitere Informationen:• https://developer.android.com/studio/publish/app-signing.htm
l
• https://codesigning.guide/ • http://sharpmobilecode.com/making-sense-of-ios-provisioning
/
iOSIdentity Certificates und
Provisioning ProfilesDedizierte Testgeräte
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 12
2Automatisierte Tests
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 13
“Teste früh. Teste oft. Teste automatisiert”
Hunt and Thomas – The Pragmatic Programmer
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 14
Automatisierte Unit-TestsLeicht umsetzbar auf allen Plattformen
Live-Demo
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 15
Automatisierte UI-Tests
• GreenhouseCI, Bitrise und Travis unterstützen Android Emulator und iOS Simulator direkt
• VSTS benötigt Agent: https://github.com/Microsoft/vsts-agent
• On-Devices Services• Testdroid• Firebase• Xamarin Test Cloud• AWS Device Farm• Testobject
Testen auf virtuellen und physischen Geräten
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 16
Automatisierte UI-TestsFirebase
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 17
Automatisierte UI-Tests
Live-Demo
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 18
“Teste deine Software, oder deine Anwender tun es”
Hunt and Thomas – The Pragmatic Programmer
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 19
3Automatisches Deployment
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 20
Automatisches DeploymentDeployment für Google Play Store
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 21
Automatisches DeploymentDeployment für Apple App Store
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 22
Automatisches DeploymentDeployment für Apple App Store mit Fastlane
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 23
Deployment an (Beta-)Tester
Direktes Deployment der App an TesterVerfügbar für alle Plattformen
Weitere Features: • Statistiken• Melden von Abstürzen (inkl. Stack-Trace)• Feedback• Automatische Aktualisierung (side-loading)
HockeyApp
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 24
Weitere Tools und Ressourcen
• Fabric Crashlytics • Testflight BetaTesting für iOS• Google Firebase
Weitere Links auf http://my-it.at
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 25
Zusammenfassung
• Continuous Integration und Continuous Delivery ist auch für mobile Applikationen möglich und sinnvoll
• Aufsetzen manchmal knifflig, aber den Aufwand wert• Onlinedienste oft kostenpflichtig, aber helfen besonders
am Anfang sehr• Jeder Dev kann leicht DevOp werden