“Progressive Web Apps are experiences that combine the best of the web and the best of apps.” (Google Developers). Brief, to the point, and encompassing, in just a few words, all the reasons why PWAs have gained so much popularity over the last few years!

They sure carry loads of potential to shape the future of mobile web in the years to come!

Now let's try a “guessing game” and see if we can guess why you've chosen to build a progressive web app instead of sticking to optimizing your current site for mobile:
 

  • they're... progressive: they work regardless of the used web browser
     
  • they're not connectivity-dependent: not only that they don't need internet connectivity to run, but they do load fast even in the context of a terrible network performance 
     
  • they run on modern web technologies 
     
  • they're “clusters” of app-like features
     
  • they're installable: users get to add them to their own home screens and to reuse them with a simple click on their shortcuts 
     
  • they're responsive out-of-the-box
     
  • they're not constrained to refresh entire web pages when they're loading new content 
     
  • they send relevant push notifications 
     
  • they load at full-screen
     
  • they grow more powerful with time, as the user-progressive web app relationship “matures”, so to say
     

Moreover (and this is no tiny detail, for sure), to the memorable experience that a progressive web app delivers to the end user, add the benefit of a relatively low-complexity development process!

Speaking of which, here are the 5 best tools to use to build a progressive web app:
 

1. AngularJS, Polymer or React

When you say “web development” you instantly say “JavaScript”, right?

Yet, when you're planning to set up a progressive web app you should be more specific than that: you should “laser-focus” on one of its many tempting frameworks! 

In this respect, here are the 3 ones that we recommend you to consider! Select your suitable core framework depending on factors such as your future app's complexity or the time limit that you need to adapt your workflow to:

Angular.JS

Pros: 

  • probably one of the most powerful JavaScript frameworks for building web apps
  • the environment that its newest version, Angular 4.0, provides is the same for both for mobile and desktop web development 
     

Con: 

  • although there are plenty of tutorials out there that you could use, you might still find this framework to be too complex in case you want to build a progressive web app with just basic features and functionalities

React

By far this framework's most “seducing” feature is its component-approach to web development!

Practically all the components putting together the UI are JavaScript-based, which enables you to easily reuse them at need! A powerful UI development speed-booster tool!

Besides its component-centered approach we could easily point out a couple of other reasons for choosing React to power up your progressive web app with:
 

  • giant Facebook supports it (and along with it all its worldwide users, which are constantly testing it, as a global-scale)... need we add more?
     
  • it's React Native's foundation, meaning that you'll be able to easily and seamlessly port your React-powered apps to native apps
     
  • thanks to the component-based UI, you practically get to deliver your future progressive web app to any browser, device or operating system; using Node.js and Reactive Native, those components can render both in the browser, on the server and inside the apps themselves

Polymer 

Now when time is a “merciless” projection of your client, Polymer makes the perfect choice of core framework to build a progressive web app!

It “spoils” you with:
 

  • templates
  • reusable components
     

… which stand for the perfect definition of a “fast app development process”! 

Creating prototypes is, no doubt, the perfect use case for this framework! You can just make use of the template that Polymer provides you with for setting up the code of your app project and add on the client's input later on in the development process!

There's more! Since “fast” is the defining characteristic of this framework, where do you add that Polymer uses PRPL pattern for speeding up the app's delivery to the chosen device?

Should we mention, as well, that the template features the Google-emblematic material design out-of-the-box?
 

2. Webpack: An Essential Tool to Build a Progressive Web App, a Custom One

If the aforementioned Polymer makes a great choice for getting started, for setting up your apps's prototype, then Webpack gives you access to the next level! The one where you build a progressive web app that's more complex and front-end driven.

Its two major benefits:
 

  1. it's a module bundler: it enables you to bundle your JavaScript resources (even fonts, CSS, images and other non-code assets), which will get treated as JavaScript objects, meaning that they will load significantly faster
     
  2. it simplifies the whole creation of dependency graphs (you'll no longer need to display the links to all your JavaScript files on your HTML page)
     

In short: managing dependencies gets so much more streamlined with Webpack

Con:

  • along with its speed-enhancing features, Webpack comes with a quite steep learning curve. A manageable one, though, if you consider all the learning resources and documentation available online (that aren't beginner-friendly though, so get ready to invest some resources of time for learning your way around this JavaScript module bundler)!
     

3. Knockout 

If it's a lightweight, yet functionality-loaded, quick to set up progressive web app that you have in mind, then Knockout is the framework to go for!

Here are some of the powerful features that make it an indispensable asset for your toolbox:
 

  • it comes with a light library (13 KB), yet carrying a heavy load of functionalities
     
  • you get to “inject” its library into an existing website without extensive rewrite
     
  • it's easy to learn
     
  • it provides you with templating, meaning that building complex apps gets significantly faster (no more duplicated DOM elements)
     
  • it works exclusively on JavaScript (making your future app accessible from any browser, any framework)
     
  • it's great for handling MVVM bindings between HTML and JavaScript
     
  • it enables you to extend your HTML
     
  • it comes with a load of pre-built attributes (so you won't need to write them, yourself, like it's the case with other “rivaling” frameworks)
     

And this is how our suggested “arsenal” of tools to build a progressive web app looks like! Keep in mind, though, that this is an ever-changing list, considering the fast pace at which new web technologies emerge in the digital landscape!

Share the article

About the author

Adrian Ababei

Adrian is our CEO, a full stack Drupal web developer with no less than 14 years of experience in designing, implementing and supporting interactive websites and applications. Completing his Drupal expertise with project management skills, as well, he's the one ensuring that we deliver all the Optasy's projects on time, within budget with no compromise on quality whatsoever.