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

24
© Zühlke 2016 1, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 1 1, 2, 3 - Build! Continuous Integration for mobile Apps

Upload: alexander-pacha

Post on 08-Jan-2017

196 views

Category:

Technology


4 download

TRANSCRIPT

© 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 5

Continuous Integration

© Zühlke 20161, 2, 3 - Build! | Alexander Pacha 27. September 2016 Slide 6

1Building 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

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

© 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