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

Empowering iOS Developers

Empowering iOS Developers

Given at MobileEra in Oslo on November 8, 2019

Samuel E. Giddins

November 08, 2019
Tweet

More Decks by Samuel E. Giddins

Other Decks in Technology

Transcript

  1. Empowering iOS Developers Samuel Giddins Empowering iOS Developers – Samuel

    Giddins @ MobileEra 2019 1
  2. Samuel Giddins Mobile Developer Experience @ Square Empowering iOS Developers

    – Samuel Giddins @ MobileEra 2019 2
  3. Formerly: ‣ iOS Open Source ‣ RubyGems ‣ Bundler ‣

    Realm ‣ CocoaPods Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 3
  4. What do all these all have in common? Empowering iOS

    Developers – Samuel Giddins @ MobileEra 2019 4
  5. What do all these all have in common? Building tools

    for other developers Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 5
  6. Why build tools? ‣ Higher leverage ‣ Building things for

    those sitting around me ‣ Easier to do open source / share ‣ It's a unique skillset that's less common Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 6
  7. So, what about this topic has to do with iOS

    Developers? Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 7
  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 @ MobileEra 2019 8
  9. The largest iOS apps are bigger than some small companies'

    entire codebases (across all engineering disciplines) Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 9
  10. Think ‣ Facebook ‣ Instagram ‣ Gmail ‣ Airbnb ‣

    Uber ‣ Square Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 10
  11. Even the smallest apps have gotten bigger, as platform expectations

    have grown Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 11
  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 @ MobileEra 2019 12
  13. I work on a massive app. Empowering iOS Developers –

    Samuel Giddins @ MobileEra 2019 13
  14. I work on a massive app. We have 480+ source

    files. Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 14
  15. I work on a massive app. We have 480+ source

    files. We have 480+ modules. Some of which have hundreds of files. Then there are the tests. Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 15
  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 @ MobileEra 2019 16
  17. Built by ‣ Multiple engineering teams ‣ across a half

    dozen different offices ‣ spanning different organizations in the company ‣ each with their own product managers & designers Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 17
  18. 90% of those teams are responsible for shipping features Empowering

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

    Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 19
  20. Server engineers hit this scale a long long time ago,

    they had a solution called platform engineering Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 20
  21. Platform Engineering mix of devops stuff and writing frameworks Empowering

    iOS Developers – Samuel Giddins @ MobileEra 2019 21
  22. Platform Engineering Took longer on mobile because getting to scale

    took longer Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 22
  23. All we need is what  gives us! 1 The

    i OS Community Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 23
  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 @ MobileEra 2019 24
  25. What can we provide? Empowering iOS Developers – Samuel Giddins

    @ MobileEra 2019 25
  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 @ MobileEra 2019 26
  27. The goal: allow engineers to focus on building product Empowering

    iOS Developers – Samuel Giddins @ MobileEra 2019 27
  28. Make the path from product managers & designers to the

    built app be as easy as possible Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 28
  29. If you work on a small team, this may sound

    strange Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 29
  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 @ MobileEra 2019 30
  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 @ MobileEra 2019 31
  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 @ MobileEra 2019 32
  33. There’s something in here for anyone to learn (regardless of

    team size) Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 33
  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 @ MobileEra 2019 34
  35. everyday frustrations of being a developer pile up Empowering iOS

    Developers – Samuel Giddins @ MobileEra 2019 35
  36. 36

  37. No matter how many engineers you have, these frustrations are

    real costs your team faces Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 37
  38. 38

  39. Every time master is red, someone has to go and

    look at why Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 39
  40. 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 @ MobileEra 2019 40
  41. github.com/square/refinement Selective test execution Empowering iOS Developers – Samuel Giddins

    @ MobileEra 2019 41
  42. 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 @ MobileEra 2019 42
  43. Seller Monorepo Cash Monorepo With 0 involvement from me Empowering

    iOS Developers – Samuel Giddins @ MobileEra 2019 43
  44. 44

  45. Built for Scale Empowering iOS Developers – Samuel Giddins @

    MobileEra 2019 45
  46. This kind of migration takes a lot of effort, and

    requires building up lots of specialized knowledge. Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 46
  47. 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 @ MobileEra 2019 47
  48. Projects like this require a combination of ownership & expertise

    Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 48
  49. At Square, the Platform Engineering team is over 100 people

    for server Our MDX team is 2 for iOS and 4 for Android Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 49
  50. Investing in these areas allows us to scale A team

    of 50 total mobile engineers to over 150 1 app to over half a dozen Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 50
  51. no matter the team size, investing in increased productivity &

    developer happiness is worth it Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 51
  52. 52

  53. Samuel Giddins @segiddins Empowering iOS Developers – Samuel Giddins @

    MobileEra 2019 53