PWA Playground
I've started looking a little bit into Progressive Web Apps (PWAs) and I thought it would be fun to create a little playground for myself to experiment with them. As I've written in my previous post JAMstack appeal, I am curious about static, light-weight, server-less websites and PWAs are a great way to achieve that.
Now now, before you jump down my throat, Blazor isn't exactly light-weight, since it needs to ship a .NET runtime with the compiled JS/WASM, but it allows me to build an interactive SPA with no server-side code, which is pretty cool.
For my first experiment, I've built a little calculator, since that was relatively easy to build without understanding too much about Blazor yet. I wanted to first focus on the PWA aspect of it, so I didn't want to spend too much time on the actual functionality.
What strikes me straight away is how decent the experience is after installing it on my phone, and running it. Sure, there is an initial download of assets, but then they're cached; and the boot-up experience can be customized fairly easily! Buttons and UI in general can be styled with CSS, and now that we have FlexBox and FlexGrid, it's pretty easy to make a responsive layout that will fit well on the mobile screen!
I can see why Apple is fighting for their App Store, seeing as PWAs are so easy to build and ship. It would certainly not be in their interest to make this experience better for users, as it would take away from their App Store revenue. I am happy to see that the free internet and EU legislators are fighting for open standards and the ability to install PWAs on iOS devices, though. Seems like and important fight to me.
Anyway, back to the PWA playground. I think I'll keep updating it with little things to see how flexible the experience is, and to try to push the limits a little bit:
Calculator- Units converter (length, weight, volume, currency, etc.)
- A Godot web-exported game