Save 37% off PRO during our Black Friday Sale! »

Empowering iOS Developers

Empowering iOS Developers

Given at MobileEra in Oslo on November 8, 2019

4d6be90af74894fd132fb06dacec04d7?s=128

Samuel E. Giddins

November 08, 2019
Tweet

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