Please log in to watch this conference skillscast.
If you’ve ever glanced at Spotify’s release notes, you’ll find them quite underwhelming. No announcements of super awesome features, some random ramblings that may or may not be true. Of course, the team is always rolling out new features and their UI changes from day to day. And, it’s all personalised - the UI presents what’s relevant to you and some of you might even be lucky enough to receive new features before Spotify rolls it out to everyone.
Spotify uses two major backend components to control this. First, we have a web-based ab testing system that they can use to rollout features to random subsets of users, grouped by region, as well as targeting different platforms (Android, iOS, Desktop). A developer simply adds a flag to the system, and then can use the flag in the code to exclude or include different code paths. Second, we have a sophisticated UI content framework that accepts JSON data to render certain pages throughout the app with the latest and most relevant data for that user. The framework not only controls content, but can shape the layout of the page. Multiple backends can provide the content and the clients interpret the data and render it in a consistent way natively.
YOU MAY ALSO LIKE:
- Uncle Bob's Clean Code: Agile Software Craftsmanship (in London on 1st - 3rd November 2017)
- Whole Team Approach to Agile Testing (in London on 6th - 8th November 2017)
- Gojko Adzic's Specification by Example: From User Stories to Acceptance Tests (in London on 7th - 8th November 2017)
- Agile Testing & BDD eXchange 2017 (in London on 9th - 10th November 2017)
Breaking Spotify’s release cycle by using the backend to drive the UI and feature releases
Chris is an Android Engineer working on the radio product for Spotify. He is based out of the NYC office and is originally from Australia.