loading...

PWA vs. native app

twitter logo github logo ・1 min read

I recently browsed the webs looking for an iPhone app for dev.to, but did not find any. On the other hand, I think the mobile site is excellent. All it would have saved me is a few clicks.

I started wondering: what benefits does a native app really have, compared to a well designed progressive web app (PWA)? Which way(s) did you pick, and why?

twitter logo DISCUSS (28)
markdown guide
 

Native apps allow you to more easily save large amounts of assets and data on the client. They also give you direct access to hardware features.

A PWA allows you to code one app, accessible on all platforms, that you can instantly update at any time.

I'm building a web app (which may evolve into a PWA) because I'm the only developer, so I don't have time to build multiple native apps, and I don't have the need for special hardware features or large amounts of persistent storage on the client.

 

Notably, dev.to can be 'installed' (as a PWA) on Android, and the experience is pretty much the same as what you'd expect from a native dev.to app 👌.

 
 

Interesting... I haven't seen it. Where do I find it?

In the share menu there is an “add to homescreen” option

Difference with Android is that Chrome on Android generates an actual app on the fly, which it will prompt you to install.

That is pretty freaking awesome. Didn't know about that before.

On iOS I thinks it's only accessible in the Safari share menu. And you don't seem to be able to be logged-in.

It is only accessible from the share menu and you can log in

When I open the PWA and login it opens to Twitter in Safari to authorise.

But Safari then redirects to dev.to in the browser. If I go back to the PWA I’m still not logged in.

This is not your experience?

Mine does not open Twitter in Safari it stays in the dev window

🤔 What version of iOS are you using? (I'm on 11.4)

11.14.1 but I also don't know which version I added it to my homescreen :(

So I don't know if it added under apple-mobile-web-app-capable=yes or because of web app manifest, or if the functionality is even different in new versions of iOS.

 

I have done both, on multiple projects, and here is my take:

  • If you just want to deliver content to the user (text, images, microblogs, ... etc) then PWA is definitely the way to go, your PWA will get more hits since you can apply SEO to it and you will have larger audience, (Desktop + Mobile users).
  • If you need to have access to low level hardware capabilities to get better performance for a game or 3D project for example, then you should go native.

Note: PWA (thanks to html5 capabilities) have access to some hardware API such as Camera and mic.

 

Good question. Some thoughts from having done both:

Native apps target a specific platform, and can be optimised for the specific nuances and conventions of that platform. You'll get APIs that are more closely aligned with the particular hardware you're accessing. Done well, a native app can "feel" much more like part of the device. But, you're limited to publishing through the official app stores, and you need to build/tweak the application for each platform you target.

The web, on the other hand, is universally accessible. Put something online at a URL and it can immediately be used by anyone in the world with internet access. The flip side of that freedom is that you can't predict or control how or what device someone will use your application. A good web experience will, by definition, vary from one user to the next.

Users are primarily concerned with doing some task in the most convenient way possible. There's a lot more overhead in downloading a native app from a store than there is from following a link. Sometimes that's worth it in the long run. To pick an approach I'd have to consider the task and decide whether native capabilities are necessary or beneficial to warrant that extra step for the user. If not, I'd go with a well designed website with a PWA to enhance it.

 

Best of the two worlds is to build a PWA and embed it in native apps.

I've done this with a few clients projects and that's really the best option when you don't need to access high level features that only a native app can deal with.

The main advantage of native apps in this case is that your app can be found in the stores. And as soon as you sell your project as an "app", users will try to look for it in their store.

 

Hi Simon,

May you share an example to build a PWA and embed it in native apps.

 

Besides that native apps are harder to build, another problem for native apps is that distribution cost is really expensive these days. To get your app downloaded on Apple app store or Google play store is very expensive, and even it is downloaded, it can be buried among so many other apps already on the phone that it barely gets used.

 

I think the main benefit is greater on IOS.
Chrome for android PWA is great it has push notifications and background sync, but my main issue is that IOS deletes your cache after a few weeks (for me days) if you don’t open the app. If given the choice I’ll choose native app for iOS and pwa for android.
I really hope iOS gets the same experience.

If I’m wrong about the cache issue help would be appreciated. I created a pwa app for the World Cup worldcup18.co (side project)

 

Even though we love PWAs, native mobile apps still have benefits.

Let me name a few:

  • great UX and UI;
  • better user engagement (although push notifications are available for PWAs as well);
  • listing in app stores (however, there is a way to add a PWA in Google store);
  • inter-app communication;
  • access to more device features.

We have covered this topic on our blog in detail, take a look: Progressive Web Apps vs Native Apps.

Also, I have attached a comparison table of PWAs vs native apps:

 

From a tech and dev point of view, I would go PWA instead of Flutter, but, from the business side of view, PWA is not commercial yet. As in my own app I would use PWA, but I don't think I could convince most of the customers.

  • the user behavior is pretty much: open the store, search for the website name. You are not there, you are not on mobile
  • users by default close the website popups,alerts, so most likely they will not install PWA (the users that are not technical at all)

Hopefully, in time, with the help of devs, phone manufacturers, store owners, OS features and adoption things will improve for PWA.

 

A good native app has the better user experience such as smooth animation, the new platform features; but web app has the faster time to market, independency delivery channel that not limited by Apple/Google.
IMO

 

I would go to PWA if I don't need some hardware capabilities that web can't offer.
Checkout what web can do today to know if you should go native or PWA.

 

Agree, it's a great idea to check with What Web Can Do.

 

I think you misunderstood me, I am not talking about the dev license (i.e. the $99 dollar fee that Apple charges you.)
I am talking about cost of acquire an install for a native app, these days global average is $4 dollars or more.

tune.com/blog/2018-app-install-tre...
emarketer.com/Article/Cost-of-Acqu...

The cost are simply facts, and a potential downside for native apps. (as the OP was asking about comparing Native Apps vs PWAs).

I am not sure how the debate regarding convince others of your idea is relevant to the topic I or the OP raised.

Classic DEV Post from May 6 '19

The state of GraphQL

The report about the state of GraphQL base on the partial data gathered during the annual "The State of JavaScript" survey

Bertil Muth profile image
Agile coach and developer