SlideShare uma empresa Scribd logo
1 de 25
© 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
Motivation
Jenkins 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
1
Automatisierter 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
GreenhouseCI
Automatisierten 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
Android
Keystores (selbstgeneriert)
Debug vs. Release Keystore
Weitere Informationen:
• https://developer.android.com/studio/publish/app-signing.html
• https://codesigning.guide/
• http://sharpmobilecode.com/making-sense-of-ios-provisioning/
iOS
Identity Certificates und
Provisioning Profiles
Dedizierte Testgeräte
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 12
2
Automatisierte 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-Tests
Leicht umsetzbar auf allen Plattformen
© 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-Tests
Firebase
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 17
Automatisierte UI-Tests
© 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
3
Automatisches Deployment
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 20
Automatisches Deployment
Deployment für Google Play Store
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 21
Automatisches Deployment
Deployment für Apple App Store
© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 22
Automatisches Deployment
Deployment 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 Tester
Verfü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

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

1, 2, 3 build - continuous integration für mobile apps

  • 1. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 1 1, 2, 3 - Build! Continuous Integration für Mobile Apps @PachaAlexander
  • 2. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 2 Motivation Jenkins aufsetzen (Oh nein… nicht schon wieder!)
  • 3. © 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
  • 4. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 4 Kurze Umfrage Was wird entwickelt? Versionskontrollsysteme? Delivery Methode? CI Tools?
  • 5. © 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
  • 6. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 6 1 Automatisierter Build
  • 7. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 7 Der Build-Prozess Repository Bekannte Buildumgebung Deliverable
  • 8. © 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
  • 9. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 9 GreenhouseCI Automatisierten Buildprozess aufsetzen
  • 10. © 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
  • 11. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 11 Apps signieren Android Keystores (selbstgeneriert) Debug vs. Release Keystore Weitere Informationen: • https://developer.android.com/studio/publish/app-signing.html • https://codesigning.guide/ • http://sharpmobilecode.com/making-sense-of-ios-provisioning/ iOS Identity Certificates und Provisioning Profiles Dedizierte Testgeräte
  • 12. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 12 2 Automatisierte Tests
  • 13. © 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
  • 14. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 14 Automatisierte Unit-Tests Leicht umsetzbar auf allen Plattformen
  • 15. © 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
  • 16. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 16 Automatisierte UI-Tests Firebase
  • 17. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 17 Automatisierte UI-Tests
  • 18. © 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
  • 19. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 19 3 Automatisches Deployment
  • 20. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 20 Automatisches Deployment Deployment für Google Play Store
  • 21. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 21 Automatisches Deployment Deployment für Apple App Store
  • 22. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 22 Automatisches Deployment Deployment für Apple App Store mit Fastlane
  • 23. © Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 23 Deployment an (Beta-)Tester Direktes Deployment der App an Tester Verfügbar für alle Plattformen Weitere Features: • Statistiken • Melden von Abstürzen (inkl. Stack-Trace) • Feedback • Automatische Aktualisierung (side-loading) HockeyApp
  • 24. © 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
  • 25. © 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

Notas do Editor

  1. Hi, Alex, Zühlke, Responsible Today talking about CI for mobile = CI for apps with special tricks Main Goals of this talk: Raise awareness, how easy it is to automate your build (including live-demonstrations) Advocate the use of cloud services over on-premise solutions Awakening desire to use this in your next project (Ultimately, you walk out of this talk and start using CIs for all your mobile projects)
  2. Back in Camp 2014, everyone set up a Jenkins (himself), yet no one really did it in a project. Tedious, actually quite boring, ... because it follows certain recipes that you have to do over and over again. --> OPs had the same problem. Started creating bash scripts to automate things
  3. Vergleich mit Autofahren  Safety in Development
  4. What are you developing? Mobile Apps Web Apps Desktop Apps Other What Version Control system do you use? Nothing SVN Git Other What delivery method are you using? Continuous Integration Continuous Delivery Manual Integration Which tools are you using? Jenkins TeamCity Travis Cloud-Services (Bitrise, VSTS, …)
  5. Continuous Integration is the practise of merging all developer working copies into a shared mainline several times a day. Pro: Integration bugs are detected early Constant availability of “current” build for testing and release Avoid dependency on individuals for building the app If reverting is required, only small number of changes are lost Avoid last-minute chaos before release Contra: Getting up and running is not trivial Eventually costs money Someone has to take care of it
  6. A build is a procedure that takes an empty directory (and a known compilation environment) and builds the project from scratch, producing whatever you hope to produce as a final deliverable. Hunt and Thomas - The pragmatic programmer
  7. Ask audience, if this has ever happened to someone def code = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 0 android { defaultConfig { versionCode code versionName "1.4." + code ...
  8. Ask audience, if this has ever happened to someone def code = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 0 android { defaultConfig { versionCode code versionName "1.4." + code ...
  9. Once a person finds a bug, it should be the last time a person finds that bug. Automate a test for it
  10. Hinweis an alle Entwickler: Man kann gar nicht zu faul sein, um UI-Tests zu schreiben, denn man braucht sich ja nur durchklicken: Immerhin gibt es ja einen UI-Test Recorder für alle Platformen! Preise für automatisiertes Testen (ab): 0.05€ / Minute mit Xamarin Test Cloud 0.083€ / Minute mit Firebase 0.17€ / Minute mit AWS Devices Farm
  11. https://console.firebase.google.com/project/sensor-fusion-demo/testlab/histories/bh.e860ec9debad3534/matrices/5949762492133157919 Erkenntnis: Warum braucht man überhaupt Tests auf echten Geräten? Weil es Probleme gibt, die man auf Emulatoren nicht findet.
  12. Beinahe alle CIs haben Steps für das Deployment zu Google, da diese eine einfache API anbieten.
  13. Snapshot – Generate screenshots https://codesigning.guide/
  14. At 2.) Kniffliges Aufsetzen wird definitive besser  Bessere Doku, bessere Services Be aware that you will do a lot of updating and upgrading -> Basically whenever I come back to my PC after a week, there are new updates available for Android, Xamarin, Mac, Windows, Build-Tools, Build-Agents, ... Be aware that you will do some kind of scripting (bash, PS, python, whatever) Your users will love you if you give them a well-crafted application and customers will pay you back if you save their money.