What’s the difference between native, web, and progressive web applications?

By John McCann

Author image
March 20, 2017 12:41 am

As responsive layouts and web technologies have evolved, web-application development has become a more cost-effective (and easier to maintain) alternative to developing a native iPhone or Android app. Unless you are considering a game or an application that relies heavily on native technologies (built-in cameras, microphones, etc.) web applications can now replicate most  – if not all – ‘required’ functionality available in native mobile applications.

What’s the difference between a web application and a website?

If you are wondering what the difference is between a website and a web application is, there’s a developer joke that suggest “a few thousands dollars”. While this might be true, the main differences is that a web application depends on interaction and requires programmatic user input and data processing (in the backend), whereas a website generally only serves dynamic content and allows for simple inputs from users.

What’s the difference between a web application a native mobile application?

A ‘native’ mobile app is a program that is downloaded and installed onto a user’s mobile device (for instance, from the Apple App Store). A native app does things like sending push notifications, and working offline. A web app is an app that runs from the internet, and often adapted to tablet and smartphone formats or can be ‘desktop only’. Something to keep in mind is that creating a web application does not mean that you can not publish your app in one or more App Stores! (there are tools available which can package web apps for publishing in various app stores).

What is a progressive web app (PWA)?

A Progressive Web App uses modern web capabilities (like JavaScript caching) to deliver an app-like user experience that is reliable, fast and feels like a natural app on the device. PWAs can be installable live on the home screen of a device with out the need for an an app store.

Generally speaking, progressive web apps have a new level of quality in design and architecture , allowing functionality like instant loading (by pre-caching resources) and storing input, regardless of the network state (i.e. information can be saved offline and then sent when a connection is available).

To see what makes a “Progressive web app” (or PWA). check out this checklist provided by Google. It breaks down all the things they consider are the Baseline for a PWA. From this table you can see that a Progressive Web App is collection of technologies and design approaches that work together to create a user experience that feels more like a native app.

You might also notice that one of the key concepts behind Progress Web Apps is “Service Workers” which are in simple terms, scripts or APIs that handle functionality like offline capabilities and content caching.

If you’re building a web app, or have an existing web app that you are thinking about improving, the good people at Google have even put together an open source tool to help developers create better web apps. Using Lighthouse you can run a bunch of tests against any page and see how well it performs as a web app – Lighthouse will then recommend any improvements. 

Why you should consider a web (or progressive) application vs a native iPhone or Android application

The are a number reasons why a web application is often a better idea than developing a native application, but here are the main reasons:

  • It’s easy to prototype and create proof of concept – development times are often half that of building native mobile apps (meaning that this approach is also more cost-effective)
  • Web applications can be used with any modern browser so you don’t need to pick a platform
  • With progressive web apps some functionality can still be made available offline
  • Code is easier to update – if you are testing a new concept, or launching a new service with a web application, it’s a lot easier to pivot and roll out new changes (with an native app you often have to wait for a lengthy review process)
  • If you are building an app that requires a web-service (i.e. you want to be able to access data via your app from ‘the cloud’), you develop your front-end and back-end as integrated solution, not as 2 separate parts operating as a whole – there’s no need to manage two code bases
  • It’s still possible to publish your web application to app stores. Depending on the requirements of your app you may be able to wrap it in an application layer and publish it to one or more app marketplaces

At Futura Digital, we’ll work with you during concept development to determine which approach will be the best match for your idea. Often we’ll end up providing 2 or 3 different options for native apps or web-application development so you can assess all of the pros and cons of app vs native apps and make an informed  decision about the best direction for your project .


NUFIRE CASE STUDY

Futura Digital recently completed an web application for Nufire (a local Fire Safety Company) to replace their existing paper-based Fire Equipment Auditing processes. The platform includes a responsive web application for onsite staff visiting their customer’s properties, allowing them to perform Fire Safety audits from a mobile device.

Using a Progressive Web Application approach, we were able to take report data and cache it to mobile devices, helping mitigate against service dropouts and connectivity issues that can be encountered when working in remote locations. While this solution is completely web-based, it looks and feels much like a native app when used on a mobile device (the screenshot below shows the backend of the app).

nufire app on tablet device

When audits have finished, reports are sent directly to a web-services where ongoing edits and administration can be completed (including PDF generation of reports and intuitive workflows based on the status of each report). Nufire now have a streamlined web application (and process) for managing assignment and reporting on field audits, dramatically cutting their time spent on admin and filing.

This project is an example of where a native application was considered as part of the solution during kick-off, but we were able to quickly determine the needs of the project to scope a more affordable solution that performed the same required functionality using a web app – incorporating elements of progressive web app design.

 

If you have an idea for a web application that you’d like to discuss, we’d be happy to have a chat about your concept to see if this approach might be a good fit for your product or service.

1 Comment

  • graham says:

    Very interesting posting… I’ve been grappling with this for a long time. Many people want apps for things that don’t require apps. The browser has for a while been seen as a low-performing environment for applications of all shapes and sizes to function within, which having a presence in app stores is a necessity. I still think the browser is the “killer app” – and that you’ve given me and that circumventing the overhead of managing native apps is the way to go, unless there’s a compelling reason!

Leave a Reply

Your email address will not be published. Required fields are marked *

Show Buttons
Hide Buttons