4. WHY THIS TALK, ANDREA?
▸ One of the most successful projects I've seen at
SoundCloud
5. WHY THIS TALK, ANDREA?
▸ One of the most successful projects I've seen at
SoundCloud
▸ Experience after more than a year in production
6. WHY THIS TALK, ANDREA?
▸ One of the most successful projects I've seen at
SoundCloud
▸ Experience after more than a year in production
▸ Sharing our learnings
13. BUILDING UI, THE CLASSIC APPROACH
1. You build the UI on the clients
2.The server returns the data
3.The client fills out the UI with the given data
15. THE LIMITATIONS OF THE CLASSIC APPROACH
▸ Updating UI ➡ developer work on multi-platforms
16. THE LIMITATIONS OF THE CLASSIC APPROACH
▸ Updating UI ➡ developer work on multi-platforms
▸ Slow process, release cycles
17. THE LIMITATIONS OF THE CLASSIC APPROACH
▸ Updating UI ➡ developer work on multi-platforms
▸ Slow process, release cycles
▸ A/B testing support in the client
18. THE UI OF A CLIENT IS BACKEND
DRIVEN WHEN WE CAN CHANGE IT
WITHOUT MODIFYING ITS CODE.
19. BACKEND DRIVEN UI
▸The backend dictates how data should be presented
▸The client knows how to render some predefined UI elements
23. MORE FLEXIBILITY, MORE PROBLEMS
▸ Overhead to build generic UI elements
▸ More error prone, untested UI paths?
24. MORE FLEXIBILITY, MORE PROBLEMS
▸ Overhead to build generic UI elements
▸ More error prone, untested UI paths?
▸ You have to consider retro-compatibility
48. THE HYBRID APPROACH @SOUNDCLOUD
▸ We have control only over what we need
▸ We can't change the font, but do you need that?
49. THE HYBRID APPROACH @SOUNDCLOUD
▸ We have control only over what we need
▸ We can't change the font, but do you need that?
▸ Not every screen needs to be backend-controlled
50. THE HYBRID APPROACH @SOUNDCLOUD
▸ We have control only over what we need
▸ We can't change the font, but do you need that?
▸ Not every screen needs to be backend-controlled
▸ Navigation with deeplinks