Native Apps vs Web Apps

Published on 27th Nov, 2016 by Brad K

I recently read an article by Eric Elliot titled: Why Native Apps Really are Doomed.

On most accounts, I agree with the author Eric. The sticking point for me is that he assumes (or doesn’t mention the alternative at least) that a web app is a direct replacement for a native app. While this is true for 90% of the use cases, there are certain features that require a native app instead of a progressive web app.

The most important (IMHO) being push notifications, especially the new enhanced ones with iOS10. Granted, user communication can be handled by email and or SMS but it isn't as cohesive as a push notification and if you look at the conversion rates, email can't compete.

This article is a little old, but shows how effective push notifications can be.

Some more required functionality besides push notifications missing from progressive web apps are things like:

Play inline video (sounds like this is coming soon to iOS 10) Use In-App Purchases / In-App Billing iCloud integration Apple Watch Integration HealthKit GameKit, etc...

What I typically do on my projects is create a Javascript bridge that allows the web app to communicate with native Swift / Objective C or Java code and deploy the app through their respective app stores. This creates what I like to call a hybrid progressive web app (that’s a mouthful!). What I like about HPWA’s is that we get 3 user facing scenarios with a single codebase. The user then has the option to:

1) Visit the URL and immediately access the app (the main benefit of a progressive web app) 2) Install the app on the home screen with one or two taps 3) Install the native app, giving added features like push notifications, integration into Apple Health, watch integration, etc…

Unfortunately, everything to do with app development is not always about the underlying technology either. Distributing through app store's is also another avenue to market your app to your users. So like with most things in tech (and life in general), there is no one single answer. Things are just not that black and white. My suggestion as always is to do what is right to get the project done in the most effective manner.