SlideShare une entreprise Scribd logo
1  sur  24
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 1
1, 2, 3 - Build!
Continuous Integration for mobile Apps
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 2
Motivation
Setting up a Jenkins (Oh no… not again!)
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 3
“Civilization advances by extending the number of
important operations we can perform without
thinking”
Alfred North Whitehead
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 4
Quick Survey
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, …)
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 5
Continuous Integration
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 6
1
Building your app
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 7
The build
Repository Known compilation environment Deliverable
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 8
Known compilation environment
Building for iOS, requires a Mac
Depends on your project
Building for Windows, requires Windows
Android is supported on both platforms
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 9
Setting up your automated build - GreenhouseCI
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 10
Automatic Versioning
Chose with care!
Automatically version your application, that is built from the CI
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 13
Signing your app
Android
Keystores (self-generated)
Debug vs. Release Keystore
More information:
• https://developer.android.com/studio/publish/app-signing.html
• https://codesigning.guide/
• http://sharpmobilecode.com/making-sense-of-ios-provisioning/
iOS
Identity Certificates and Provisioning Profiles
Dedicated testing devices
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 14
2
Testing your mobile app
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 15
“Test early. Test often. Test automatically”
Hunt and Thomas – The Pragmatic Programmer
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 16
Automated Unit-Testing
Can easily be done on each platform
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 17
Automated UI-Testing
• GreenhouseCI, Bitrise and Travis support Android Emulator and iOS Simulator directly
• VSTS requires custom Agent: https://github.com/Microsoft/vsts-agent
• On-Devices Services like
• Testdroid
• Xamarin Test Cloud
• AWS Device Farm
• Firebase
• Testobject
Tricky, but possible
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 18
Automated Testing
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 19
“Test your software, or your users will”
Hunt and Thomas – The Pragmatic Programmer
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 20
3
Deploying your mobile app
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 21
Publishing to App Stores
More info: https://github.com/Microsoft/google-play-vsts-extension
Deploying to Google Play Store
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 22
Publishing to App Stores
Deploying to Apple App Store
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 23
Publishing to App Stores
Deploying to Apple App Store using Fastlane
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 24
Publish to (Beta-)Testers
Directly publish the app to testers
Available for all mobile platforms
Useful features:
• Insights
• Crash Reports
• Feedback
• Auto-Updater (side-loading)
HockeyApp
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 26
More tools and resources
• Fabric Crashlytics,
• Testflight BetaTesting for iOS
More links on http://my-it.at
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 27
Summary
• Continuous Integration and Continuous Delivery is possible
• Sometimes tricky to set it up correctly, but definitely worth the effort
• Online services do cost some money, but can help you to quickly get started

Contenu connexe

Tendances

5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeam5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeamAdam Sandman
 
Modern Load Testing: Move Your Load Testing from the Past to the Present
Modern Load Testing: Move Your Load Testing from the Past to the PresentModern Load Testing: Move Your Load Testing from the Past to the Present
Modern Load Testing: Move Your Load Testing from the Past to the PresentSOASTA
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarPerfecto by Perforce
 
Don't Let Your Users be Your Testers - Lunch & Learn
Don't Let Your Users be Your Testers - Lunch & LearnDon't Let Your Users be Your Testers - Lunch & Learn
Don't Let Your Users be Your Testers - Lunch & LearnAdam Sandman
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery Sarah Elson
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingSauce Labs
 
What's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionWhat's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionLizzy Guido (she/her)
 
Automate More with Selenium for your RWD
Automate More with Selenium for your RWDAutomate More with Selenium for your RWD
Automate More with Selenium for your RWDPerfecto by Perforce
 
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...Adam Sandman
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourcePerfecto by Perforce
 
State of mobile Continuous Delivery at Spotify
State of mobile Continuous Delivery at SpotifyState of mobile Continuous Delivery at Spotify
State of mobile Continuous Delivery at SpotifyMobile Delivery Days
 
