Ask HN: Why do such things like smartphone apps even exist if we have web pages?

16 points by foothebar ↗ HN
Regarding how advanced today web technologies are, and how much stuff we can do in our web browsers – why do such things as (most) smartphone apps even exist? Even more: Most of these apps seem to fall into the category of providing a GUI for the functionality a server in the internet provides for it, so being a meaningless piece of software, where the creators have to program a different version for every platform, and are furthermore not allowed to do what they want, and have to share any payments with the platform providers, which get quite a piece of the cake.

Instead when directly using a web page, which can be used by every device, including desktop computers, they also would have access to the devices sensors, camera, microphone, audio, position, but would only have to program once, and would be free to do what they want, including payments going only to themselves.

So why do people provide (and use) apps, instead of proper web technology? Except of some really special ones (like banking), this does not seem to make any sense?

28 comments

[ 0.42 ms ] story [ 30.7 ms ] thread
Add in the "app only" business that exist now, as an extra layer of frothy foolish frosting on the cake of stupid.

The "touch screen tablet" is the epitome of SciFi user interface and has been since the early 70s or so, I think. The "powers that be" have this in their sights and can't hear any of the reasonable objections raised by engineers and users. One might conclude that the real reasons have less to do with "user experience" and more to do with what the vendors can get away with.

The humble keyboard, despite all the reasons there are to hate it, despite all the flaws and room for improvement; despite the lack of "market support" by manufacturing giants, still continues to be used, valued, and innovated on by users.

So the answer to your question is, I think: because BIG money wants there to be smartphones and apps; in the hope that that minimal functionality will prevent the invention of better functions. Competing is hard, so much easier to manage market expectations.

Steve Jobs had the similar idea so he opposed the idea of App store initially but as we know he gave up and we know the result. I think idea is to present "containerized" experience so the user thinks they are dealing with the app exclusively. There is some personal appeal to app whereas web page seems like a general purpose app which some users feel they may have subpar experience.

I think non-techie people are more accustomed to "exclusiveness" where you just reach the app directly as compare to having the choice the entering the webpage address or even clicking a bookmark. Sometimes it is more about human psychology than technical issues.

Can't you place the bookmark as app icon on the device, and then just go fullscreen?
For sure but an average person does not want to figure that out. Apps are marketed crazily and that lives little room to think about those alternatives.
Because the mobile web browser experience just sucks. Thin client vs rich client experience. It’s a downgrade to the basic common denominator experience.

And what amazing games are you playing on a web browser? The same could be said about desktop apps… Why even have desktop apps?

What amazing games are you playing on a smart phone? Most should be very doable as normal web site game, of which many complicated exist?

And normal desktop programs are something quite different, because you often work with big software packages, and large local data items, which you additionally would not want to send around the world, not even being able to do your work, when something remote fails. Which would be no problem for most of your smartphone apps, I'd think.

One factor may be that an app gives the developer full control of the client experience. If your web server application has to support a myriad of browsers, browser versions, browser addons, browser addon versions it could be quite challenging to make your site functional. Really clever developers might take that on as a personal challenge and puzzle to solve but corporations will not entertain such things.

I think the best one could do would be to contribute to a Hall Of Fame of websites that work well with cell phone browsers and create an icon legend that lists what addons are known to interfere with that site.

Beyond that maybe contributions to the next HTML6/7 specifications that which makes writing code that is more compatible with cell phone browsers and addons, giving more control to the client while keeping the site functional even when using addons. i.e. extensions in the spec that addons can utilize to better understand context and intention.

Why would a solid designed web page, using valid HTML, CSS and only a minimum of JS, for extended functionality, be a cross browser, or even browser extension problem? These only come up, when you start to use JS for everything, instead of doing proper web development, IMHO. You do not have to be exceptionally smart to do this, you just have to know your trade, and must not fell to all that enerving animated wanna-be-impressive stuff some think would be great design. As, if you think of these pages done by web designers, which have no real clue how to do stuff, but instead want to show how 'great design' they can do and how great it would be if the whole page moves around all the time, letting you wait for content to load (very) lazy, instead of just delivering it, OK, but a solid developed web page?

