Slide 1

Slide 1 text

Xcode Bots Cocoaheads Montréal 11/2014

Slide 2

Slide 2 text

Who ? • Romain Pouclet • @palleas • iOS developer at TechSolCom / R3D • Wrote a book

Slide 3

Slide 3 text

I wrote a book • Pro Continuous Integration for iOS • 230 pages • Anybody wants one ?

Slide 4

Slide 4 text

Continuous integration (CI) is the practice, in software engineering, of doing a bunch of stuff... — Wikipedia (kinda)

Slide 5

Slide 5 text

Existing solutions • Jenkins !!! • Bamboo """ • Travis-CI & Ci ###

Slide 6

Slide 6 text

Jenkins & TechSolCom • OpenSource ❤️ • Nice bash script • Homemade distribution store

Slide 7

Slide 7 text

Bamboo & TechSolCom • ! • Complicated to use • Terrible support for Xcode projects • Unstable network = unstable instalation

Slide 8

Slide 8 text

Travis & TechSolCom (Nope)

Slide 9

Slide 9 text

Continuous integration is hard (and boring)

Slide 10

Slide 10 text

Continuous integration is hard (and boring) Entering Apple (a few years later)

Slide 11

Slide 11 text

Writing a book talking about Bots? • Working with Apress is great • Initially a small chapter about a promising solution • A bag of hurt at the time • Had to rewrite / update a few chapters after WWDC

Slide 12

Slide 12 text

Getting started with Bots • Standalone Application • 20$ • Some cool features (App Store caching...) • Super easy to install ! • Super hard to remove "

Slide 13

Slide 13 text

Repository Management • Manage access to remote repositories • Host your project on your OSX Server (This can be done via Xcode)

Slide 14

Slide 14 text

User Management

Slide 15

Slide 15 text

XCode service

Slide 16

Slide 16 text

Setting up a bot • Build app • Static Analysis • Automated Tests / Performance analysis • Archiving

Slide 17

Slide 17 text

Static Analysis

Slide 18

Slide 18 text

Static Analysis from command line (For comparison purposes)

Slide 19

Slide 19 text

Unit Testing

Slide 20

Slide 20 text

Archiving

Slide 21

Slide 21 text

Web interface

Slide 22

Slide 22 text

Demo (Maybe.)

Slide 23

Slide 23 text

1 branch = 1 bot (Basically)

Slide 24

Slide 24 text

1 branch = 1 bot 1. Create a branch 2. Create a bot 3. Work on the feature 4. Merge branch 5. Delete bot 6. Repeat

Slide 25

Slide 25 text

Conclusion • Apple is finally entering the game • OSX Server is super easy to install / use • Still a lot of room for improvements • Bots are cheap, use them

Slide 26

Slide 26 text

Thank you! Questions?