Backend Driven Development for iOS Developers

iOS developers? Listen up

Steven Curtis
4 min readJul 11


Photo by Elijah Macleod on Unsplash

Imagine a time where you are working for an organisation, perhaps in an autonomous team and work isn’t simply thrown over the fence to you. You participate in the whole process working with a team to deliver a great user experience.

Perhaps we can go further, and participate in a Backend Driven Development process. What is that, and how can we implement this into our workflow?

Backend Driven Development

Backend Driven Development is the idea that screens and flows can be based on server responses.

Imagine a world where screens are composed of elements that are abstracted and delivered by the backend. The backend would decide which elements are shown to which users (A/B Testing) and can also change which elements (and in which order) they are shown without a new App release.

There are of course considerations around Backend Driven Development, there are always drawbacks. How prepared is your backend team for this change?

The Advantages

Moving fast is important. Getting code into the hands of users is important, as internal testing can only go so far in improving our products.

Unified client approach

It is easy to make iOS and Android behave the same way, and we can even bring web along to the party

Backwards compatibility

Able to launch features and roll back to a previous release with no client code changes (assuming the response is supported).

A/B Testing

Running A/B testing can be enabled by changing backend flags.

Single source of truth

The level of reusability can be kept high by teams sharing layout and sections. Although these behaviours can be overridden, the general level of reusability can be kept at a very good level.

An approach

Business logic can be abstracted to Actions, meaning sections of UI can be moved both within screens and between screens. A backend can also change these actions dynamically.