loading...

Will Progressive Web Apps overcome Native?

diogomqbm_ profile image Diogo Mafra Updated on ・1 min read

In my opinion, this discussion is about culture, have we already passed the time of downloading apps and being use to always search for new things on App Store or Google Play? For me, no.

I live in a "third world country", so when people here discover new things like Spotify for an example (no, Spotify isn't new here), they rather search Spotify at their device app store than go to spotify.com.

I think PWA (Progressive Web Apps) are much better, unfortunately we are not prepared for it, yet. We already have very good examples of PWA such as Twitter Lite with very good devs working on it. Now that Apple is also working with PWA following Steve's speech almost 11 years ago:

Despite all that, I don't know how are we going to organize our apps inside the browser!

The question is, with PWA, will IOS and Android developer jobs die? We as consumers, must get ready for a new app Era where we don't download apps?

Some final considerations, this is my first article so I'm sorry about anything.

Please leave a comment below with your opinion!

Posted on Feb 2 '18 by:

diogomqbm_ profile

Diogo Mafra

@diogomqbm_

Frontend Developer and technology enthusiast.

Discussion

markdown guide
 

Currently reading this on the Dev.to PWA and it's excellent. One click to install and use, it's now on my apps menu and responds to link clicks in other apps like a native app.

Downloading apps feels a hassle and don't get me started on all the permissions they ask for. No I don't want to share my contacts, location, message history or anything with you Mr wallpaper app.

Having your app in the same code language let alone the same codebase is fantastic.

 

Just a note on permissions.
PWAs inherit your browser's permissions. They might not bug you about it but they have them. Which is a bit scarier.

 

Interesting, didn't know that. Thanks for letting us know

 

First of all, welcome to dev.to!

will IOS and Android developer jobs die?

Perhaps! I agree, devices and browsers do not properly handle web apps both as a normal tab and after the "download". I don't think web apps will fully replace native apps since there are certain functionalities that the web will most likely never get (such as opening up ports on the host machine to make a server) but I do see PWAs and the like replacing the vast majority of existing applications. Between increased security, sandboxing, portability, Workers, WebAssembly, and more this fits the requirements to make a good >95% of apps.

For the rest, I think either one of two things will happen.

  1. C (and C++, and Go, and Rust, ect) will never die but will greatly change or
  2. Standards are put together to make a "universal" app container built on top of web technologies that expose native APIs. Think Electron but more efficient and with a language more similar to TypeScript.
 

I hope not.

Having a quite slow internet speed, like most people living here in France (main cities get fiber and 1Gbps, other get approx. 100-200kBps), I feel a pure hatred for webapps and systems that require an active internet connection for something that would not require any.

Also, ISPs are still putting data caps everywhere, so that's a very pricey cost.

Biggest problems I still see are:

  • All the problems and weaknesses of Javascript
  • All the problems, including depreciation, size etc. coming with Js alternatives or overlayers on top of js
  • Computing power

I don't say it won't evolve, and I'm kind of curious on how it'll effectively do, because it'll evolve, but on the current state, every web app contained as desktop app using electron is just slow, sluggish and heavy (take a look at the most criticized ones, Slack for chat and Atom for text eds.), and their more optimized alternatives shows that devs are just doing a crap work (Discord and VSCode, lighter and more stable, still very heavy), but I also think that having an entire web environment packaged as desktop app isn't really perfect.

Also, as a dev continuing to learn both desktop and web development, I have a much bigger preference for solid desktop apps, especially since we have some great languages and technologies such as Rust (Conrod), Java/Kotlin (Fx), and much more.

Finally, to get back to mobile-specific questions, I feel that android and ios devs won't die, and I also hope so.

Where desktop have a lot of computing power (and most devs acknowledge that and don't care about how heavy their apps are), mobile phones are a very weak target that generally requires a shitton of optimization to run well even on older phones. And if you're not in the iOS fandom, good are the chances that you try to keep your phone for a few years before being forced to change.

 

To combat a few of your points and to hopefully give you some good news, I have this.

  • On downloads, this is where PWAs are strongest. Web Apps are far (like -10x or more) smaller than their native app counterparts.
  • On forcing a connection to online, this is purely bad coding and Service Workers were made specifically to counteract this. I hope that we, as users, can show the developers of apps such as these that this unacceptable in either case (web app or native)
  • On performance, JavaScript is, young... The hatred of JS, whether genuine or in satire, is stemmed from a long history of bad design decisions that all had their reasons at the time, but we're learning. Web Workers take JS finally off the UI thread, and WebAssembly gives us a way to compile big statically-typed languages to a web compatible format ahead of time.

Hope this helps :)

 

But webapps do not need constant internet access, as there is some storage space available for them in app cache and other storages provided by the browser. This is called "offline first".

As for the data, you'll need data for Twitter for example to see tweets.

So in lot of the cases you can build your PWA and use it without internet after downloading it one time.

 

I can see it happening with browser support for more secure databases but storage is cheaper than ever and it's much easier to build a 23mb native app than cutting down a web app to under 1mb, handle cache and manage service workers, but technology is getting better and we are seeing major improvements in web development every month.

 

Not in the near future because browsers (and especially mobile browsers) suck.

The difference between native and web is getting smaller though. Web apps are getting faster and native apps easier to develop. I think React Native will dominate the market soon.

 

Despite all that, I don't know how are we going to organize our apps inside the browser!

You don't need to, that's the purpose of the open web, which Andre Staltz says it's dead (and he is right).

Making a proper PWA is a pain, and only those who tackle every single issue will be the masters of their domain. Companies with better PWAs are already improving against their competition, there are many case studies in every Google I/O and Chrome Dev Summit. Fortunately the tooling is getting exponentially better every year.

But the only way to learn is to start working on it, caching locally first it's a big problem on it's own.

Making local databases on Native is easier, sadly this is abused constantly, with unnecessary wakelocks triggering on your devices every minute just because the devs didn't bother for a better way or 500 mb payloads because they wanted to ship 40 libraries to do the same thing.

Making a website is hard, but the entry barrier is minimal to no existent compared to a native app, and so is for consumers.

There will always be use cases for native applications, but I disagree Spotify is one of them, even Netflix runs decently on a web application. Most used applications are for data consumption and thus they do not need to be a native app.

If you make a competitor Spotify in a PWA that works correctly you would definitely make a dent on their market share and may even leave them in the dust... but it's not easy, competition is hard. If you try to compete on a native app you will be left in the void.

I think the real question people need to be doing is Should I be building a native application for my business case?

For someone in the US it usually makes sense, iOS has a decent market share for you to get started.

For Android is a pain, there are way too many devices that you need to make the question If I'm going to support all these devices for TV, Desktop, Phones, should I be doing a WebApp instead?

will IOS and Android developer jobs die?

I don't think so no, if anything they will become more rare like COBOL jobs. Maybe very well remunerated because devs in those techs will decrease.

Why will there be less developers?

Companies want to be ubiquitous, this is a problem if you try to develop an app that works everywhere with a reliable UX and UI. So big companies might find it more profitable to sunk costs on proper WebApps instead of Native Apps. Keep in mind that Google and Facebook already control up to 70%, so your's or your companie's piece of the action is getting harder to get.

For small companies with niche markets in a specific device then none of this is necessary, so you can tackle a Native App if you live in a town that makes a lot of them (I live in Atlanta an Big Nerd Ranch means a big presence of native devs).

It's way harder right now to do a decent UX on a PWA than on Native, because by default you have to support a ton of devices and browsers. On Native you can constraint that, making you live a better life in general on the short term. But that is manageable, you could say 'we're only supporting X browsers and versions on launch' instead of tackling 'the whole world'.

 

No Doubt, native apps offer rich functionalities and benefits to the user as well as Admin. But creating a native app for a business is not an easy task to do, it requires a lot of monetary resources and it is a time-consuming process. So it is must to replace in Progressive web Apps regarding business benefits.

 

Guys, the point that I’m also trying to say is that the web is getting prepared for more laboured features, in my perspective, that’s amazing!