Scaling Swift Development
summary
Walks through concrete levers: use Tuist for modularization, measure with Hyperfine, and cut a 22 minute clean build to about 4 minutes and tests from 40 to ~5 by combining remote caches and sharded CI. Replace deep Git clones with a Swift Package Registry or JFrog to shrink package resolution from minutes to seconds. Choose cache granularity (the Xcode compilation cache vs module cache), avoid a “god module”, and share derived-data/worktree artifacts (Swift RPM style) to stop repeat work.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:50What counts as slow
- 5:30Measuring CI bottlenecks
- 7:14Caching tooling and packages
- 9:21Package registry benefits
- 11:53Optimizing build times
- 13:59Build caching strategies
- 16:54Modularization for caching
- 19:42Test caching and sharding
- 24:44Offloading analysis work
- 25:50Further CI optimizations
- 26:53Local environment measurements
- 29:01Work trees and caching
- 31:27Summary and recommendations
related talks
28mFast reliable Swift builds with Buck
42mSplitting Monolithic Swift Code Base Into Modules
32mSpeeding up the build process of a monolithic application
33mContributing to Swift for the First Time
44mSwift Packages - Dependency Management of the Future
38mThe Project Template
01h 00mThe Mysterious Swift Performance
30mFrom Slow to Flow: Tips for Accelerating Your App Performance
