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. Formerly: ‣ iOS Open Source ‣ RubyGems ‣ Bundler ‣

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

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

    for other developers Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 5
  4. 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
  5. So, what about this topic has to do with iOS

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

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

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

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

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

    files. Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 14
  13. 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
  14. 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
  15. 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
  16. 90% of those teams are responsible for shipping features Empowering

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

    Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 19
  18. 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
  19. Platform Engineering mix of devops stuff and writing frameworks Empowering

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

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

    i OS Community Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 23
  22. 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
  23. 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
  24. The goal: allow engineers to focus on building product Empowering

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

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

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

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

    Developers – Samuel Giddins @ MobileEra 2019 35
  33. 36

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

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

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

    look at why Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 39
  37. 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
  38. 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
  39. Seller Monorepo Cash Monorepo With 0 involvement from me Empowering

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

  41. 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
  42. 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
  43. Projects like this require a combination of ownership & expertise

    Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 48
  44. 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
  45. 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
  46. no matter the team size, investing in increased productivity &

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