Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CocoaPods at Square
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
100
Other Decks in Technology
See All in Technology
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
パッチ更新でterraform initが落ちた日
grimoh
1
140
大型犬好きによるPugの紹介
yamanoku
1
160
継続的なAIコスト最適化
bgpat
1
340
Refining Active Record
shugo
0
150
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
450
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
夫婦で子育てするための育児標準化
codmoninc
PRO
0
330
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.5k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
A Soul's Torment
seathinner
8
3.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
For a Future-Friendly Web
brad_frost
184
10k
Google's AI Overviews - The New Search
badams
0
1.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Thoughts on Productivity
jonyablonski
76
5.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.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