Date post: | 08-Jan-2017 |
Category: |
Technology |
Upload: | alexander-pacha |
View: | 196 times |
Download: | 4 times |
© 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
MotivationSetting 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 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
Live-Demo
© 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
AndroidKeystores (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/
iOSIdentity Certificates and Provisioning Profiles
Dedicated testing devices
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 14
2Testing 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-TestingCan easily be done on each platform
Live-Demo
© 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
Live-Demo
© 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
3Deploying 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 StoresDeploying to Apple App Store
© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 23
Publishing to App StoresDeploying 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 testersAvailable for all mobile platformsUseful 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