Not all Apps need to be Native
Progressive Web Apps are bound to replace most Native Apps!!
There are over two million apps on the App Store and Google Play. Most of them could be broadly categorized as Gaming Apps, Shopping Apps, Messaging Apps, or News Apps.
Other than Gaming apps that extensively use device capabilities like the gyroscope, audio and GPU acceleration, most other apps make limited use of the device capabilities but on the other hand their content is quite dynamic in nature with close to 80%-90% of the app content being served dynamically.
The main reasons why apps are built as native is because:
- Native apps have the capability to offer a rich user experience, with interactions happening at 60 frames per second.
- Native apps support Push Notifications, a crucial feature for most businesses.
- Apps can leverage Device Capabilities to enhance user experience.
However Native apps do come with their own set of challenges, some of them being:
- The obvious overhead of maintaining different code bases.
- Hybrid Apps often experience Jank and there is a constant struggle to make the app work seamlessly across multiple devices.
- As the number of supported devices increase, the app download size also increases.
- Content discover-ability has been a constant challenge, with search engines still struggling to effectively index app content.
- Sharing of app content and deep linking is still something most apps haven’t got it right yet.
- Ensuring your backend services continue to support legacy versions of your app that users haven’t updated yet.
- The painful process of forcing users for an app update incase of critical updates or bug fixes.
Progressive Web Apps to the Rescue
A new breed of web apps called Progressive Web Apps (PWA) are now able to offer most of the benefits of a native app while at the same time overcome nearly all of the challenges associated with native apps.
With PWAs most native apps no longer need not be native.
In simple terms a Progressive Web App (PWA) is a regular web app that is progressively enhanced to look, work and feel like a native app.
Some of the core features of a Progressive Web App are:
PWAs can be directly ‘installed’ or added to homescreen from your regular website, without having to go through the app store or play store. Once it has been added to the homescreen the Progressive Web App behaves like any other native app.
Since PWAs receive the content from your server, they are always up to date. No more trying to force users to update their apps.
Can Run in Offline Mode:
PWAs make extensive use of a browser feature called Service Workers, this allows app developers to build PWAs such that the entire app can be cached on the users phone and then run in offline mode. Service Workers can then continue to run in the background checking for new content and update the cache when it finds one.
Works well in flaky connections:
By taking advantage of the Service Worker, apps can be programmed to cache elements, thereby ensuring that the app connects to the server only to download the necessary content. What this means is not only do the PWAs help in keeping data transfers to the minimum, they also work very well in 2G or even spotty network connections.
Support for Push Notifications
The ability to send push notifications to your users is one of the main reasons why most online business go the native route. Now with the Push APIs and Google Cloud Messaging (GCM) one can easily add push notifications to a Progressive Web App.
Superior User Experience:
Because PWAs use concepts like the Application Shell and caching via service workers, PWAs load almost instantaneously and respond faster to user inputs, especially as the app begins to be used more.
Discoverability of content is still one of the main concerns with Native apps, and this is where PWAs score over them. Because PWAs are regular Web apps they are indexed by search engines and hence easily discoverable. This is a huge advantage for eCommerce portals and other business selling online.
Progressive Web Apps in the Wild
Progressive Web Apps are quickly gaining popularity. Some of the popular sites that have switched to Progressive Web Apps or have implemented service workers are:
theGuardian (talk slides) Not a true PWA but uses service workers
What does it take to build a PWA:
Are PWAs the Holy Grail of Mobile Apps? Well.. not quite yet, but it will get there very soon.
The ability for the PWA to perform at its fullest depends on the mobile browsers. Mobile Chrome supports all the features for a PWA, thus allowing PWAs to operate at their full potential on the Android Devices. Firefox, Opera support Service workers and Push notifications and now even Microsoft Edge have prioritized Service Workers in their feature list. iOS Webkit currently is still lacking in adopting services workers. Nevertheless PWAs are still ‘installable; and can run in a shell mode thus behaving like a native app even on iOS devices.
Mobile Web apps have been trying to make in-roads into mobile for a while now but have had little success, however thanks to evolution in web technologies, PWA are now poised to overtake native apps at least across categories like shopping, news, and social.