iOS at Tumblr

3770c1b6a421c8d4de4177356911a829?s=47 Bryan Irace
August 20, 2015

iOS at Tumblr

Slides from an overview of Tumblr’s iOS processes given at Artsy on 8/20/2015.

3770c1b6a421c8d4de4177356911a829?s=128

Bryan Irace

August 20, 2015
Tweet

Transcript

  1. iOS at Tumblr Bryan Irace, 8/20/2015

  2. The teams: 2012 - 2015 • One iOS team and

    one Android team • Up to ~8 developers each
  3. 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)
  4. Internal training

  5. Horizontal camraderie • Public Slack channels (#ios, #ios_core) • Weekly

    variety hours (“Multipeer Connectivity”) • Pair programming system • In-person code reviews • Speaker series • Remote-friendly • !"
  6. Development • Git flow • Pods checked into source control

  7. Products

  8. Code organization • Development pods in our primary repo •

    Pods in separate internal (private) repos • Open source pods • TMTumblrSDK
  9. None
  10. None
  11. Languages • Lots of Objective-C • Most new code in

    Swift
  12. 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,
  13. You are not your code

  14. 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
  15. None
  16. 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
  17. None
  18. Core tenets • Offline support • Being good platform citizens

  19. None
  20. Biggest challenges • Heterogenous content • Media-heavy • Scroll performance

    • Memory footprint • Rich text rendering
  21. Thanks! ❤