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

Empowering iOS Developers

Empowering iOS Developers

Given at MobileConf Thailand 2019

Samuel E. Giddins

August 24, 2019
Tweet

More Decks by Samuel E. Giddins

Other Decks in Technology

Transcript

  1. Empowering iOS
    Developers
    Samuel Giddins
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 1

    View full-size slide

  2. Samuel Giddins
    Mobile Developer Experience @ Square
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 2

    View full-size slide

  3. Formerly:
    ‣ iOS Open Source
    ‣ RubyGems
    ‣ Bundler
    ‣ Realm
    ‣ CocoaPods
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 3

    View full-size slide

  4. What do all these all have in common?
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 4

    View full-size slide

  5. What do all these all have in common?
    Building tools for other developers
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 5

    View full-size slide

  6. Why build tools?
    ‣ Higher leverage
    ‣ Building things for those sitting around me
    ‣ Easier to do open source / share
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 6

    View full-size slide

  7. So, what about this topic has to do with iOS Developers?
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 7

    View full-size slide

  8. (Quick) Trip through history
    ‣ Pre-2.0
    ‣ Only jailbreak apps
    ‣ A few years of small apps
    ‣ Lots of apps built by agencies / consultancies
    ‣ iOS 7
    ‣ Everyone rewrote everything
    ‣ Apps got big
    ‣ Now
    ‣ Multinational companies base their business off of mobile apps
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 8

    View full-size slide

  9. The largest iOS apps are bigger than some small companies'
    entire codebases (across all engineering disciplines)
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 9

    View full-size slide

  10. Think
    ‣ Facebook
    ‣ Instagram
    ‣ Gmail
    ‣ Airbnb
    ‣ Uber
    ‣ Square
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 10

    View full-size slide

  11. Even the smallest apps have gotten bigger,
    as platform expectations have grown
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 11

    View full-size slide

  12. Before Now
    Nav bar & table view Rich collections
    Pixel-perfect PNGs Scalable designs
    CRUD APIs Instant syncing
    Multitasking
    Extensions
    Multiple input options
    State restoration
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 12

    View full-size slide

  13. I work on a massive app.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 13

    View full-size slide

  14. I work on a massive app.
    We have 390+ source files.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 14

    View full-size slide

  15. I work on a massive app.
    We have 390+ source files.
    We have 390+ modules.
    Some of which have hundreds of files.
    Then there are the tests.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 15

    View full-size slide

  16. I work on a massive app 6 massive apps.
    Business reasons dictate we have multiple apps
    (and a couple of SDKs!)
    all built on a common platform.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 16

    View full-size slide

  17. Built by
    ‣ Multiple engineering teams
    ‣ across a half dozen different offices
    ‣ spanning different organizations in the company
    ‣ each with their own product manager & designer
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 17

    View full-size slide

  18. 90% of those teams are responsible for
    shipping features
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 18

    View full-size slide

  19. I’m in the 10%.
    I ship features to everyone else.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 19

    View full-size slide

  20. Server engineers hit this scale a long long time ago,
    they had a solution called platform engineering
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 20

    View full-size slide

  21. Platform Engineering
    mix of devops stuff and writing frameworks
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 21

    View full-size slide

  22. Platform Engineering
    Took longer on mobile because getting to scale took longer
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 22

    View full-size slide

  23. All we need is what
     gives us!
    1
    The i
    OS Community
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 23

    View full-size slide

  24. Then Now
    1-3 people collaborating on a
    single app, in their free time
    four thousand person
    business making money
    primarily through their apps
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 24

    View full-size slide

  25. What can we provide?
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 25

    View full-size slide

  26. What can we provide?
    Look to what server folks did!
    ‣ Developer environment
    ‣ Write some tests
    ‣ CI / automated testing setup
    ‣ Automated deployment
    ‣ “Frameworks”
    ‣ Task automation
    ‣ Build systems
    ‣ IDEs
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 26

    View full-size slide

  27. The goal:
    allow engineers to
    focus on building product
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 27

    View full-size slide

  28. Make the path from product managers & designers to the
    built app be as easy as possible
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 28

    View full-size slide

  29. If you work on a small team, this may sound strange
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 29

    View full-size slide

  30. If you work on a small team, this may sound strange
    but think of all the small parts of your job you try to ignore
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 30

    View full-size slide

  31. ‣ Updating to new Xcode versions
    ‣ Keeping the build passing
    ‣ Uploading builds to testflight / the appstore
    ‣ Investigating Xcode doing something silly
    ‣ Speeding up a slow build
    ‣ Updating network request / response code
    ‣ Protobufs!
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 31

    View full-size slide

  32. As you reach a certain team size,
    it makes sense to invest in expertise
    in those kinds of problems
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 32

    View full-size slide

  33. There’s something in here for anyone to learn (regardless of team size)
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 33

    View full-size slide

  34. For every complaint you see about something getting in the way
    see if you can invest in a permanant fix
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 34

    View full-size slide

  35. everyday frustrations of being a developer pile up
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 35

    View full-size slide

  36. No matter how many engineers you have,
    these frustrations are real costs your team faces
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 37

    View full-size slide

  37. Every time master is red, someone has to go and look at why
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 39

    View full-size slide

  38. hey, not to be a broken
    record, but i had to rebuild
    the same commit 27 times
    (no rebases, exact same SHA)
    to get a green build last night
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 40

    View full-size slide

  39. github.com/square/refinement
    Selective test execution
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 41

    View full-size slide

  40. I was on vacation
    !
    for a bit and came back this
    week and noticed that my builds were super fast!
    Sometimes I'd see some builds take 30-45 minutes
    (where I'd typically modify things that only touch
    Retail) but have noticed them go down to about 5
    minutes (except for ALL, but this went from 1h+ to
    about 30 minutes, with is still huge)! Just wanna
    say how awesome that is
    "
    , seeing the reduced build
    times have me nurse PRs with less time, and I
    presume freeing resources for other folks
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 42

    View full-size slide

  41. Built for Scale
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 44

    View full-size slide

  42. This kind of migration takes a lot of effort, and requires
    building up lots of specialized knowledge.
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 45

    View full-size slide

  43. This kind of migration takes a lot of effort, and requires
    building up lots of specialized knowledge.
    Just like you wouldn’t ask a java server engineer to build up
    your table views,
    it’d be a mistake to have an iOS developer replace your build
    system
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 46

    View full-size slide

  44. Projects like this require a combination of
    ownership & expertise
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 47

    View full-size slide

  45. At Square, the Platform Engineering team is over 100 people
    for server
    Our MDX team is 5 for iOS and 5 for Android
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 48

    View full-size slide

  46. Investing in these areas allows us to scale
    A team of 50 total mobile engineers to over 150
    1 app to half a dozen
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 49

    View full-size slide

  47. no matter the team size,
    investing in increased productivity
    & developer happiness is worth it
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 50

    View full-size slide

  48. Samuel Giddins
    @segiddins
    Empowering iOS Developers – Samuel Giddins @ MobileConf Thailand 2019 52

    View full-size slide