One of the adjectives for mobile apps you’ve been hearing for the last few years is probably the PWAs, Progressive Web Apps. Some probably have sounded crazy to you with a statement like, PWAs is the future of human interaction with handhelds. In time, we might bring parity to web and native apps pushing the mobile apps forward leaving the confinement of stores. PWAs is here therefore reaching more users serving more parallel.
Now the question rises,
What exactly is Progressive Web App? And why now?
Apps with user experiences and reach of the web in the forms of reliability, fast and engaging feels are so far defined as PWAs or so as defined by Google itself.
A Progressive Web App uses modern web capabilities to
deliver an app-like user experience. – Progressive Web Apps
In general, native apps in iOS and Android sends regular push notifications, load offline tasks and provides the native feel in the apps. Native apps load in homescreen of the users and works son and so forth offline. A mobile web app on the other hand, hasn’t done the above historically in comparison with the native apps. And then came down the new Web APIs, design and architectural concepts to support everything that a native app can do.
Progressive Web Apps bring all the features we could expect from native apps in a standards mobile browser experience using the blessing of secure container accessible via Web. Let’s talk through some of the core factors that make PWAs seem more Native!
Apps shell concepts provide initial loading environment for the mobile web app UI so that the whole content of the application can be loaded and run smoother and faster like the native ones. Although App shell is not a framework of API itself, provides a unique design approach for the developers to enhance the caching abilities of service workers, we are coming into that later.
Therefore, the main purpose of app shell is having the capability to load the UI and content separately from one another. This theoretically improves the usability and performance of the web apps.
While building the PWAs, using app shell concept, you can expect an app layout i.e. tabs, controllers, navigators, sliders etc. load immediately, cache it through a service worker, and later fetch and load the content through JS; make PWAs behave like native apps!
What are these workers here for PWAs? It’s said, service workers are incredibly powerful and complex technology behind the deployment of PWA technology. From supporting the background compatibility in offline mode, loading the content, caching when needed, push notification, service workers work a whole lot more than these.
Service workers, just as other JS files, stay behind the scene as script independent of the PWAs and response the task requests for events, like connectivity changes, network requests, pushing notifications and etc. etc. Most of the modern mobile web browsers support service workers to load the PWAs including Chrome, Mozilla in Android.
PWAs shift power from OS to browsers!
Before PWAs, the web apps were not installable in the mobile OS rather, one has to pin the website to their iOS or Android browser homescreen to type the whole address on the bar to avail the service. Hence, the web apps could not come with features we expect from native apps. And truly nobody could ever think to expect like that, until now!
You can install the PWAs in your home screen with native banner. With the web app manifest, PWAs can be linked to the browser HTML pages and also installable like a native app connected to the web. We are coming into the web manifest in the following section.
Now, what you can achieve with installable PWAs?
One apparent and most important fact of installable PWAs is the ease in usability. There will be no janky scrolling to slow-to-response interface for the web app development. Now, with PWAs, you can offer your customers with full-on immersive homescreen right on their finger tip. Ever, with push notification you can re-engage the users as you needed to.
For the PWAs to be successful, they need to behave like the native apps are expected to work. If the developers and given control over how the PWAs would behave while launched, only then the PWAs will be purposed for what they were expected.
The web app manifest, a JSON file gives the developers that control they needed to shape and make the PWAs act on the user screen as how they are expected. The developers can script the manifest the ways their users would want to launch the PWAs and most importantly how they could launch them. In android operated phones, the manifests can link to the browsers (Chrome, Mozilla) and connect to the HTML pages to support the above functionality in natively behaved and installable web apps.
To make all these happen, for every type of web apps developers always go to do the following:
• Create the manifest
• Create uniquely beautiful icons
• And Set the start_url
Now, what’s the catch for web and mobile app developers in building and designing the progressive web development?
Frontend for PWAs
RESTful APIs are the most popular to frontend developers in providing the ways to communicate with the resources on the web. Without worrying the underlying architecture, using RESTful APIs, developers can easily focus on developing the frontend and design effective PWAs to work faster.
Framework Support for React, Angular and Vue.JS
Angular- provides service worker support and app shell for offline Angular 2+ applications. Installing Angular is easier and it contains Ionic framework to leverage Angular to create native apps, Cordova to run apps on phones and includes built-in service workers and manifest to deploy the app on the web at the same time. So, expertise in Angular is highly appreciable and time consuming in the development phase of PWAs.
React- once installed, generates the manifest for PWAs and an offline-first caching strategy service worker immediately. Having a ready to use react application will tell you how to turn your app into PWA.
Vue.JS- already contains a CLI with PWA template, so skill in Vue.js is leveraging for developers already.
CSS Framework Conundrum
Working with CSS on rendering to deal with styles and selectors is always messy. However, for PWAs it’s messier; So, the clever solution is using the framework in developing the frontend. Among so many popular ones, Bootstrap, Vuetify are the oh-so-dope for web apps.
Backend for PWAs
While choosing to build a PWA, the trickiest part is choosing the backend technologies to support all the native functionalities. In general, to build a PWA, developers will need a great many tools that can support the requirements in the following:
1. Database to store data
2. App engine to build and run services expected
3. Web server delivering the PWA and assets required
4. Identity handler
5. CMS (Content Management System) for marketing
6. Search engine to produce service reports and
7. In case if needed, cloud integration to provide portable access including on-premise.
So, what could be the areas of expertise for developers to accommodate all these requirements in one app to make it native still connected?Why PWAs technologies are in concern now, is the need and advanced way of serving the smartest users of the web. Everyone, small and large tech service providers are moving to PWAs.
Why PWAs technologies are in concern now, is the need and advanced way of serving the smartest users of the web. Everyone, small and large tech service providers are moving to PWAs. Recently, Twitter Lite sees 75% increase in tweets with new PWA and reduces Data usage. So, it’s better late than never to know what’s the catch for developers in progressive web development!
In our next series we will be featuring out some of the backend technologies, those can support in “Building a Progressive Web Application: The Backend”