Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing your dependencies using Carthage
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Romain Pouclet
February 10, 2015
Programming
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Managing your dependencies using Carthage
Using a dependency manager is cool, but you know what is cooler? ANOTHER DEPENDENCY MANAGER!
Romain Pouclet
February 10, 2015
More Decks by Romain Pouclet
See All by Romain Pouclet
Getting punched in the face for fun
romainpouclet
0
78
Buddybuild - Android Montreal - June 2017
romainpouclet
0
130
Closed source is best source
romainpouclet
0
530
Save countless hours of work with this one simple trick - Fastlane tools
romainpouclet
1
550
Taking a peek at ReactiveCocoa 3.0
romainpouclet
0
160
Cocoaheads Montréal: Xcode Bots
romainpouclet
1
170
Cocoaheads Montréal : Automated testing for iOS
romainpouclet
1
290
Intégration continue pour iOS
romainpouclet
0
580
Other Decks in Programming
See All in Programming
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
110
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
180
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
1
550
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
210
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
380
My Marp Sample
sinoue0108
0
120
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
440
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
280
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Speed Design
sergeychernyshev
33
2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Crafting Experiences
bethany
1
260
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
380
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Transcript
Managing&your&dependencies&using& CocoaPods&Carthage Cocoaheads)Montréal)02/2015
Why$do$we$need$a$new$dependency$ manager$for$iOS$/$OSX?
We#don't.
Thanks!
Dependency(management? Automa'ng*the*process*of*installing,* upgrading,*configuring,*and*removing*libraries
Cocoapods(VS(Carthage
Cocoapods!VS!Carthage • Ruby&based,&Centralized&repository,&kinda&intrusive • List&dependencies&in&a&“Podfile”,&share&your&libs&using&a&JSON& “podspec”&file • Framework&support&since&0.36 • AutomaKc&doc&generaKon&at&cocoadocs.org
• PLUGINS&(ex:&github.com/orta/cocoapodsPkeys)!
Cocoapods!VS!Carthage h"ps:/ /github.com/search?u48=✓&q=filename%3APodfile
Cocoapods(is(s*ll(a(great(tool(and( you((probably)(don't(need(to(switch
Carthage • S#ll%really%fresh • Another%nice%tool%from%Github • (Painfully?)%wri<en%in%Swi=
Cocoapods(VS(Carthage h"ps:/ /github.com/search?u48=✓&q=filename%3ACartfile
Ge#ng&started&with&Carthage • Visit&github.com/Carthage/Carthage • Go&to&releases&and&download&latest • Open&*.pkg&blahblahblah or ! ~
$ brew install carthage
Ge#ng&started&with&Carthage ! ~ $ carthage
Carthage(leverages(the(power(of(Frameworks • Available)on)OSX)since)~1977)(*reference)required) • Available)on)iOS)since)Facebook)and)Dropbox)figured)a)way)to) cheat • Available)on)iOS)since)iOS)8 • Frameworks)can)contain)a)lot:)Views,)Controls,)Resources)(cf)
WWDC)#416)
A"basic"Cartfile Add#your#dependencies#(github#repo,#URL#to#git#repository)#into#a# Cartfile github "realm/realm-cocoa" == 0.90.3 github "Palleas/ReactiveCSVParser" "master"
Installing)/)Upda.ng)dependencies $ `carthage update` • Carthage)will)fetch)all)the)dependencies)in)the)Carthage/ Checkouts)folder)and)build)the)shared)schemes • A)Cartfile.resolved)that)you/have/to/commit)will)be)generated •
Frameworks)will)be)generated)in)Carthage/Build,)simply)drag) them)in)your)project
Submodules*are*cool*again! $"carthage"update"!!use!submodules (Don't'worry,'Carthage'handle'the'hard'part'automagically)
I"have"been"using"Carthage"for"a"few"weeks" now
I"tested"it"with"a"CSV"parser"I"wrote github.com/Palleas/Reac2veCSVParser
Sharing(my(framework:(share(the(scheme
Sharing(my(framework:(tag(and(push! $ git tag 0.0.1 $ git push origin master
--tags (Note&that&you&can&use&a&branch,&a&commit,&anything&git rev- parse&will&understand)
Adding&my&framework (Because(I(like(my(framework) $ echo 'Palleas/ReactiveCSVParser "~> 0.0.1"' >> Cartfile $
carthage update
Or#if#I#want#to#contribute... $ git clone
[email protected]
:Palleas/Catalog.git $ cd Catalog $ carthage
bootstrap
Some%issues%I%got Adding&a&framework&with&no&shared&schemes *** Fetching realm-cocoa *** Checking out realm-cocoa at
"b30" *** xcodebuild output can be found in /var/folders/qt/nys5f4b154x88ysnv0bccdbm0000gn/T/carthage-xcodebuild.uEWmAC.log Project "TightDbObjcDyn.xcodeproj" has no shared schemes
Project "TightDbObjcDyn.xcodeproj" has no shared schemes (Wat?)
Some%issues%I%got Using&Carthage&(well&actually,&it's&Frameworks)& in&a&command&line&tool (TL;DR:(It's(a(pain)
Con$nuous'Integra$on (Yes,&again.)
Se#ng&up&travis/ci Carthage(is(not(included(in(Travis3ci((yet?) #!/usr/bin/env bash echo "*********** Installing Carthage ***********" brew
update brew install carthage --HEAD
Se#ng&up&travis/ci Carthage(will(build(all(your(schemes,(even(the(one(you( don't(need echo "*********** Installing dependencies with Carthage ***********"
carthage bootstrap --no-build find Carthage/Checkouts -type f -name "*iOS*.xcscheme" -delete carthage build
Conclusion Carthage(is(great.(It(provides(less(features( than(Cocoapods(but(is(easier(to(use
Thanks! (Want&a&book?) (Photos'©'Camille'Furno'!)