Progressive Web Apps. A concept I’ve fallen in love with the moment I heard about it, and I wanted to make one ever since. Yet, you know how it is, one side project was put away on the shelf, once a new side project popped up in my head. And another. And yet another one.
Why Radio Player? Eh, I already had it ready and working, but it didn’t feel pampered enough. You know, like it was missing something. Besides, I really like the concept of being able to install a web page as an app and actually make it work like one and it was a great candidate for it.
My first attempt was to make the existing page a PWA. This failed miserably, as page had a lot of legacy code, had a few libraries installed (long live the jQuery), and it looked like it was put together in five minutes (it was an hour, but back then it had to work, not look pretty). I’ve started from scratch.
This time I decided to challenge myself – I’ve written the new one using pure JS.
Was it worth it? Heck yeah. The whole app is 450 kB, that’s including the stations cover images! All the app structure is handled by service worker, so will load from local cache and yay, it’s installable!
The whole app is as easy to use as it can be. Just click on your radio station and it’ll start playing. You can also favourite stations, and next time the app will display just the favourites – you can use the menu to view all of them again. One can also use the built-in search.