How to develop your first progressive web app

Progressive web apps are a hit now. If you are into web development or app development for that matter, you have probably noticed that PWAs are currently a hot topic in this area. And with good reason. They are fast, they load new content, they are safe, easy to use and install. What more can you ask?

So, if you are only a beginner in app development looking for resources to learn from and help you with building your first PWA, here are some useful things to start with.

What is a progressive web application?

Progressive Web Applications, or PWA, can be defined as web apps similar to websites which can also appear to the user as native mobile applications. This app type incorporates features both web and (mobile) app experience.

PWAs have the following features:

Progressive

Responsive

Connectivity independent

App-like

Fresh

Safe

Discoverable

Re-engageable

Installable

Linkable

In order to be qualified as progressive, these apps must work for every user, no matter the browser, since their core tenet is a progressive enhancement. Additionally, such apps must fit any screen size (responsive design): desktop, tablet, mobile (smartphone), smartwatch, or whatever may come. Since Internet connectivity is still an issue in many developing countries, PWA must be designed in such a way that their users can access them even when they are out of data reach – either offline or on low-quality networks.

They feel like apps because their shell model separates application functionality from application content. Due to the service worker update process, their content is always up-to-date, and since they are served via HTTPS, content tampering and snooping are banned. They are identified as applications as a result of service worker registration scope (big thanks to W3C Manifesto), which means that spiders can easily index them.

PWAs also have push notifications which allow re-engagement, and users can add them to their home screens without having to access an app store. And finally, you can easily share the app’s link via URL, without the need for complex installation.

So, if you are interested in building your first PWA, scroll down.

5 tools for developing a PWA

1. Google Developers

Whatever you do, always start from Google. Seriously, their Developers website is awesome as it offers a lot of useful tools for building websites and web apps. For example, their Code Lab features this useful tutorial for building your first web app, among other things.

In it, you will learn how to construct a weather forecasting app using live weather data and allowing the user to add cities to the app. Mind you that it is quite a lengthy read, so make sure to dedicate enough time to read it.

2. PWA Builder

It is said that PWA Builder is the fastest way to create progressive web applications, which quickly builds a service worker which functions even when your device is offline, by pulling and serving the offline.html from your web server whenever you lose Internet connectivity. If you want to submit your website to the Android or iOS app stores, you can use PWA Builder – just insert your website’s URL and fill in the form with additional details, after which the platform will automatically generate a manifest based on the data you provide.

3. AngularJS

Along with HTML and CSS; JavaScript is one of the main elements of web development. It is usually used by experienced Java and .NET programmers and you can use AngularJS to build web apps. AngularJS is a JavaScript-based open-source frontend web application framework maintained by Google aimed at developing single-page applications. Since its initial release in 2010, it is used on websites such as Inter, NBC, and ABC News, as well as other 12,000 websites.

4. React

ReactJS is a JavaScript library for building user interfaces, first released in 2013. It is quite similar to AngularJS, however less complex. ReactJS is maintained by Facebook and Instagram, and also a community of individual developers and corporations. React enables developing large web apps which use data which changes over time without having to reload the page for new information. It mainly improves speed, simplicity, and scalability, and can also be used in combination with other JavaScript libraries, such as AngularJS.

5. GitHub

And the last, but not the least, is GitHub. Though we have already emphasized how Git can help you improve your web development process, we now want to highlight some other aspects of this awesome platform. Mainly, GitHub is an online repository of many projects built by its large community. There you can find gigantic repositories of e.g. PWA.rocks or Webpack which may help you broaden your knowledge and maybe, someday, you can contribute to their libraries as well. There, you can check what other developers are working on, ask questions and get instant replies from your fellow colleagues coming from all over the world.

Extra tip: check your code

If you want to make sure that your web app code is impeccable, you can use Google’s tools such as Lighthouse or AMP, which we have already tackled in our beginner’s guide to AMP. AMP is a project intended for developing speedy mobile apps which work on any device, as it gives you an outline of how to create structured data to enable AMP-specific features in search results. On the other hand, Lighthouse is an open-source tool for improving the quality of your web pages. You can use it to audit your web app, either public or not, and get a report of the page’s performance, which you can further use as indicators of its improvement.

Wrapping things up: so here they are – five useful tools to help you build your very first PWA. Have you tried using any of them? Or do you have anything to add? Do write your insights in the comments below.