Continuous Testing- A Key Ingredient for Success in Agile & DevOps
Continuous Testing- A Key Ingredient for Success in Agile & DevOpsContinuous Testing- A Key Ingredient for Success in Agile & DevOps
Continuous Testing- A Key Ingredient for Success in Agile & DevOpsSmartBear
 
Automation and Release in Federal
Automation and Release in FederalAutomation and Release in Federal
Automation and Release in FederalSerena Software
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebPerfecto by Perforce
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionJosh Gough
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and AlertingKhairul Zebua
 
Engineering Trust in Your Automated Tests
Engineering Trust in Your Automated TestsEngineering Trust in Your Automated Tests
Engineering Trust in Your Automated TestsJyoti Mittal
 
An Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceAn Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceRapidValue
 
Building Quality into Your DevSecOps Pipelines
Building Quality into Your DevSecOps PipelinesBuilding Quality into Your DevSecOps Pipelines
Building Quality into Your DevSecOps PipelinesInflectra
 

Tendances (20)

5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeam5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeam
 
Modern Load Testing: Move Your Load Testing from the Past to the Present
Modern Load Testing: Move Your Load Testing from the Past to the PresentModern Load Testing: Move Your Load Testing from the Past to the Present
Modern Load Testing: Move Your Load Testing from the Past to the Present
 
ATAGTR2017 Testing in DevOps Culture
ATAGTR2017 Testing in DevOps CultureATAGTR2017 Testing in DevOps Culture
ATAGTR2017 Testing in DevOps Culture
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges Webinar
 
Don't Let Your Users be Your Testers - Lunch & Learn
Don't Let Your Users be Your Testers - Lunch & LearnDon't Let Your Users be Your Testers - Lunch & Learn
Don't Let Your Users be Your Testers - Lunch & Learn
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated Testing
 
What's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionWhat's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year Edition
 
Automate More with Selenium for your RWD
Automate More with Selenium for your RWDAutomate More with Selenium for your RWD
Automate More with Selenium for your RWD
 
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
State of mobile Continuous Delivery at Spotify
State of mobile Continuous Delivery at SpotifyState of mobile Continuous Delivery at Spotify
State of mobile Continuous Delivery at Spotify
 
Continuous Testing- A Key Ingredient for Success in Agile & DevOps
Continuous Testing- A Key Ingredient for Success in Agile & DevOpsContinuous Testing- A Key Ingredient for Success in Agile & DevOps
Continuous Testing- A Key Ingredient for Success in Agile & DevOps
 
Automation and Release in Federal
Automation and Release in FederalAutomation and Release in Federal
Automation and Release in Federal
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive Web
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous Inspection
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and Alerting
 
Engineering Trust in Your Automated Tests
Engineering Trust in Your Automated TestsEngineering Trust in Your Automated Tests
Engineering Trust in Your Automated Tests
 
An Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceAn Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open Source
 
Building Quality into Your DevSecOps Pipelines
Building Quality into Your DevSecOps PipelinesBuilding Quality into Your DevSecOps Pipelines
Building Quality into Your DevSecOps Pipelines
 

Similaire à 1, 2, 3 build - continuous integration for mobile apps

Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Okko Oulasvirta
 
Microsoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing ToolMicrosoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing Toolsara stanford
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsBizTalk360
 
Webinar: New Features in CloudTest & TouchTest
Webinar: New Features in CloudTest & TouchTestWebinar: New Features in CloudTest & TouchTest
Webinar: New Features in CloudTest & TouchTestSOASTA
 
Soasta New Features in CloudTest & TouchTest Webinar
Soasta New Features in CloudTest & TouchTest WebinarSoasta New Features in CloudTest & TouchTest Webinar
Soasta New Features in CloudTest & TouchTest WebinarJennifer Finney
 
Building high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsBuilding high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsKen Cenerelli
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2Manfred Steyer
 
Microsoft app center
Microsoft app centerMicrosoft app center
Microsoft app centerSuki Huang
 
Introducing Software Product Lines in Model-Based Design Processes: an Indust...
Introducing Software Product Lines in Model-BasedDesign Processes: an Indust...Introducing Software Product Lines in Model-BasedDesign Processes: an Indust...
Introducing Software Product Lines in Model-Based Design Processes: an Indust...REvERSE University of Naples Federico II
 
Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxMesut Günes
 