And stuff like games come with well tested JS frameworks, where you (should) have no problems if you do not start to fiddle around with required 3rd party cookies, blocking non-referer-sending requests, and other senseless stuff.

I completely agree with everything you said. I think the people that should chime here in should be product/project managers.
I thought this is well known. Especially in 2022. If we could sum it up in two words it would be User Experience.

Games - Even though there are some games that could be done with HTML / JS and there are games as such within app store. Vast majority require Native access for performance and battery.

Icons on HomeScreen. This is partially a platform limitation where you cant add the "Web Site" to Home Screen with "one click". A click on Homescreen to access information is million times easier to typing in a Website address.

Performance - The best HTML / JS apps may be just above the median of Native Apps in terms of performance. And vast majority of HTML / Web Apps performs poorly even on the fastest SoC A15.

Technology - You cant do instant messaging and other things as native app.

App Store provide easy access, distribution and trust to consumers.

Basically the experience of Native Apps is so much better than Web alternative. That doesn't mean I support native app or denounce Web App. I consider the point above as objective truth.

Four words: Can't see that.

* Games: some might be done with better battery life, but most games are simple ones, where this should not really hold. Besides that: If it's so horrible in browsers, the manufacturers should hurry to keep up, as these manufacturers are often the same as the mobile platform providers

* Icons: maybe it's two clicks to add a web page to the home screen, or to click on a bookmark in the browser. But it should be still not more difficult for users to add the bookmark icon to home screen than to install an app, which requires not less 'clicks'

* Performance: most apps are quite simple, and should not need the native boost. By the way: How big would it be really for most apps?

* Technology: if you "cant" do messaging, why does it work? ;-) And of course as web page it already works for ages, also encrypted, if you want. Besides that, email is still superior, and not more complicated, than instant messaging.

* App Store: restricts you in many ways, in what you can install, instead of having a freely visible web page

So already with the restrictions of the App Stores, how can the User Experience for (most) apps be better than with simply visiting a web site? Do you really consider them being too dumb to add an icon to their home screen instead of installing an app?

>but most games are simple ones

PUBG? Fornite? Genshin?

>most apps are quite simple

Twitter is simple, but Twitter App is still better than Twitter on Web. My answer is find me a decent app made with Web technology. The only one that is good enough is VSCode. And that is with lots of native component to speed things up.

Does web apps works? Yes, are they objectively better than Native Apps, best vs best? No.

I think you need to look at how consumer use computing, and not semi pros, nerds uses it. There are people who still have difficulties using mouse as pointing devices.

* "Most games" does not imply 'all games'

* That there also are bad web pages, would be no reason to make apps?

* there are still people struggling using a touch screen

It sounds like you have an existing preconceived notion and anyone giving you any answers isn’t going to make you say “oh you’re right, I hadn’t thought of that”.

The parent gave you valid, legitimate reasons why people do it, and you’re saying “yeah I’m ignoring all that because -technically- you can do the same things on the web”.

The user experience is undeniably better in most native apps, that’s just reality. Nobody’s saying it’s impossible to match it, but to make a web app that comes close to a native app in terms of UX takes a lot of work. Most web apps are nowhere near the level of polish or performance that comes for free with an OS’s UI tooling.

Think about it: If what you’re saying was true, then you’d see services with web apps that are of equal or better polish than their native apps (since they usually maintain both, like how eBay/Twitter/Reddit has their web app and the native app), and that just basically doesn’t happen.

> It sounds like you have an existing preconceived notion and anyone giving you any answers isn’t going to make you say “oh you’re right, I hadn’t thought of that”.

