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
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CocoaPods at Square
A Peek Into iOS Engineering at Square
Brian Partridge
June 09, 2015
More Decks by Brian Partridge
See All by Brian Partridge
Result Driven Development
brianpartridge
5
1.3k
Automate Everything - Continuous Integration for iOS and Mac
brianpartridge
0
160
Continuous Integration With Jenkins For iOS
brianpartridge
0
98
Other Decks in Technology
See All in Technology
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
150
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
400
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
140
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
2
150
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
110
KAEN Company Deck
kaen
PRO
0
320
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
Sony-DroidKaigi2026
sony
1
320
Azure Cost Management の FOCUS コストデータを迷わず読むための“3つの軸”
tetsuyaooooo
0
140
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
300
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
BBQ
matthewcrist
89
10k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Marketing to machines
jonoalderson
1
5.7k
GraphQLとの向き合い方2022年版
quramy
50
15k
Google's AI Overviews - The New Search
badams
0
1.6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
The Cult of Friendly URLs
andyhume
79
7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
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