Backend Driven Development for iOS Developers
iOS developers? Listen up
--
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.