I am still waiting for that effect, respectively only asking further to the parts not fulfilling that, as I am basically asking why we would need (most) apps, if web provides (most) of the stuff in a much more simple way, regarded from developer's side – and a not more complicated way, from user's view.

Also I often struggle with the way big companies are developing their sites, already for the good old web browsers – e.g. Twitter already regularly collapses trying to detect if I am human – so don't take it personally, if I do not take them as measurement, how things should be done. Just because you are big, does not mean you do it right. They can't even get it really managed to develop their sites so that they work normally on a 10 year old box, and are more part of the unnerving keep-the-sites-content-moving all the time, then part of solid web development, IMHO.

Germane to this, though, are which limitations are real, and which are artificially imposed.

Icons are an artificial limitation. Ditto for the app store (access and distribution via web are much easier than an app store, and curation could fulfill the trust aspect).

Technology-wise, there's no technical limitation preventing a web app from sending instant messages. We are, however, hampered by the adoption of browser support for things like cameras, gamepads, etc, but even there, much of that is policy, and not due to how long it takes to integrate with browsers.

Games/performance are the one thing that's true here, though it's possible WASM will upend that, too.

The app stores taking sizable cuts of the profits provide a strong incentive to prioritize apps over web, and drag their heels on supporting web apps.

I dont disagree. From a technology POV, there are zero reason why anything cant be done on WASM in the future [1], and how WebGPU with extension could be used as a replacement for Metal or Vulkan. Or working on DOM access with WASM ( or is that a thing already? ). Others such as Web App and Web API could be developed. But none of these works at this point in time. And not in the near future. Especially when, as you said the platform vendors do not have any incentive to do so.

The single click Home Screen is definitely a platform limitation and not a technology limitation.

There are dozens if not hundreds of Real world examples where companies moves to Web Based technology ( example Ikea ) and move back to Native App simply because the experience, and user retention rate is far higher in Apps. React Native is bridging the gap but many would argue that is Native as well, not Web.

I am not in support of everything App Store. I think there needs to be a balance of things. I think there needs to be an option for user to install ( or sideload, which is a word I hate ). What we dont have an answer is how should Apple monetise what ever they think is needed for their R&D cost that is also acceptable to user and developer.

[1] https://www.destroyallsoftware.com/talks/the-birth-and-death...

I personally can not judge many things, like the performance, that's why I am asking in so (too) much detail for anything. Do you have a link to the IKEA case by the hand, maybe? Was it more an 'we want everything to move all the time, so phones are too slow' problem, probably including 'we load ways too much unnecessary stuff' on their web page, or what drove them moving back?
(comment deleted)
By the way: It's 2021, and especially then people should be able to use web pages, and to place an icon on their HomeScreen, and should not fall for the hype of collecting apps, with (nearly) no sense at all ;-)
Well the answer is complicated but the main things are: 1. When smart phones first started (2007) web tech was not nearly good enough to make the experiences that the smart phones were capable of providing. So many things are still very hard or impossible to do in browser APIs (GPS, blu tooth, compass, gyro, push-notifications, etc). On top of that the Microsoft lawsuits over internet explorer in the early 2000s and the ActiveX/Java Applets security issues made everyone very wary of adding or using custom platform-specific extensions to web apps. Sure Steve could have said: "Hey build web apps, but if you want GPS, use this function that only works in iOS Safari", the would have been crucified by devs and lawsuited to hell by the US (on behalf of google and microsoft lobbyists). In fact look up Push API notifications in Safari, it is EXACTLY this and it is a huge pain for devs and the other companies on W3 are really annoyed at apple over it: https://developer.mozilla.org/en-US/docs/Web/API/Push_API

2. Performance was a much bigger problem, especially for games and 3d acceleration APIs like webgl was also not available back then. To this day the 3d engines makers still don't target the Browser platform because webgl is so limited and buggy. I think Unity did for a bit but eventually dropped support

