DEV Community

Bertil Muth
Bertil Muth

Posted on

PWA vs. native app

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?

Top comments (25)

Collapse
 
briankephart profile image
Brian Kephart

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.

Collapse
 
alainvanhout profile image
Alain Van Hout

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 πŸ‘Œ.

Collapse
 
nektro profile image
Meghan (she/her)

Works on iOS too!

Collapse
 
bertilmuth profile image
Bertil Muth

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

Thread Thread
 
nektro profile image
Meghan (she/her)

In the share menu there is an β€œadd to homescreen” option

Thread Thread
 
raqbit profile image
Ramon • Edited

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

Thread Thread
 
jsn1nj4 profile image
Elliot Derhay

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

Thread Thread
 
mudlabs profile image
Sam

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.

Thread Thread
 
nektro profile image
Meghan (she/her)

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

Thread Thread
 
mudlabs profile image
Sam

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?

Thread Thread
 
nektro profile image
Meghan (she/her)

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

Thread Thread
 
mudlabs profile image
Sam

πŸ€” What version of iOS are you using? (I'm on 11.4)

Thread Thread
 
nektro profile image
Meghan (she/her)

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.

Collapse
 
c0derr0r profile image
Irkan Hadi

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.

Collapse
 
erikerskine profile image
Erik Erskine

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.

Collapse
 
xngwng profile image
Xing Wang

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.

Collapse
 
simondepelchin profile image
Simon Depelchin

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.

Collapse
 
conanchen profile image
Conan Chen

Hi Simon,

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

Collapse
 
adamledwards profile image
Adam L Edwards

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)

Collapse
 
codicacom profile image
Codica • Edited

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:

Collapse
 
bgadrian profile image
Adrian B.G.

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.

Collapse
 
kozlown profile image
Nigel • Edited

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.

Collapse
 
codicacom profile image
Codica

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