Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOS at Tumblr

Bryan Irace
August 20, 2015

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

More Decks by Bryan Irace

Other Decks in Technology

Transcript

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

    View Slide

  2. The teams: 2012 - 2015
    • One iOS team and one Android team
    • Up to ~8 developers each

    View Slide

  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)

    View Slide

  4. Internal training

    View Slide

  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
    • !"

    View Slide

  6. Development
    • Git flow
    • Pods checked into source control

    View Slide

  7. Products

    View Slide

  8. Code organization
    • Development pods in our primary repo
    • Pods in separate internal (private) repos
    • Open source pods
    • TMTumblrSDK

    View Slide

  9. View Slide

  10. View Slide

  11. Languages
    • Lots of Objective-C
    • Most new code in Swift

    View Slide

  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,

    View Slide

  13. You are not your code

    View Slide

  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

    View Slide

  15. View Slide

  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

    View Slide

  17. View Slide

  18. Core tenets
    • Offline support
    • Being good platform citizens

    View Slide

  19. View Slide

  20. Biggest challenges
    • Heterogenous content
    • Media-heavy
    • Scroll performance
    • Memory footprint
    • Rich text rendering

    View Slide

  21. Thanks! ❤

    View Slide