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
61
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
130
Continuous Integration With Jenkins For iOS
brianpartridge
0
88
Other Decks in Technology
See All in Technology
VCpp Link and Library - C++ breaktime 2025 Summer
harukasao
0
220
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
230
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
11
4.3k
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
330
OpenHands🤲にContributeしてみた
kotauchisunsun
0
270
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
410
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
0
160
生成AIでwebアプリケーションを作ってみた
tajimon
2
130
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
580
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
170
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
840
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Designing for Performance
lara
609
69k
Done Done
chrislema
184
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Balancing Empowerment & Direction
lara
1
350
Practical Orchestrator
shlominoach
188
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
GitHub's CSS Performance
jonrohan
1031
460k
Facilitating Awesome Meetings
lara
54
6.4k
Six Lessons from altMBA
skipperchong
28
3.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Navigating Team Friction
lara
187
15k
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