How Tokopedia Achieved 1000% Faster iOS Build Time
Article Summary
Tokopedia's iOS team turned 90-minute builds into 5 minutes. Yes, you read that right: a 1000% improvement.
Indonesia's largest e-commerce platform was drowning in build times that killed productivity. With 40 developers and a weekly release cycle, their CI queues became a nightmare. Here's how they escaped.
Key Takeaways
- Migrated from Xcode to Bazel build system with remote caching
- Initial 500% speedup, then 1000% total with distributed cache layer
- Forked Bazel to support mixed Swift and Objective-C codebase
- Built custom tool to auto-generate build rules for dependencies
- Six month migration with dedicated team paid off massively
Tokopedia reduced iOS build times from 50+ minutes to under 5 minutes by switching to Bazel with remote caching.
About This Article
Tokopedia's iOS developers were stuck with 50-minute clean builds on their local machines and 30-50 minute builds in CI. With 40 developers working on 5 features at once and a weekly release cycle, queue delays became a real bottleneck.
Oscar Yuandinata's team built a custom generator that automatically converted Cocoapods dependencies into Bazel rules. They also forked Bazel to handle mixed Objective-C and Swift compilation, adding flags like --spawn_strategy=local and --features=swift.use_global_module_cache to make it work.
After switching to Bazel, CI builds got 5 times faster. Adding remote caching on top of that doubled the improvement again, bringing typical build times down from over 50 minutes to under 5 minutes. Dependencies that hadn't changed didn't get rebuilt.