Bumble Valerii Che Aug 1, 2018

iOS UI Development Best Practices

Article Summary

Valerii Che from Bumble's engineering team reveals why they ditched Storyboards entirely. Their code-first approach handles weekly feature releases without breaking existing functionality.

The Badoo/Bumble iOS team shares their battle-tested UI development practices for maintaining a massive dating app. With constant feature releases, they've optimized for code maintainability and team velocity over visual editors.

Key Takeaways

Critical Insight

Building iOS UI in code with strict component separation and MVVM enables faster feature delivery and easier testing at scale.

Their custom Observable utility replaced KVO and Reactive frameworks with something surprisingly simple.

About This Article

Problem

Badoo's team ran into constant merge conflicts and maintenance headaches with XIBs and Storyboards. The XML files changed every time they saved, even when nothing in the UI actually changed. This made code reviews a real pain for teams their size.

Solution

Valerii Che's team built an Observable utility class to track values and switched to NSLayoutAnchor for layouts written in code instead of using Interface Builder. This cut out the XML parsing work and made version control diffs much easier to read.

Impact

Writing UI code directly with a component-based architecture let Badoo split UI projects away from business logic. They could test visuals with stub view models and run development in parallel. This helped them ship new features every week.