Native vs PWA apps: A Close Look

Oleksandr Leuschenko
October 31, 2019

Take a look at the home screen of any iPhone, iPad, or Android device and you’re likely to see the same thing: a neatly-arranged grid of applications. Whether they’re carefully curated or highly disorganised, apps nevertheless provide users with the tools and services they’ve come to rely upon in their day-to-day workflow.

The mobile app revolution was kick-started with the introduction of the iPhone, where desktop-class web browsing and media capabilities were easily accessible through a breakthrough mobile device. But on the first generation of iPhone’s, aside from the apps that came per-installed on devices, there was no App Store serving up a rich ecosystem of mobile software.

Instead, Apple pushed WebApps, websites built using technologies to make websites appear and behave as if they were native apps. The idea was simple: Developers could push powerful, mobile-friendly interfaces through the web, giving users access to services without having to develop an entire app. But over time, drawbacks of the first generation of WebApps began to emerge. These included user experience problems and the inability to access crucial app information without an internet connection.

In order to work around this ‘offline mode,’ developers used different frameworks (e.g. PhoneGap) to develop an app whose UX/UI was mimicked using web technologies. The first results were not exceptional, but today’s web apps have evolved to offer a more native and engaging user experience. In fact, only experienced users can tell the difference between hybrid and native apps. Progressive Web Apps, a new generation of web apps that promise to blur the lines between web and native apps, incorporates native like features and offline capabilities to provide comprehensive functionality through a powerful web interface.

What is a native app?

Native apps are software programs written with a specific programming tools for use on a particular platform or device. Taking full advantage of an operating system or hardware, native apps offer optimised and reliable performance and gain access to a device’s secure components, such as a camera or microphone. A native app tends to deliver the ideal user experience that works seamlessly with the operating system.

Developing native apps, however, can be an expensive and time-consuming process. Because a native app is written for a specific language or operating system, making the app work on another device requires significant changes to the code. The app’s code can be ported to work on another device but may still require significant work to fully optimise the old code for the new platform.

What is a Progressive Web App?

A Progressive Web App (PWA) uses modern web technologies to deliver a native app-like experience. A reliable, fast, and engaging alternative to traditional web apps, a Progressive Web App deliver a powerful user experience that can be accessed directly from the home screen of a mobile device. Progressive Web Apps are compatible with multiple browsers, delivering a native like experience for both Android and iOS devices, as well.

Progressive Web Apps are engineered to offer native functionality regardless of network connection. Background sync capabilities and resource pre-caching eliminate network dependence, enabling apps to load even when a connection isn’t available. Web push notifications can also keep users informed to important app messages through a familiar native interface. The result is an immersive, full-screen experience that’s as easily accessible as a native app.

Rather than downloading a native app from an App Store, Progressive Web Apps are typically suggested through an in-browser banner ad that prompts the user to add the app to their home screen. In other cases, entering the app’s URL into a device’s “Add to Home Screen” functionality will deliver the Progressive Web App rather than a simple link to a web page.

How do some major Progressive Web Apps compare to their native counterparts?

Many of the Progressive Web Apps offered by well-known companies provide web-based user experiences that are nearly indistinguishable from that of a native app.

One of the most high-profile Progressive Web Apps is Twitter. Rolled out to most users in 2018, Twitter delivers a native like, full-screen experience that carries over the same major functionality used in its native app. While there are a few small user interface changes, such as moving the native app’s bottom row of function icons to the top in the Progressive Web App, the functional experience is comprehensive and feature-complete. Still, as a Progressive Web App, Twitter has some drawbacks ‘ a lack of functionality supporting animations, slow startup times on most devices, and limits to the web-like user experience, for example.

Instagram also offers a high-performance, high-profile Progressive Web App that retains most of the features of its popular native app. This includes its notifications and the user’s ability to view stories. However, users will see some differences in terms of navigation and functionality.

Ride-sharing service Uber took a different approach to its Progressive Web App, focused on delivering a native app experience through a lightweight web interface. The core app, at just under 50kb, was engineered to load quickly on 2G networks while delivering an app-like experience on devices not supported by the native app. Even though the mobile Uber client is a decidedly stripped-down alternative to its native app, it nevertheless offers a nativelike experience whose most critical functionality can be accessed through even the weakest wireless connection.

How can you develop both a native app and Progressive Web App from a single code base?

Multiplatform software development tools make it easy to build native applications and Progressive Web Applications that share a common code base. Toolkits like Google’s Flutter‘a mature mobile development tool whose web component is in active development’enable existing mobile-based applications to be packaged as Progressive Web Apps for reach to a broader variety of devices, or to provide a companion web experience to an existing app, as well.

Even If you’re a developer seeking only to build a mobile app, multiplatform software development tools can extend the reach of your solution to users across the web. Rather than limiting development to a single platform, a single codebase through a multiplatform toolkit can deliver native and web apps to users of any platform. Unlike the WebApps of yesterday, Progressive Web Applications are a powerful companion to any of today’s native apps.

About the Author

Share this article