The “App vs. Web” question is in the mind and mouth of many developers. With tech giants such as Microsoft investing big on Progressive Web Applications (PWAs for short) the topic is increasingly popular.
A quick disclaimer: I’m a trainee at Vaadin, but this blog is for my personal thoughts - not Vaadin’s. I think it’s only natural that the content of my DEV blog is influenced by my current occupation.
The question is essentially about how you deploy an application: Do you code a mobile app that the user downloads and installs on their device? Or is a web page that the user can navigate with a browser a better option? Do you need both?
Progressive Web Applications attempt to answer that question; they are native like, installable, applications that run in the browser but can be installed to look and feel like ordinary software. There are benefits for the programmer in this approach:
- Code once run everywhere
- Only update and maintain on one platform
- No store required
- Lower development/maintenance cost
and for the user:
- Access on any device
- No updates to download
- Less storage required
- Fast loading times
There are several popular PWAs in play today, such as Twitter, Pinterest, Tinder etc. I'm only scratching the surface of the potential of PWAs here and there are several resources that take a deeper dive. Maybe I'll write my next blog post to introduce some of them?
However, like anything on the internet, these applications require a front-end and a back-end, i.e the UI and what it controls. These "full-stack" apps can be complicated to code with multiple dependencies running through several programming languages.
Now, this is where Vaadin comes in; a framework for developing both ends of a PWA in Java. No knowledge on HTML or CSS required to build the UI. You can read more in this entry level tutorial series that I've been helping with. New chapters every week!
If you’ve seen my previous posts you’ll know classify myself as a beginner - I’m simply content in only having to deal with 1 programming language instead of 3 for now, even when that requires its own tool to master…
(Maybe I could insert one of my cheesy analogies here?)
“It’s easier to build a house with power tools than with three foreign friends that don’t speak the same language”.
(Eh, you get my point anyway!)
Do you have any thoughts on this approach of programming PWAs or any thoughts on PWAs in general? Have you used Vaadin or something else? I’d love to discuss.
Until next time,