3. In fact Steve Jobs around 2007 was pushing for web apps as the only 3rd party app platform for the iphone, but due to public pressure (due to 1. and 2.) App Stores came about. They still exist though because the vendors (google and apple) realised the lock-in and closed-garden control over the market was a huge boon for profits. Much like Playstation/XBox/Switch, they really enjoy taking a cut on every sale. Steve knew that when you are the underdog entering a market you have to be open and consumer friendly, once you have the users locked-in you can close down. He managed to hit the jackpot because there was NO viable open alternative to code what the phones were physically capable of, so the developers didn't even have a choice, they HAD to use the proprietary solution. This is partly why the VR space is so promising to big companies, they know whoever gets lock-in effect will be able to milk it for DECADES. We as consumers and 3rd party devs desperately need an open VR platform (maybe inside the browser?), but it seems like it is not going to happen any time soon

The lock-in is much more insidious than you might think though, the lock-in is both in the user-level but as well as the developer-level. In UI development there is this big thing that the UI should feel native to the platform, meaning apps should behave similarly to each other. For example the acceleration and rubber-banding when scrolling down a list should be the same for every app.

Browsers are inherently a different platform that just happens to run on top of other platforms. Anyone can tell that a web app in Windows feels different than a Windows 8 App that also feels different to the obscure win32 configuration screens from windows 98 days that appear if you dig deep into the settings

Android and iOS likewise have the same lock-in effect, web-views wrapped in native apps just feel bad. Not because they are bad, but because they are different. The ONLY way to make a web app feel native in Android or iOS would be to compile their native UI Widgets into webassembly and somehow render them to a full-screen <canvas> tag and not use the DOM at all. Which is kinda pointless, might as well code full native. No matter how much hacking a cross-platform framework does to try to feel native it won't be native because there is no way to mimic millions of lines of code of the native UI toolkit. It is much the same reason Java desktop apps and java applets failed, they didn't feel native inside Windows OR inside browsers

Facebook realised this ...

think about it like this, have you ever tried to get a lay-person to switch platforms? windows->linux MacOS->windows

android->iOS iOS->windows phone (RiP)

they will bitch and moan all god damn day long, especially on the desktop even though all those systems are basically the same. Even people who only use browsers and word/excel in desktop will HATE to switch windows<->macos (mac also has word/excel)

a lot of it (not all) has to do with the "native feel" of apps

My phone doesn't always have an internet connection, or the internet connection can be flakey. Many of the apps I have on my phone work without that connection I find it valuable. It also has the side effect of not introducing random performance problems caused by IO which translates to a smoother more pleasant user experience and better battery life. Web pages really want a network connection for the most part. It creeps in at weird places in the design and that constraint leaks all over the place.
The OP's question is not sincere, they debate any point which is brought up.
For what else is the reply function, if not for asking deeper, when (parts of) answers do not seem to be really reasonable?
The original reason is that they existed before Web pages were powerful enough to do all of those things. Today, it's purely for evil reasons, e.g., to be able to refuse to run if root is detected, to be out of reach of adblocking browsers, or to be able to harvest more of your private data. Now on iOS, there's still some ways that Web apps are lacking, but that's an evil reason too: Apple bans all non-Safari engines, and intentionally limits Safari, so that they have control over everyone via App Store rules.
I don't think I've seen this mentioned here so far, but a big reason why I use (and pay for) native apps is because the subscription management process, at least in the Apple ecosystem, is quite a bit simpler and less user hostile than having to go through an individual site/company for each service.

If I subscribe through the App Store, I can easily cancel my subscription at any time by going to one place and just clicking "Cancel Subscription". Contrast this with some well-known news sites who make you place a phone call and then give you the run around just to cancel a basic subscription.

It would be a nightmare to subscribe to multiple different websites and then have to go through a user-unfriendly process to cancel through each one.

At least for EU people this will be better starting from 2022: Where you can make an online contract, online cancellation must be at least as easy as buying the things, with just a simple click on a button.