DEV Community

Cover image for App + Web = Vaadin
Mikael Sukoinen
Mikael Sukoinen

Posted on • Updated on

App + Web = Vaadin

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,
Mikael

Discussion (5)

Collapse
lkraav profile image
Leho Kraav

Hi Mikael. We have an online video training subscription service. Any ideas on how would one do offline videos with PWA?

Collapse
mikaelsu profile image
Mikael Sukoinen Author

Hi Leho! The only way I can think of is to allow users to download the videos and then watch them offline through the app? The same way Netflix does it. I found this thread on Stackoverflow discussing it: stackoverflow.com/questions/485565...

Collapse
lkraav profile image
Leho Kraav

Thanks for the reminder on this SO question. Looks like I had it already upvoted from the past, but now noticed additional comments about unlimited IndexedDB possibilities. Maybe that's all we need!

Collapse
khetsuriani profile image
khetsuriani

i try search tutorials but it's little bit resource and this is real problem

Collapse
mikaelsu profile image
Mikael Sukoinen Author

Hey! Thanks for your comment. Is there any specific tutorial that you're looking for? :)