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)
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 ๐.
Works on iOS too!
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:
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.
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.
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.
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:
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.
Hopefully, in time, with the help of devs, phone manufacturers, store owners, OS features and adoption things will improve for PWA.
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.