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
CocoaPods at Square
Search
Brian Partridge
June 09, 2015
Technology
0
65
CocoaPods at Square
A Peek Into iOS Engineering at Square
Brian Partridge
June 09, 2015
Tweet
Share
More Decks by Brian Partridge
See All by Brian Partridge
Result Driven Development
brianpartridge
5
1.2k
Automate Everything - Continuous Integration for iOS and Mac
brianpartridge
0
140
Continuous Integration With Jenkins For iOS
brianpartridge
0
92
Other Decks in Technology
See All in Technology
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
4
1.5k
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
22k
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
170
Zeal of the Convert: Taming Shai-Hulud with AI
ramimac
0
150
It’s “Time” to use Temporal
sajikix
3
230
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
4
410
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
180
脳内メモリ、思ったより揮発性だった
koutorino
0
390
GCASアップデート(202601-202603)
techniczna
0
220
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
0
110
ソフトバンク流!プラットフォームエンジニアリング実現へのアプローチ
sbtechnight
1
200
ガバメントクラウドにおけるAWSの長期継続割引について
takeda_h
2
5.4k
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
Designing for Performance
lara
611
70k
Ethics towards AI in product and experience design
skipperchong
2
230
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
200
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
490
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
52k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
200
[SF Ruby Conf 2025] Rails X
palkan
2
840
How to Think Like a Performance Engineer
csswizardry
28
2.5k
The Cult of Friendly URLs
andyhume
79
6.8k
Transcript
CocoaPods at Square BRIAN PARTRIDGE Register Team
REGISTER CASH CAVIAR CUSTOMER DISPLAY INTERNAL
Register Dependencies
Register Dependencies SquareCore SquareData PonyExpress Protocol Buffers Register
Register Dependencies SquareCore Register SquareData PonyExpress Protocol Buffers Hardware
Register Dependencies SquareCore Register SquareData PonyExpress Protocol Buffers Hardware
Register Dependencies SquareCore Register SquareData PonyExpress Protocol Buffers Hardware
Register Dependencies SquareData SquareCore PonyExpress Hardware Protocol Buffers Register
Register Dependencies SquareData SquareCore PonyExpress Hardware Protocol Buffers Register KIF
OCMock
Register Dependencies SquareData SquareCore PonyExpress Hardware Protocol Buffers Register PonyDebugger
Reveal KIF OCMock
Register Dependencies SquareData SquareCore PonyExpress Hardware Protocol Buffers Register PonyDebugger
Reveal Crashlytics KIF OCMock
Dependency Management
In the dark times… Submodules Requires manipulating opaque SHAs. Vessel
Internal tools for linking dependencies.
In the dark times… Slow Builds Xcode has to build
each target. Release Management Managing branches in multiple repositories. Lost Engineer Time 15 hours a week.
In the dark times… Slow Builds Xcode has to build
each target. Release Management Managing branches in multiple repositories. Lost Engineer Time 15 hours a week. There’s got to be a better way…
The Hunt VESSEL & SUBMODULES VESSEL & SUBTREES COCOAPODS CARTHAGE
MAVEN/GRADLE Auto Download Dependencies Auto Build Config Dependency Versioning Nested Dependencies Diamond Dependencies Conflict Detection Tools & iOS Support Team Opinion Workflow Impact
CocoaPods Semantic Versioning Meaningful version numbers. a1b2c3d4… vs 1.23.45 Dependency
Resolution Diamond dependencies are no longer surprises. Supports Libraries Does not require Frameworks. Extensibility Plugins and scripting.
Podification
Methodology Bottom Up Start at the leaves. Start Small Smaller
apps with fewer dependencies. Tests Transition test targets to consume pods first. Tests@2x Use tests for validation of generated podspecs.
Challenges Partial Podification Making Vessel and CocoaPods work together. Code
Generation Protocol buffer bindings. Concurrent Development Developing a pod alongside a consumer.
REGISTER CASH CAVIAR CUSTOMER DISPLAY INTERNAL
Future Faster Builds Caching build artifacts from for use as
binary pods. Plugins Podfile.local replacement.
[email protected]
@brianpartridge