Porting iOS Apps to Bazel + Q&A
summary
LinkedIn ports two iOS apps to Bazel, cutting CI commit-to-publish time roughly 50% by using a Bazel remote cache and turning off sandboxing; the small Learning app (350k LOC, ~600 tests) proves the flow, then the main app (2M LOC, ~6.5k tests) requires rewriting header-map generation in C, new framework packaging rules and a Bazel wrapper that auto-starts a local cache daemon. CocoaPods metadata drives a cocoapods-bazelize plugin; results: builds become often <30 minutes and sometimes <5 with cache.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 0:43Speaker introduction
- 2:08LinkedIn iOS apps overview
- 8:14Switching from Xcode to Bazel
- 10:25Bazel evaluation criteria
- 13:15Migration planning
- 19:56First challenges
- 22:23Custom tools development
- 25:11Testing with Learning app
- 26:34Porting main app
- 31:07Lessons learned
- 33:35Current status and plans
- 34:45Q&A
related talks
20mScaling up a Super-App
23mPolyglot Builds with Bazel
33mHow to Save Time with Ci and Build Time Reduction
34mBuilding Real-time Systems with Bazel
25mInteroperating Bazel and Other Build Systems
41mTwo Birds with One Stone: Multimodule Architecture and Faster Builds
43mBuilding iOS Apps without Xcode
20mAdopting Bazel in a quickly scaling organization
