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

An alternative approach to building & shipping Swift apps

Keith Smiley
November 29, 2019

An alternative approach to building & shipping Swift apps

Working with 70+ iOS engineers uncovers many problems with Apple's tooling. By replacing Xcode's build system with bazel, we were able to decrease build times, stop doing clean builds on CI, and rely on remotely cached artifacts to stop developers from having to rebuild files they haven't changed.

Keith Smiley

November 29, 2019
Tweet

More Decks by Keith Smiley

Other Decks in Technology

Transcript

  1. → 70+ iOS engineers → 800k+ lines of Swift +

    0 lines of Objective-C → 600+ "modules" → 1200+ Xcode targets → 800+ Interface Builder files
  2. → Compile sources with the right arguments → Package everything

    correctly → Do as little work as possible → Do all of that, fast
  3. module( name = "Storage", deps = [ "Logger", ], )

    unit_test( name = "StorageTests", deps = [ "Storage", ], )