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
(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
The largest iOS apps are bigger than some small companies' entire codebases (across all engineering disciplines) Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 9
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
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
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
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
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
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
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
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
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
No matter how many engineers you have, these frustrations are real costs your team faces Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 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
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
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
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
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
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
no matter the team size, investing in increased productivity & developer happiness is worth it Empowering iOS Developers – Samuel Giddins @ MobileEra 2019 51