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
iOS at Tumblr
Search
Bryan Irace
August 20, 2015
Technology
2
1.4k
iOS at Tumblr
Slides from an overview of Tumblr’s iOS processes given at Artsy on 8/20/2015.
Bryan Irace
August 20, 2015
Tweet
Share
More Decks by Bryan Irace
See All by Bryan Irace
Practical iOS application modularity
irace
1
560
Building Tumblr for iOS
irace
0
580
Modularity in mobile applications
irace
0
120
When the iOS SDK says “Jump,” ask “How High?”
irace
7
1.3k
Don't be "an Objective-C" or "a Swift Developer"
irace
5
780
Tumblr iOS architecture
irace
5
510
Node.js for mobile developers
irace
1
130
Introduction to Objective-C and Cocoa Touch
irace
7
570
Building apps that play nicely with other apps
irace
1
320
Other Decks in Technology
See All in Technology
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
370
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
110
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
0
100
アクセス制御にまつわる改善 / Improving access control
itkq
0
560
Building Dashboards as a Hobby
egmc
0
280
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
210
One engineer company with Ruby on Rails
rstankov
2
200
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
2
460
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.5k
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
1
250
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
How to name files
jennybc
65
93k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
The Invisible Side of Design
smashingmag
294
49k
Web development in the modern age
philhawksworth
202
10k
Why Our Code Smells
bkeepers
PRO
331
56k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
The Mythical Team-Month
searls
216
42k
Transcript
iOS at Tumblr Bryan Irace, 8/20/2015
The teams: 2012 - 2015 • One iOS team and
one Android team • Up to ~8 developers each
The teams: 2015 – ? • iOS and Android “Core”
teams • ~3-4 developers each • iOS and Android engineers embedded on each product team • ~5 full time (per platform) • ~10 part-time/trainees (per platform)
Internal training
Horizontal camraderie • Public Slack channels (#ios, #ios_core) • Weekly
variety hours (“Multipeer Connectivity”) • Pair programming system • In-person code reviews • Speaker series • Remote-friendly • !"
Development • Git flow • Pods checked into source control
Products
Code organization • Development pods in our primary repo •
Pods in separate internal (private) repos • Open source pods • TMTumblrSDK
None
None
Languages • Lots of Objective-C • Most new code in
Swift
Pull requests • PRs need milestones to be reviewed •
Each release has a “driver” • Assigns PRs in a round-robin order (responsible for merging) • Responsible for sending out beta builds,
You are not your code
Releases • Submit to the App Store every two weeks
• Development completion “lockdown” dates • Feature flagging • Phased roll-outs • Flag off code that isn’t finished yet
None
Automation • Slack bot for distributing beta builds • Nightly
alpha builds • Builds and runs tests for each PR • Fastlane for App Store submissions • Ideally would happen automatically
None
Core tenets • Offline support • Being good platform citizens
None
Biggest challenges • Heterogenous content • Media-heavy • Scroll performance
• Memory footprint • Rich text rendering
Thanks! ❤