Not a Progressive Web App
Shufflizer has no Progressive Web App service workers. There is no off-line scenario. Bad Internet connection? It’s best if you come back later.
No lazy loading
Lazy loading is the idea of incrementally obtaining only the data necessary to render the viewport.
The user is going to reorder the entire playlist. So I need the entire playlist. I don’t lazy load it. This is what Spotify’s native Windows app does when you click on a playlist. I can tell by the way it performs. It loads the whole thing.
I am not downloading songs. The playlist is just the track listing, not the audio itself. Even for a few thousand songs this is not a challenging amount of data for today’s hardware – even a phone.
I do get all of the album art. I did try lazy loading these images but I did not like the results. It made the user experience more sluggish and strange. I prefer the user wait a couple more seconds up front to get a smooth, normal scrolling experience.
No server-side code
Shufflizer is pure Angular/TypeScript. MEAN stack? Nope. It’s just the A.
Having no server-side code makes it easy to comply with this rule in the Spotify Developer Terms of Service:
My only server is my web server, and it is totally stock.
There are some trade-offs for this simplicity. I will talk about them in a future post.