Progressive Web App or Native App which one is better in terms of performance and development cost? Progressive Apps no doubt wins the race why? let me explain it to you in this post. On one hand, we have native apps that are no doubt very fast and efficient in some cases. On the other hand, we have websites that are slow and with the connectivity issues, it only gets worse.

To overcome this issue twitter and google came up with Accelerated Mobile Pages Project (AMP) in 2016 which solved the issues of the slow connection. It solved and worked up to some extent but still, we face the problems with poor connection. Especially when we see the blank screen and we just have to wait and wait for an infinite time staring at the blank white screen. This is where PWA comes to our rescue. The best part about PWAs — you get the best user experience possible in slow connectivity as well as no connectivity (yep, you read it right..)In this article, I will discuss with you all the possible things that you need to know about PWA and how you can get the max out of it.

Problems with conventional Native APPs

Developing a native app has many problems associated with it like:

Not always easy to develop and support; especially with regards to extra time to develop and support different platforms, versions and devices.

Not a cheaper proposition, as support for multiple platforms, devices and versions often increase the cost.

Not easy to distribute; since publishing to an app store is an ongoing, tedious pro

Higher time to market

For native applications, the user needs to update the app to see the changes. For most users who set up auto-updates when their phones are on wi-fi, this is acceptable, but it doesn’t work for everyone.

Dependency on app-store

What is Prograsive Web App?

It is a software development methodology that combines the best technologies used in mobile and web applications. It’s like a website that acts as an application, though it was built using web technologies. PWA takes advantage of functions of browser and features to act like a native app. In order to qualify the app as a progressive web app, it should have following characteristics.

Characteristics of PWA

Progressive

A progressive web app should work on any device and enhance progressively. In other words, PWA should take advantage of any features available on the user’s device and browser.

Discoverable

Since progressive web app is a website, it should be discoverable in search engines. This is one of the major advantages over native applications, which still lag behind websites in searchability.

Linkable

As another characteristic inherited from websites, a well-designed website should use the URI to indicate the current state of the application. This will enable the web app to retain or reload its state when the user bookmarks or shares the app’s URL.

Responsive

A progressive web app’s UI must fit the device’s form factor and screen size.

App-like

A progressive web app should look like a native app and be built on the application shell model, with minimal page refreshes.

Connectivity-independent

It should work in areas of low connectivity or offline (my favourite characteristic).

Re-engageable

Mobile app users are more likely to reuse their apps, and progressive web apps are intended to achieve the same goals through features such as push notifications.

Installable

A progressive web app can be installed on the device’s home screen, making it readily available.

Fresh

When new content is published and the user is connected to the Internet, that content should be made available in the app.

Safe

Because a progressive web app has a more intimate user experience and because all network requests can be intercepted through service workers, it is imperative that the app is hosted over HTTPS to prevent man-in-the-middle attacks.

Features of PWA

Performance

When it comes to performance nothing can beat Progressive web apps. Their performance and speed will always be better than that of a typical web app.

This is the app that is designed by Atyantik using PWA and you can see significant results in the average speed and load time.

PWA also provides guidelines to build a UI which animates and responds at 60 fps. To delight users, mobile web apps need to behave, in terms of performance and interface, ideally within these time limits.

Push Notification

One of the best feature when it comes to native apps is that they have the ability to push notifications to engage users. When we send a timely, precise and relevant notification to the user, it increases the value of the offering. With the service worker enabled one can easily accomplish this with Progressive Web apps. W3C is responsible for creating specifications for both Push API and the Notifications API.

Hardware Access

We can program the progressive app to get access to native hardware capabilities. Currently available capabilities are:

Click to call – Easily link phone numbers for direct dial

User location

Device orientation

Audio/Video recording and playback (Playback is already available in several mobile browsers)

Some other capabilities that Google is working on are:

Generic sensor API

Ambient light sensor

Proximity sensor

Accelerometer Sensor

Gyroscope Sensor

Magnetometer Sensor

Vibration

Battery status

Wake lock

These hardware access capability standards are also managed by W3C

Credentials API

With the Credential API, user do not have to type all the details for the login form again. It enables the web to use device accounts for one tap and auto log-in feature. Thus it improves the user experience.

App install Banner

Mobile Chrome provides an easy way for the web page to prompt a user to install the web app to their homepage. This is in addition to the ‘add to home screen’ feature. It helps in increasing accessibility to the app.

Web Payment API

Shopping cart abandonment rate is around 69% across all devices. It is even higher for mobile devices. Web payment standards developed by the W3C group called Web Payment Working Group (WPWG) improves the current online payment mechanism. With the current support for PWA, users can now make the payments with a single tap.

