How to update apps and perform rollouts without going through stores from a single code?

By Lucas César Nogueira Fonseca

Elevator Pitch

It would be really cool to be able to change flows, screens and behaviors of our native apps (Android and iOS) without going through stores and still be able to ensure that all users are seeing exactly the version we want, right? Discover how the Server-Driven UI concept can help us!

Description

How to update apps and perform rollouts without going through stores from a single code?

When we talk about mobile development processes, we inevitably come across the slow process of deploying in stores and the apprehension of performing application rollout. This apprehension when rolling out the application to the entire base comes from the fear of making mistakes, the difficulty in capturing user feedback and the delay in delivering the updated version of the application to the end user. However, there are technologies that help us to reduce these bottlenecks and one of them is the Server-Driven UI, a concept that uses cross-platform development as an alternative to automate deploys and update apps without going through the store.

Server-Driven UI

Server-driven UI (SDUI) is an emerging technique used by companies like Airbnb, Spotify and Lyft that leverage the server to build the user interfaces of their mobile apps. This opens up new possibilities and addresses some fundamental challenges with native mobile app development.

In a traditional native mobile app, the UI layout and presentation is created by a developer and is included in the app design. The app package is uploaded to the App Sttore/ Play Store, where it is reviewed by Apple or Google and then made available for users to download.

User interfaces in these applications become dynamic by separating the UI from the data it displays. Although the UI is part of the application binary, the data is typically fetched from a server and embedded in the UI, so the user interface is built into the application, making it inflexible and difficult to update. In an SDUI implementation, the responsibility for describing screens is removed from the application, so when the application makes a request to the server, it returns not only the data but also the application’s UI.

Notes

I will present in detail why, when and how to use the Server-Driven UI concept and at the end I will show an Open Source tool called Beagle (https://github.com/ZupIT/beagle) which can be a tool that facilitates the implementation of this concept .

The main focus will be to demonstrate the Server-Driven UI concept and not the Beagle tool.