Application telemetry public
Application telemetry publicApplication telemetry public
Application telemetry publicLars Yde
 
Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Shahed Chowdhuri
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfahjensen
 
Devteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricDevteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricBrisebois
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsSarath C
 
2109 apb-micas-2015
2109 apb-micas-20152109 apb-micas-2015
2109 apb-micas-2015olipas6
 
AppHub project presentation at MICAS 2015
AppHub project presentation at MICAS 2015AppHub project presentation at MICAS 2015
AppHub project presentation at MICAS 2015AppHub
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium DesktopSauce Labs
 
Become an Insider: The Future of Uptime Infrastructure Monitor
Become an Insider: The Future of Uptime Infrastructure MonitorBecome an Insider: The Future of Uptime Infrastructure Monitor
Become an Insider: The Future of Uptime Infrastructure MonitorIDERA Software
 
Trivadis TechEvent 2016 How to transform a complex web application into a mob...
Trivadis TechEvent 2016 How to transform a complex web application into a mob...Trivadis TechEvent 2016 How to transform a complex web application into a mob...
Trivadis TechEvent 2016 How to transform a complex web application into a mob...Trivadis
 

Similaire à 1, 2, 3 build - continuous integration for mobile apps (20)

Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
Microsoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing ToolMicrosoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing Tool
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic Apps
 
Webinar: New Features in CloudTest & TouchTest
Webinar: New Features in CloudTest & TouchTestWebinar: New Features in CloudTest & TouchTest
Webinar: New Features in CloudTest & TouchTest
 
Soasta New Features in CloudTest & TouchTest Webinar
Soasta New Features in CloudTest & TouchTest WebinarSoasta New Features in CloudTest & TouchTest Webinar
Soasta New Features in CloudTest & TouchTest Webinar
 
Building high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsBuilding high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application Insights
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2
 
Microsoft app center
Microsoft app centerMicrosoft app center
Microsoft app center
 
Introducing Software Product Lines in Model-Based Design Processes: an Indust...
Introducing Software Product Lines in Model-BasedDesign Processes: an Indust...Introducing Software Product Lines in Model-BasedDesign Processes: an Indust...
Introducing Software Product Lines in Model-Based Design Processes: an Indust...
 
Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptx
 
Application telemetry public
Application telemetry publicApplication telemetry public
Application telemetry public
 
Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdf
 
Devteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricDevteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabric
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
 
2109 apb-micas-2015
2109 apb-micas-20152109 apb-micas-2015
2109 apb-micas-2015
 
AppHub project presentation at MICAS 2015
AppHub project presentation at MICAS 2015AppHub project presentation at MICAS 2015
AppHub project presentation at MICAS 2015
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
 
Become an Insider: The Future of Uptime Infrastructure Monitor
Become an Insider: The Future of Uptime Infrastructure MonitorBecome an Insider: The Future of Uptime Infrastructure Monitor
Become an Insider: The Future of Uptime Infrastructure Monitor
 
Trivadis TechEvent 2016 How to transform a complex web application into a mob...
Trivadis TechEvent 2016 How to transform a complex web application into a mob...Trivadis TechEvent 2016 How to transform a complex web application into a mob...
Trivadis TechEvent 2016 How to transform a complex web application into a mob...
 

Plus de Alexander Pacha

1, 2, 3 build - continuous integration für mobile apps
1, 2, 3   build - continuous integration für mobile apps1, 2, 3   build - continuous integration für mobile apps
1, 2, 3 build - continuous integration für mobile appsAlexander Pacha
 
Antlr4 get the right tool for the job
Antlr4   get the right tool for the jobAntlr4   get the right tool for the job
Antlr4 get the right tool for the jobAlexander Pacha
 
I like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feelsI like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feelsAlexander Pacha
 
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit RobotiumLightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit RobotiumAlexander Pacha
 