2 Major Components of PWA

There are two main components of the Progressive web app. First one is App Manifest and second is Service Workers. Let’s understand each of them in detail.

Service Worker

Service worker is one of the most powerful components of PWA that gives it the power to act like a native app. It is basically a standard that comprises scripts run by a browser in the background. Service workers do not need a web page or user interaction. They can work on their own. As of now, they come with features like push notification and background sync. In future, they are also planning to give support for periodic sync and geo-fencing.

App Manifest

It is basically a JSON file which helps in providing configurations to enable several native-like features in a web app.

Add to home screen – User can now add a web app to their home screen for easy access. The home screen will display an icon of the web app. We can specify icons set (with different sizes) for add to home screen functionality in the web app manifest file. In Mobile Chrome, as with some other browsers, you get an option for it in the menu.

Splash screen – A splash screen helps in providing a great user experience when the app is not yet ready to display the first chunk of information. In the absence of a splash screen, the user gets confused about the state of the app. In web manifest, we can give the splash screen image, title and theme colour configurations. When a user opens the web app they will see a splash screen just like in a native app.

Theme colour – We can configure a theme colour to add colour to the toolbar, address bar and other features.

Launch style – We can configure display and orientation for the web app. Display options are the browser or standalone while orientation is portrait or landscape.

The Web App Manifest specification is another standard managed by W3C.

Case Studies

Flipkart

Book my show

Ali Express

Cost of Development

According to a study, an average user spends 80% of his total time on apps on only three of his apps (For me its Chrome, Quora and Medium).

The other apps just sit idle for most of this time consuming a precious portion of the memory. Moreover, it costs around ten times to develop an app rather than creating a website for the same. The cost can get much higher if you plan to develop and maintain separate code bases for different platforms like Android, iOS and the web.

How we develop Progressive Web apps at Atyantik

The approach is similar to building a native app or any other web app. It includes the following steps

Goal

In this step, we ask our client to define the purpose and goal of building this app. This gives us direction for the project and based on which we can give our feedback and ideas at a later stage.

Audience

In this step, we define the prospective users of the app. Here we ask the client to address few questions like a type of target audience, type and level of users access etc.

Functional Specifications

We always believe in Agile and give importance to communication over massive documentation. Document only the part that is necessary, like using swagger for API documentation. After this, we gather all the requirements from the client and convert it into functional specifications so that our devs can work on it.

Third-party Vendors

This step includes the research and selection of third party vendors, service and products such as server providers, SSL certificate providers, based on the clients’ requirements for any third party services.

PWA Development

Now the development team may join the process. Its tasks are the following:

Creation of the PWA framework and architecture

For this, we use our open source initiative, React-Pwa boilerplate, build upon PawJS, both maintained by Atyantik and has more than 1K+ stars on github.com ( i never miss a chance to boast about it )

) Design of database structure

Completion of the development and implementation of all functionalities

Investing in PWA

If you are one of the growing startups and want to keep up with the pace of everchanging technology then this is the right time to invest in the Progressive web app. Here are few factors that might motivate you in investing in progressive web apps.

Increase Reach

Google Chrome announced 1 Billion active monthly users in just 4 years of its first release. The growth is expected to be more than double in upcoming years. Check out the latest data released by ComScore, which says users are spending 2.5x times on mobile web apps vs the top 1000 native/hybrid apps.

Lower acquisition costs

Google worked with several companies like Flipkart and AliExpress for their progressive web app strategy and helped them build a better mobile web presence.

One of the key matrixes for any marketing team is the average customer acquisition cost. Selio declared that their average customer acquisition cost for progressive web apps is a whopping 10 times lesser than for native apps.

Improved Conversion

Conversion is another key matrix which explains the actual transactions made by acquired customers. As discussed in the above case study where you saw how Flipkart and other big players have actually used this strategy to shift to the PWA and saw massive improvements in their conversion rates.

Where to go from here?

If you are a product owner and want to launch your own PWA app then you are at right place. Allow us to help you. With our framework, we can customize and help you deliver the app as fast as possible.

If you are a developer then go straight to react-PWA site and check out our react boilerplate. Since we believe in giving back to society the boilerplate code is open source you can download it and use it and customize it as much as you want. In return, we ask you for a small favour. We are looking for developers to help us with proper documentation. If you can contribute to it it would help us a lot to make it better. Besides, we also have created a framework based on the boilerplate Paw.js. You can check that as well. If you get stuck, we are always there to help you.

Happy Coding!