Making Client Development a Joy

Last updated: 22 days ago

It's great when your development team grows! But with more developers comes more changes at a faster pace, you start to run into issues that you may not have had when you were alone, or even as small team of 3 to 5 developers. I'll go into some of the lessons we've learned to keep productivity high, and friction low.

We keep track of what gives developers the most trouble. A lot of frustration can come from:

  • Build Times: Waiting for the app to build
  • Tooling Updates: Updating build tools isn't always as easy as the README.md says
  • Xcode Project Conflicts: Adding and removing files can create chaos in MyProject.xcodeproj
  • Code Review: Reviewing large changes can be a drag, and so is getting a ton of comments to fix

We'll go into how we've addressed these issues.

By modularizing the codebase, developers can build what they need into a prototype app, drastically improving build times.

Keeping build tools in the Swift Package Manger, CocoaPods, and even Docker,‌ developers don't have to worry about their tooling.

With project file generation, we haven't had a MyProject.xcodeproj in our git repo for over a year.

By using stacked pull requests and automating code review, we can create smaller code changes reviewed in parallel and fix issues before the reviewers even see them.