C# - A Programmer's Dream Come True
C# - A Programmer's Dream Come TrueC# - A Programmer's Dream Come True
C# - A Programmer's Dream Come TrueAlexander Pacha
 

Plus de Alexander Pacha (7)

1, 2, 3 build - continuous integration für mobile apps
1, 2, 3   build - continuous integration für mobile apps1, 2, 3   build - continuous integration für mobile apps
1, 2, 3 build - continuous integration für mobile apps
 
Antlr4 get the right tool for the job
Antlr4   get the right tool for the jobAntlr4   get the right tool for the job
Antlr4 get the right tool for the job
 
I like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feelsI like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feels
 
Android Testing
Android Testing Android Testing
Android Testing
 
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit RobotiumLightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
 
C# - A Programmer's Dream Come True
C# - A Programmer's Dream Come TrueC# - A Programmer's Dream Come True
C# - A Programmer's Dream Come True
 
Recherche präsentation
Recherche präsentationRecherche präsentation
Recherche präsentation
 

Dernier

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Dernier (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

1, 2, 3 build - continuous integration for mobile apps

  • 1. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 1 1, 2, 3 - Build! Continuous Integration for mobile Apps
  • 2. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 2 Motivation Setting up a Jenkins (Oh no… not again!)
  • 3. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 3 “Civilization advances by extending the number of important operations we can perform without thinking” Alfred North Whitehead
  • 4. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 4 Quick Survey 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. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 5 Continuous Integration
  • 6. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 6 1 Building your app
  • 7. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 7 The build Repository Known compilation environment Deliverable
  • 8. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 8 Known compilation environment Building for iOS, requires a Mac Depends on your project Building for Windows, requires Windows Android is supported on both platforms
  • 9. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 9 Setting up your automated build - GreenhouseCI
  • 10. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 10 Automatic Versioning Chose with care! Automatically version your application, that is built from the CI
  • 11. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 13 Signing your app Android Keystores (self-generated) Debug vs. Release Keystore More information: • https://developer.android.com/studio/publish/app-signing.html • https://codesigning.guide/ • http://sharpmobilecode.com/making-sense-of-ios-provisioning/ iOS Identity Certificates and Provisioning Profiles Dedicated testing devices
  • 12. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 14 2 Testing your mobile app
  • 13. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 15 “Test early. Test often. Test automatically” Hunt and Thomas – The Pragmatic Programmer
  • 14. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 16 Automated Unit-Testing Can easily be done on each platform
  • 15. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 17 Automated UI-Testing • GreenhouseCI, Bitrise and Travis support Android Emulator and iOS Simulator directly • VSTS requires custom Agent: https://github.com/Microsoft/vsts-agent • On-Devices Services like • Testdroid • Xamarin Test Cloud • AWS Device Farm • Firebase • Testobject Tricky, but possible
  • 16. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 18 Automated Testing
  • 17. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 19 “Test your software, or your users will” Hunt and Thomas – The Pragmatic Programmer
  • 18. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 20 3 Deploying your mobile app
  • 19. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 21 Publishing to App Stores More info: https://github.com/Microsoft/google-play-vsts-extension Deploying to Google Play Store
  • 20. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 22 Publishing to App Stores Deploying to Apple App Store
  • 21. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 23 Publishing to App Stores Deploying to Apple App Store using Fastlane
  • 22. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 24 Publish to (Beta-)Testers Directly publish the app to testers Available for all mobile platforms Useful features: • Insights • Crash Reports • Feedback • Auto-Updater (side-loading) HockeyApp
  • 23. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 26 More tools and resources • Fabric Crashlytics, • Testflight BetaTesting for iOS More links on http://my-it.at
  • 24. © Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 27 Summary • Continuous Integration and Continuous Delivery is possible • Sometimes tricky to set it up correctly, but definitely worth the effort • Online services do cost some money, but can help you to quickly get started

Notes de l'éditeur

  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. 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
  5. 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
  6. 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 ...
  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. Once a person finds a bug, it should be the last time a person finds that bug. Automate a test for it
  9. Snapshot – Generate screenshots https://codesigning.guide/
  10. 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)