paweł kowalczyk (codete) - continuous integration for ios

44
Con$nuous Integra$on for iOS Paweł Kowalczyk © Paweł Kowalczyk, Codete 2016

Upload: business-link-krakow

Post on 16-Apr-2017

164 views

Category:

Mobile


1 download

TRANSCRIPT

Page 1: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Con$nuous Integra$on for iOSPaweł Kowalczyk

© Paweł Kowalczyk, Codete 2016

Page 2: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Con$nuous Integra$on for iOS@pm_kowal

© Paweł Kowalczyk, Codete 2016

Page 3: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Agenda• The benefits of Con.nuous Integra.on

• Possible solu.ons

• Recommenda.on

© Paweł Kowalczyk, Codete 2016

Page 4: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Agenda• The benefits of Con-nuous Integra-on

• Possible solu+ons

• Recommenda+on

© Paweł Kowalczyk, Codete 2016

Page 5: Paweł Kowalczyk (Codete) - Continuous integration for iOS

What is Con+nuous Integra+on?

© Paweł Kowalczyk, Codete 2016

Page 6: Paweł Kowalczyk (Codete) - Continuous integration for iOS

What is Con+nuous Integra+on?Con$nuous Integra$on is a set of principles and prac$ces that help

to automate many $me consuming tasks associated with the process of so9ware development, such as delivery, tes$ng, and

quality control.

© Paweł Kowalczyk, Codete 2016

Page 7: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Build proceess automa0on

© Paweł Kowalczyk, Codete 2016

Page 8: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Build process automa0onBenefits

• avoid last-minute chaos at release dates

• allow team members to easily prepare builds

• single place for Apple cer:ficates

© Paweł Kowalczyk, Codete 2016

Page 9: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Test automa*on

© Paweł Kowalczyk, Codete 2016

Page 10: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Test automa*onBenefits

• enforced discipline of frequent tes1ng (periodically or a6er push)

• easy access to code coverage metrics

• automa1c repor1ng of test results

© Paweł Kowalczyk, Codete 2016

Page 11: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Code quality inspec1on

© Paweł Kowalczyk, Codete 2016

Page 12: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Code quality inspec1onBenefits

• easy introduc/on of coding rules

• automated code analysis

• automated search for poten/al bugs and code duplica/ons

© Paweł Kowalczyk, Codete 2016

Page 13: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Examples of use

© Paweł Kowalczyk, Codete 2016

Page 14: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Examples of use

© Paweł Kowalczyk, Codete 2016

Page 15: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Agenda• The benefits of Con.nuous Integra.on

• Possible solu*ons

• Recommenda.on

© Paweł Kowalczyk, Codete 2016

Page 16: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Jenkins

© Paweł Kowalczyk, Codete 2016

Page 17: Paweł Kowalczyk (Codete) - Continuous integration for iOS

JenkinsAn open source,

cross-pla/orm, con1nuous integra1on tool.

© Paweł Kowalczyk, Codete 2016

Page 18: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Pros

• universal pla-orm: iOS, Android, ...

• customizable and expandable with addi>onal tools, i.e. Fastlane, Buildasaur, Fabric, Sonarqube, Slack...

© Paweł Kowalczyk, Codete 2016

Page 19: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Cons

• very bad UX

• difficult and 3me-consuming configura3on

• high entry-barrier for team members

© Paweł Kowalczyk, Codete 2016

Page 20: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Xcode Server

© Paweł Kowalczyk, Codete 2016

Page 21: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Xcode ServerApple's con+nuous integra+on system for iOS and OS X which

enables automa+ng sta+c analysis of so<ware, unit

tes+ng, and build archiving.

© Paweł Kowalczyk, Codete 2016

Page 22: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Pros

• easy integra,on with iOS projects - twin pla7orm

• direct configura,on from Xcode

• customizable and expandable with addi,onal tools, i.e. Fastlane, Buildasaur, Fabric, Sonarqube, Slack...

© Paweł Kowalczyk, Codete 2016

Page 23: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Cons

• lack of learning materials

• version compa3blity issues

• no support for interchangeable environments

© Paweł Kowalczyk, Codete 2016

Page 24: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaS

© Paweł Kowalczyk, Codete 2016

Page 25: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaSWhat is PaaS?

© Paweł Kowalczyk, Codete 2016

Page 26: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaSPla$orm as a Service

© Paweł Kowalczyk, Codete 2016

Page 27: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaSA category of cloud compu1ng

services that provides a pla7orm allowing customers to develop, run, and manage

applica1ons without the complexity of building and

maintaining the infrastructure.

© Paweł Kowalczyk, Codete 2016

Page 28: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaSPros

• make apps, not infrastructure!

• easy configura6on

• outsource the infrastructure maintenance to 3rd party pla;orm

• customizable and expandable with addi6onal tools

© Paweł Kowalczyk, Codete 2016

Page 29: Paweł Kowalczyk (Codete) - Continuous integration for iOS

PaaSCons

• security relies on 3rd party pla2orm

• allow 3rd party to retrieve source code

© Paweł Kowalczyk, Codete 2016

Page 30: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Buddybuild

© Paweł Kowalczyk, Codete 2016

Page 31: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BuddybuildBuddybuild )es together Con)nuous Integra)on, Con)nuous Delivery and

an Itera)ve Feedback Solu)on into a single, seamless

pla>orm.

© Paweł Kowalczyk, Codete 2016

Page 32: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BuddybuildPros

• integra)on with GitHub and Bitbucket

• take a screenshot to start sending feedback

• built-in crash repor)ng

• interchangeable environments

© Paweł Kowalczyk, Codete 2016

Page 33: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BuddybuildCons

• no transparent and customizable pipelines

• no scrip3ng support

• s3ll growing list of addi3onal tools

© Paweł Kowalczyk, Codete 2016

Page 34: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Bitrise

© Paweł Kowalczyk, Codete 2016

Page 35: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BitriseCon$nuous Integra$on and

Con$nuous Delivery (CI/CD) Pla8orm as a Service (PaaS) with a main focus on mobile

app development (iOS, Android).

© Paweł Kowalczyk, Codete 2016

Page 36: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BitrisePros

• great support!

• integra/on with GitHub and Bitbucket

• easy & quick configura/on

• transparent and customizable pipelines

© Paweł Kowalczyk, Codete 2016

Page 37: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BitrisePros

• one-click building

• interchangeable environments

• scrip7ng support

• customizable and expandable with addi7onal tools, i.e. Fastlane, Fabric, Slack, Calabash...

© Paweł Kowalczyk, Codete 2016

Page 38: Paweł Kowalczyk (Codete) - Continuous integration for iOS

BitriseCons

• payment fee (~ $50/month) for:∞ team members∞ builds / month

© Paweł Kowalczyk, Codete 2016

Page 39: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Agenda• The benefits of Con.nuous Integra.on

• Possible solu.ons

• Recommenda)on

© Paweł Kowalczyk, Codete 2016

Page 40: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Recommenda)on

© Paweł Kowalczyk, Codete 2016

Page 41: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Recommenda)onPaaS !

© Paweł Kowalczyk, Codete 2016

Page 42: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Recommenda)onMake apps, not infrastructure !

© Paweł Kowalczyk, Codete 2016

Page 43: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Recommenda)onBitrise !

© Paweł Kowalczyk, Codete 2016

Page 44: Paweł Kowalczyk (Codete) - Continuous integration for iOS

Thank you for your a,en.onDo you have any ques-ons?

© Paweł Kowalczyk, Codete 2016