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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
90
Other Decks in Technology
See All in Technology
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
4
490
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
10
1.7k
聲の形にみるアクセシビリティ
tomokusaba
0
170
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
250
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
140
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
550
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
130
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
320
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
2
340
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
230
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
490
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.2k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Raft: Consensus for Rubyists
vanstee
141
7.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
150
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
BBQ
matthewcrist
89
10k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Believing is Seeing
oripsolob
1
79
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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