iOS UI Development in Badoo
Article Summary
Valerii Che from Badoo's iOS team reveals why they ditched Storyboards and XIBs entirely. Their code-first approach handles weekly feature releases without breaking existing functionality.
Badoo (now part of Bumble) processes millions of connections daily, requiring rock-solid UI architecture. This article breaks down four specific techniques their iOS team uses to maintain velocity while keeping the codebase clean and testable.
Key Takeaways
- Code-only UI beats XIBs for team collaboration and merge conflicts
- Layout anchors replace frame calculations and error-prone constraint strings
- Separate UI components project enables visual testing with stub data
- Observable pattern simplifies state management without reactive frameworks
Separating UI components from business logic lets Badoo ship features faster while maintaining full visual test coverage.
About This Article
Badoo's iOS team had a real problem with Storyboard and XIB files. Every time someone saved changes, the XML content would shift around, even if nothing about the UI actually changed. This made it nearly impossible to review code properly.
Valerii Che's team switched to building UI in code instead. They used NSLayoutAnchor for layouts and ditched the XML files entirely. This made Git diffs much easier to read during team development.
The switch cut down on merge conflicts and sped up code reviews. The team could now see exactly what changed in the UI, line by line, which helped them ship features faster each week.