paweł kowalczyk (codete) - continuous integration for ios

Post on 16-Apr-2017

164 Views

Category:

Mobile

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Con$nuous Integra$on for iOSPaweł Kowalczyk

© Paweł Kowalczyk, Codete 2016

Con$nuous Integra$on for iOS@pm_kowal

© Paweł Kowalczyk, Codete 2016

Agenda• The benefits of Con.nuous Integra.on

• Possible solu.ons

• Recommenda.on

© Paweł Kowalczyk, Codete 2016

Agenda• The benefits of Con-nuous Integra-on

• Possible solu+ons

• Recommenda+on

© Paweł Kowalczyk, Codete 2016

What is Con+nuous Integra+on?

© Paweł Kowalczyk, Codete 2016

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

Build proceess automa0on

© Paweł Kowalczyk, Codete 2016

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

Test automa*on

© Paweł Kowalczyk, Codete 2016

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

Code quality inspec1on

© Paweł Kowalczyk, Codete 2016

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

Examples of use

© Paweł Kowalczyk, Codete 2016

Examples of use

© Paweł Kowalczyk, Codete 2016

Agenda• The benefits of Con.nuous Integra.on

• Possible solu*ons

• Recommenda.on

© Paweł Kowalczyk, Codete 2016

Jenkins

© Paweł Kowalczyk, Codete 2016

JenkinsAn open source,

cross-pla/orm, con1nuous integra1on tool.

© Paweł Kowalczyk, Codete 2016

Pros

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

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

© Paweł Kowalczyk, Codete 2016

Cons

• very bad UX

• difficult and 3me-consuming configura3on

• high entry-barrier for team members

© Paweł Kowalczyk, Codete 2016

Xcode Server

© Paweł Kowalczyk, Codete 2016

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

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

Cons

• lack of learning materials

• version compa3blity issues

• no support for interchangeable environments

© Paweł Kowalczyk, Codete 2016

PaaS

© Paweł Kowalczyk, Codete 2016

PaaSWhat is PaaS?

© Paweł Kowalczyk, Codete 2016

PaaSPla$orm as a Service

© Paweł Kowalczyk, Codete 2016

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

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

PaaSCons

• security relies on 3rd party pla2orm

• allow 3rd party to retrieve source code

© Paweł Kowalczyk, Codete 2016

Buddybuild

© Paweł Kowalczyk, Codete 2016

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

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

BuddybuildCons

• no transparent and customizable pipelines

• no scrip3ng support

• s3ll growing list of addi3onal tools

© Paweł Kowalczyk, Codete 2016

Bitrise

© Paweł Kowalczyk, Codete 2016

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

BitrisePros

• great support!

• integra/on with GitHub and Bitbucket

• easy & quick configura/on

• transparent and customizable pipelines

© Paweł Kowalczyk, Codete 2016

BitrisePros

• one-click building

• interchangeable environments

• scrip7ng support

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

© Paweł Kowalczyk, Codete 2016

BitriseCons

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

© Paweł Kowalczyk, Codete 2016

Agenda• The benefits of Con.nuous Integra.on

• Possible solu.ons

• Recommenda)on

© Paweł Kowalczyk, Codete 2016

Recommenda)on

© Paweł Kowalczyk, Codete 2016

Recommenda)onPaaS !

© Paweł Kowalczyk, Codete 2016

Recommenda)onMake apps, not infrastructure !

© Paweł Kowalczyk, Codete 2016

Recommenda)onBitrise !

© Paweł Kowalczyk, Codete 2016

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

© Paweł Kowalczyk, Codete 2016

top related