![]() ![]() Authentication worked differently - we needed to support our web OAuth login on Web Player and our native login on Desktop. The playback system used by Web Player was not compatible with Desktop. The Web Player was also tightly coupled to our web servers, relying on them for all data and authentication. One of the main challenges we encountered was that this approach would require us to ship and run the Web Player UI with the Desktop container. We decided, then, to use the Web Player as the starting point for a single user experience shared between the Web Player and Desktop. The client was delivered continuously, allowing changes to get to users almost immediately. It was developed with the web in mind, meaning it was small in size, more performant, and worked with various browsers. It allowed us to develop new features quickly. The Web Player’s codebase, however, was considered a much more solid foundation to build upon. But, at the same time, this architecture was causing severe friction for developers. It also boasted a comprehensive set of features we know Spotify listeners value. The previous version of the Desktop client had many strengths, including Spotify’s original “killer feature” from its very first client, which would allow playback to begin as soon as a listener clicked. The UI would access the backend through the native container. Each page in the application would be sandboxed in an iframe and built in different ways. Previous architecture (simplified) of the Desktop client. Let’s talk more in detail about how we turned the idea into reality. Now, at the beginning of 2021, we have created one maintainable codebase for both of our clients with the high standard of accessibility and speed of development we hoped for. We knew we would have a lot of work to do to bring our Web Player up to those power users’ exacting standards. Desktop had (and has) many more users than Web Player, and Spotify’s Desktop client is the place most of Spotify’s “power users” call home. Since our Web Player is continuously deployed, we could ship and test with real users every change made towards our final goal. We settled on a bold solution: focus on iterating on top of the existing Web Player codebase until it reached a Desktop-grade feature set. We knew we were embarking on a long-term project, so our biggest priority was to de-risk delivery and avoid trapping ourselves into a big bang rewrite. ![]() We considered several approaches and did tech spikes to test many of the ideas - component sharing, feature sharing - always trying to find the right balance between fixing our technical debt problem while continuing to improve the experience for our users. ![]() The team figured out that converging the clients into a single codebase and user experience would be the best way forward. We had many discussions on how to solve these problems. ![]() Making the Desktop application accessible, in contrast, would be nearly impossible. We discovered that making our Web Player accessible was going to be a difficult, yet achievable, challenge. In addition, there were accessibility issues in our clients that we needed to solve. Due to having to implement many of the features twice at different levels of complexity while dealing with context switching, we were not shipping new features at the pace we would have liked to. But those same engineers were having difficulties with the Desktop client, which used a very diverse range of web technologies (thanks to Conway’s law). The Desktop was our rich, full-featured experience and the Web Player was a much lighter, simpler experience.īecause the Web Player was implemented with a modern React app architecture, we had success onboarding new engineers to the Web Player code. Towards the end of 2018, our team was the owner of a recently built Web Player, as well as Spotify’s Desktop client. We couldn’t build everything we wanted to for our users with our old setup, so we decided to do something about it. Mac OS X (Current | 10.14 | 10.13 | 10.12 | 10.11) Windows (Current | 8.1 | 8 | 7) iOS Android (Google Play | Amazon) Spotify for other platforms.For the past couple of years, we’ve been on a mission to modernize our Spotify clients by creating one single desktop UI for both the Desktop application and the Web Player. Download the Spotify app for your computer.įree Download for your Platform – Spotifyĭownload Spotify. Sign up to get unlimited songs and podcasts with occasional ads. This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of … Sign up with Google Sign up with Facebook. Spotify is a digital music service that gives you access to millions of songs. Spotify Spotify – Web Player Music for everyone ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |