
Ask HN: Do we still need native apps? - dzonga
Just wanted to know what&#x27;s everyone opinion on whether we need mobile apps?
 My position is for the majority of the cases, we don&#x27;t based on 1. Browser, CPU &amp; GPU performance across mobiles, even laptops. Most &#x27;native&#x27; apps and simple puzzle games or runners can be played well in a browser. Given that we&#x27;ve new browser APIs such as device orientation and game controls etc ?
Then they&#x27;re notorious sites like Reddit who try push you to download their app, so they can serve you ADS.
======
toast0
Yes. Web browsers are nice and offer a very low barrier to entry, but native
apps have the opportunity to do things better. That could be faster startup,
smaller installs, more integrated install management with the OS, better
offline experience, more networking options including support for custom
udp/tcp tailored to your application, etc.

Certainly it's possible to make a native app that is worse in these aspects,
and some of these may become more addressable by web platforms in the future.

It also depends on your target market and budget. Developing countries still
have plenty of devices with very little CPU or RAM. But targeting multiple
native platforms is a lot of work, and different versions of the same platform
can also be painful.

------
bananicorn
Yes. For several reasons: The most important of which is, that we are not
always online. Be it because we simply choose not to be, because we want our
goddamn peace for once, or that we're actually in a place or situation with no
internet connection. Sure, some webapps work offline as well, but it won't be
the majority, exactly because an always-online state is assumed.

And even though performance is usually not an issue, battery life is. And most
browsers introduce more levels of abstraction than are necessary for the
application at hand.

------
RcouF1uZ4gsC
The shift to from native to web apps has been a disaster in a number of
different fronts.

1) Performance. A Visual Basic 6 app on a 500 MHz system with 256 MB of ram
was much more smooth, with less lag and instantaneous response than a modern
web app on a 4 core 3 GHz machine with 16GB of RAM.

2) Cost. In the past, once you had purchased the binary it would continue to
work basically forever as Microsoft did a great job with keeping Windows
backwards compatible. Now, software has become a service that you have to pay
for every month. If you don't pay, you can't log in to the web app. In
addition, if the web app made changes you didn't like, too bad. If the web app
is discontinued, too bad. Also, if you think that the cost is better because
you are using "free" web apps, you are paying with your privacy.

3) Lock-in. With native applications your data was on your machine. Even it it
was a proprietary format, if you tried hard enough, you could defacto reverse
engineer the format since you had access to both the file itself and the
machine code. Now, your data is not stored on your machine and the web app
controls access to your data.

4) Privacy. With a native app, you could do all your computation and data
manipulation on your machine, even disconnecting it completely from the
network to make sure your sensitive information did not go where you did not
want it. With a web app, you are of necessity sending your data to someone
else to process, and you have only their word that they won't do anything bad
with it.

5) Software Freedom. Web Apps basically did an end around on the GPL and LGPL.
With native apps, if they used GPL or LGPL libraries they would have to inform
you and you either had the whole source code (GPL) or the option of modifying
the library and using it with the application (LGPL). With web apps, they
don't even have to tell you if the backend is using GPL software and you have
absolutely no way of inspecting or modifying that GPL software that you would
have had with a native app.

------
PenguinCoder
Absolutely still need native apps. What we need more of is proper cross
platform programming ala Golang. All attempts at shoehorning Web based
solutions into this space have been horribly behind the curve, especially on
performance.

------
p3llin0r3
No. I don't think we do. Writing native apps is a huge waste of time and
resources. While the big players in the OS space were squabbling the web
browsers snuck in and drank their milkshake.

Browsers / web apps are a more portable, and more productive method of
distributing GUIs. Full stop.

When deciding to go native or not, you have to decide: Will you hire several
designated IOS application developers, several Android application developers,
and have them re-implement your website? Or will you hire the equivalent
amount of front-end engineers and have them collaborate and develop the
codebase together using a shared toolkit?

People moan about how it's slow, but they tend to miss the point: I don't work
for a "writing native apps and make the apps fast" company. I work for a
software company that builds a product and sells it to users. Developer
familiarity == Speed == Money

And really: Do you honestly believe spending 300k a year on engineers to re-
implement the same shit we've already written, but in a different language
with completely different semantics is a good investment? Rewriting all of the
work we've ALREADY done for our mobile view in CSS and HTML and Javascript in
Objective-C and Java?

Unless you're writing software with INTENSE graphical requirements, and even
THEN there is webgl, writing a native app brings no value. You could spend
that time optimizing your website written in JS you've packaged as an
IOS/Android app. Or, I don't know, implementing new features and actually
bringing value to your company.

PWAs are much slower, but as time goes on this will be improved.

As for the electron haters: Show me a more productive way to implement GUI
applications. Show me the applications and frameworks that are putting out
GUIs that look even remotely as good as the Electron applications.

I think we're going to see a rise of PWAs and apps that are simply web
browsers in disguise.

Edit: I'll also add that the "not always online" or "bandwidth" argument is
bunk. Crazy idea: Package your web application as an app, and include it's
dependencies and everything it needs to run. Once you do that, the "download
once" advantage of a native app is bunk.

~~~
eadmund
> People moan about how it's slow

No, I moan about how it's an abuse of my privacy, an abuse of my security & an
abuse of the web itself.

Web pages which use JavaScript enable all sorts of malicious nastiness which
plain websites do not. They are _impossible_ to properly secure (in that I get
a new version every time I open it up). They are not what the WWW was meant to
be.

No thank you.

~~~
p3llin0r3
OK so how is a native application different? You can do the exact same things
in a native app.

~~~
eadmund
Because it's _possible_ for a native app to be secure. I can audit it, pay
someone else to audit it for me or rely on someone's free audit. I download
the code once, and run it many times, rather than downloading a fresh version
each time, and hoping the provider hasn't tampered with it. I can even run it
offline, on an airgapped computer.

And a native app is using the APIs of its platform as intended, rather than
violating its entire raison d'être, like single page apps violate the Web.

------
lwansbrough
Here's my take:

Chrome, Safari, Firefox, and Edge all support WebAssembly today. It shouldn't
be too long before we see native DOM support in WebAssembly, as well as some
rudimentary implementations of UI abstractions on top of that.

I think within a few years, we'll see PWAs being written in various languages
-- whether you're a classic JS developer or a hipster with a Go fetish -- and
compiled to WebAssembly. PWA functionality is finally starting to be supported
by Apple (mind you, it's _terrible_ in iOS 11.3, but it's a start) which is
great news. Web is still a questionable delivery mechanism for PWAs as they
can be heavier (especially if people start compiling their own runtimes into
their packages -- great opportunity for CDNs here I think!), but web delivery
is just one way to do it. And it's not even that bad.

There won't be a separation between native and web: you'll have a project
compiled to WebAssembly that is either delivered via the web, or via the Play
Store/App Store/Windows Store. This is _great_ news for devs _and_ Microsoft
(or any other company struggling in the mobile market because of the apps
problem.)

------
Bekwnn
So long as mobile data plans continue to suck in most places, I don't see the
desire for mobile apps over websites going away.

On a different note, I don't see native desktop apps going away since things
like games and editing software require serious focus from the hardware. Web
versions would be painfully slow.

------
millstone
Do we still need web apps?

There's notorious sites like reddit who try to push you to visit their web
page, so they can serve you ADS.

~~~
petecox
In visiting a mobile webpage, an adblocker suffices.

native apps can utilize advertising APIs, of which there's no way to turn off
unless you install their $3.99 "Premium" app.

~~~
return1
sounds like a very bad excuse to push native apps which can be much greater
security hazards than web pages

------
earenndil
YES!

Performance with javascript can approach native code, but it isn't _as_ fast
as it yet. In addition, it takes up more system resources (ram/cpu) making it
so that you need _more_ of said resources and more power is drawn (which is
especially problematic on mobile devices, where battery is limited).

To the extent that it is possible to block ads in a browser, it is also
possible to block said ads in a mobile app.

------
knlam
Yes. I build apps/website for a living so here is my thought: PWA is still
very early and buggy as hell. I try to ship PWA version of my website and it
did not work well under many circumstances

I also build a React-native app. Although the experience is absolute amazing,
it is a little bit laggy compare to other native app (and beautiful animation
is a pain)

So yes, for now we still need native apps

------
bsvalley
How about a Fitness app for example? Yes we do need native apps for a bunch of
other use cases you haven't mentioned. In-app purchases also help reducing the
amount of ads you'd get on regular websites. I do agree with you in terms of
performances and improvements with technologies like AMP, etc. We will get
very close to a native app feel in a few years from now. Though, the real
offline use cases like a fitness app again would require something fully
controlled by the OS on mobile. Oh... security! there we go, another good
reason why sandboxed apps are probably useful in certain cases.

------
cecja
yes, the most common resolution is still 1366x768 and the most RAM installed
is 4GB. For us with their 32GB Ram and i7 processors everything is fine but
for the most common user we still need native apps. If you buy a laptop with
windows 10 of the shelf for under 500$ which is where most of the sold laptops
everything like slack feels like crawling through mud. You even have to manage
your Browser tabs or youtube starts to lag. There is no way we are ready to
only serve webapps.

------
BjoernKW
Yes, but their use is relegated to specific purposes.

With business applications in particular, which often are mostly about
entering, analysing and moving around data, native apps don't really make
sense anymore.

The web is by far the superior platform (among other aspects) when it comes to
relatively easy and scalable software delivery and maintenance.

------
ksk
Its great when you can use a service when the vendor is not interested in
making an app for your platform, but browsers being so taxing (I'm assuming JS
is the culprit here) is one of the reasons my battery doesn't last a full day.
Not to mention needless bandwidth consumption on mobile, where data is scarce.

------
yellowapple
I don't like it when my device (whether a phone or laptop or desktop or
whatever) is completely useless without an Internet connection. Therefore, _I_
at least need (or very strongly want) native apps.

I _don 't_, however, need "native" apps that are themselves useless without an
Internet connection.

------
http_418
I think we do. Especially if we want to take advantage of the new AR and VR
apps that are coming to market.

------
nitwit005
Javascript can be as fast as C, but generally isn't in practice. For games,
there is no practical portability benefit, as most of the game developers
write things so that most of the game is common code that calls into some
wrapper around the native phone APIs.

~~~
lawnchair_larry
Javascript can’t even be close to as fast as C, nor can it come close to C in
terms of memory usage.

------
muzani
From a development perspective, native apps are faster and cheaper to build
and maintain, as well as more up to date. Probably the only reason to do a web
app is so you can have a team with only one core skill.

------
AlphaMike
Yes. It's really important to develop native apps. In our side, no. We have no
problems about this. But about User Experience It's really important to
develop native apps.

------
forkLding
Can web apps be updated without approval from the appstore or playstore? Just
curious, having developed natively, this slowed me down the most.

~~~
BjoernKW
I find this comment quite a bit disturbing. There's something wrong when
people start to think that you need approval for putting something on the web.

This also sounds like something sinister from the 'well-intentioned' but
misguided politician's playbook: Have every piece of content on the web
approved beforehand to fight terrorism (or whatever other pretext du jour).

------
oneweekwonder
If you truly care about your user experience you write native apps.

For everything else a hybrid or web app will do.

------
Bulbasaur2015
rule of thumb is stay away from mobile web unless necessary because of slow
browser performance

~~~
dzonga
I don't know about browsers being slow these days ? WebGL2 and the various JS
engines V8, Chakra, JSCore

------
iampaul
Im using more native apps than web apps. The shift back to web wouldnt make
any sense

------
sintaxi
Web vs Native is a non sequitur. It's really about distribution, control, and
accountability. The question should be do we still need closed platforms?

~~~
dzonga
couldn't agree more!

------
liveoneggs
how stable are these apis for even the next five years?

------
ricksnyke
If you ask me it should be the other way around, do we need web apps at all?

1\. Most web "apps" actually only work on Chrome, so there's that. So much for
the open, standardized web.

2\. Most web apps track the heck out of everything you do.

3\. Most web apps are sluggish and use more resources than they should.

4\. Most web apps are like Juicero, expensive solutions to non existent
problems.

~~~
dzonga
I think 4. applies to Native apps -- if we look at the App Store and the
dreams of wannapreneurs it's mostly an App for that. Bet 98% of the apps on
the App Store get a $1k in revenue/month

~~~
potta_coffee
Hell, if that were true, I'd be making apps. I doubt that any but a small
percentage of apps make any money at all.

~~~
dzonga
I meant bet 98% don't make $1k in revenue. my bad

