Slide 1

Slide 1 text

PUBLISHING YOUR LIBRARY WITH CARTHAGE Frédéric Maquin @ephread CocoaHeads Strasbourg June 30th, 2016

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

Decentralised dependency manager for Xcode projects. 3

Slide 4

Slide 4 text

OCTOBER 2014 JUSTIN SPAHR-SUMMERS 4

Slide 5

Slide 5 text

OCTOBER 2014 JUSTIN SPAHR-SUMMERS 4

Slide 6

Slide 6 text

Written in Swift. Based on iOS 8+ dynamic frameworks. 5

Slide 7

Slide 7 text

VS. 6

Slide 8

Slide 8 text

CocoaPods is CENTRALISED, EASY but INTRUSIVE. 7

Slide 9

Slide 9 text

Carthage is DECENTRALISED, UNINTRUSIVE and SIMPLE. CARTHAGE 8

Slide 10

Slide 10 text

EASY SIMPLE ≠ 9

Slide 11

Slide 11 text

GETTING STARTED 10

Slide 12

Slide 12 text

INSTALLATION $ brew install carthage 11

Slide 13

Slide 13 text

INSTALLATION https://github.com/Carthage/Carthage/releases or download PREBUILT PACKAGES. 12

Slide 14

Slide 14 text

Cartfile github "ReactiveCocoa/ReactiveCocoa" git "https://enterprise.local/desktop/git-error-translations2.git" 13

Slide 15

Slide 15 text

Cartfile github "ReactiveCocoa/ReactiveCocoa" git "https://enterprise.local/desktop/git-error-translations2.git" ~> 4.0 13

Slide 16

Slide 16 text

Cartfile github "ReactiveCocoa/ReactiveCocoa" git "https://enterprise.local/desktop/git-error-translations2.git" "master" 13

Slide 17

Slide 17 text

Cartfile $ carthage update 14

Slide 18

Slide 18 text

Cartfile $ carthage update FETCH the code and BUILD the framework. 14

Slide 19

Slide 19 text

FRAMEWORK LINKING 15

Slide 20

Slide 20 text

STRIP ARCHITECTURE (iOS) Work around an App Store BUG. 16

Slide 21

Slide 21 text

You’re ALL SET! 17

Slide 22

Slide 22 text

PUBLISH 18

Slide 23

Slide 23 text

Bundle your code in a FRAMEWORK. 19

Slide 24

Slide 24 text

Share your SCHEMES. PRODUCT > SCHEME > MANAGE SCHEMES… 20

Slide 25

Slide 25 text

It doesn’t get any SIMPLER. 21

Slide 26

Slide 26 text

It doesn’t get any SIMPLER. But don’t forget to TAG versions. 21

Slide 27

Slide 27 text

It doesn’t get any SIMPLER. But don’t forget to TAG versions. And PUSH the code somewhere… 21

Slide 28

Slide 28 text

IN SHORT 22

Slide 29

Slide 29 text

CocoaPods is EASY TO USE and can LINT/ANALYSE your code. PROS 23

Slide 30

Slide 30 text

CocoaPods can even generate the DOCUMENTATION for you. PROS 24

Slide 31

Slide 31 text

CONS CocoaPods is INTRUSIVE and can be SLOW. 25

Slide 32

Slide 32 text

Pods require some WORK to publish. CONS 26

Slide 33

Slide 33 text

Carthage is FAST, UNINTRUSIVE and SIMPLE. CARTHAGE PROS 27

Slide 34

Slide 34 text

Carthage ONLY SUPPORTS iOS 8+. CARTHAGE CONS 28

Slide 35

Slide 35 text

Carthage requires more work when IMPORTING LIBRAIRIES. CARTHAGE CONS 29

Slide 36

Slide 36 text

By the way, I prefer CARTHAGE over COCOAPODS. :o) 30

Slide 37

Slide 37 text

QUESTIONS? 31