> You pay to download 500 songs and one day you stop paying your subscription fee and your entire music library goes away.
- [1] https://simplabs.com/blog/2020/06/10/the-state-of-pwa-suppor...
Makes it difficult to get the full 'App' experience people expect
It's all about the shitty browser storage on iOS.
I want Apple to do this as well to put pressure on google to fix their shit with letting these run rampant on the web.
Web apps that can be made resident on your phone home screen are another story, where notifications may be legitimate (e.g. chat apps).
For instance any shop I create an account with (Best Buy, Ulta Beauty, …) thinks I want to hear from them once a day or more often. If they tried to keep it relevant it would be one thing but it is really a conversation where one side talks talks and talks and the other isn’t listening. Right now on Arstechnia’s Dealmaster they are talking like it is news that Amazon Fire tablets on sale but they ought to just send me a notice when Fire tablets aren’t on sale.
People in this thread keep confusing notification request from random websites with notification requests from web apps you WANT to get notified from. It's a thing. And all browser offer a per-site preference. Having PWA support doesn't mean being spammed by every site you visit.
People who use the web are used to being spammed at every turn so naturally they are going to expect any feature usually used for spam to be used for spamming. It doesn’t help that PWA hasn’t had clear branding that ordinary people would understand.
i hope nobody is deciding that no apps should ever be allowed to send notifications, just because most notifications get blocked. it's still an incredibly useful feature even if most apps use it poorly.
Over time, the cost of these (completely optional and opt-IN) notifications grew enough that I figured it was time to seek an alternative. I fully implemented WebPush notifications and evaluated them with my users. I found that most Android devices wouldn't vibrate nor make a sound when a notification is received, and iOS straight up doesn't support these APIs. With these findings, I scrapped the entire implementation. It was useless to our users and only led to more confusion.
If I had to guess, I would say that is the exact reason 99% of WebPush usage is spammy. Spammers don't really care about quality of service, they just want to cast a wide net. I'm willing to bet the API would see a massive uptick in legitimate adoption if it wasn't so utterly useless in the real world.
This wouldn't be a problem if users could use other browsers that are not that buggy and have the features needed to build native-like app experience. But Apple is banning any other browser from using their own engine, they are all forced to use the buggy and lagging behind WebKit. Firefox, Edge, Chrome, etc on iOS are just skins around WebKit.
So there is basically no browser competition on iOS, and this is how Apple prevent web apps from competing with native apps.
In Windows you can install any other browser you want (even if it ships with IE default).
On iOS, ALL browsers are forced to used Safari's rendering engine. It would be like installing Firefox and it uses Trident in the background.
They’re saying that while the situation isn’t completely analogous, that what Apple is doing is far more egregious than what Microsoft already faced massive judgement for doing.
Antitrust legislators would surely be very interested in this if they were aware of the issue, but most of them probably aren't yet. Some people have been talking to regulators, like Stuart Langridge and Bruce Lawson to the UK regulator, the CMA.
Stuart Langridge presentation to the CMA: https://kryogenix.org/code/cma-apple/
The web should be to the greatest extent possible browser agnostic.
- Websites asking me for permission to send me notifications
- Websites asking me to install an app to use them
What other features are you decreeing essential? I admit curiosity if my distaste is in perfect opposition.
The idea is to be able to build web apps that have feature parity with native apps. (Especially on mobile, where apps are expected to integrate with the system and data connectivity is intermittent.)
If you don’t want that, that’s fine. But native apps are popular for a reason, and those features are a big part of that reason.
Do you really mean the web? Or a small subset of the web (that then probably already has a native iOS app)? For example how would Google search work while offline?
Even making something as "simple" as HN (only compared to Google search) work while offline would be a considerable technical challenge and a large investment for HN, for a use case that is almost non-existent.
Would really appreciate your perspective.
And the ability to continue using portions the app if you briefly loose connection. That can be quite powerful in some instances.
Not everything makes sense offline. If you need to perform real-time lookups, or if the backing database is too large, or the data is rapidly changing, or the user just infrequently visits the site - those are all good reasons to require connectivity.
But if the data is small enough, can be cached, and can be sent asynchronously, and is something the user is using consistently it’s a good candidate. Apps that work well would be things like email, productivity apps (word processing/spreadsheets/photo editing), and maybe small data feeds like weather and news headlines. Even chat is fine, since connectivity gaps are often only a couple minutes long.
My litmus test is “is this something somebody would expect to work while they’re on a train as part of their daily commute.”
I’m not personally arguing for PWAs over native apps!
That said, I also know there are some apps that will never be developed as native apps (due to cost issues), and in those cases it would be nice to give web developers the tools to at least make the experience more pleasant and native-feeling.
It serves the crash page locally, from cache. But it’s clear that they could have invested in this and chose not to. That’s not the OS’s fault, any more than it is when an native app decides not to implement offline support.
But. Native apps are required to ship basic offline mode support, so that when launched while offline, they show something to the user. The open web has no such requirement, and tends prefers the laziest approach without regard for users. Restrictive demands upon apps is what makes me prefer them; I respect others prefer the freedom not to bother with offline or accessibility or whatever.
- Safari reports to pages that permission is given, regardless of actual permission state
- Developers have no way to trigger a system prompt dialog for either, instead requiring a user action initiated from browser chrome
This is so websites can’t even implement their own prompts to sidestep restriction to user actions within the page, or even have the state on which to judge if a prompt should be shown. Bottom line, those features are fine so long as they bring zero additional dickbars/dialogs/etc.
I personally want notifications from the sites I use and I want to know if I can install websites so that they work offline. It takes the guesswork out of "will I be able to use this when I'm out and about" which is essential for the concept to work. Besides that, I just want to use my RSS reader without browser chrome.
There are tons of shitty blogs and crapsites that ask for all kinds of stuff like permissions, persistent file storage and GPU access, that I agree with. Excessive use of these prompts should be a reason to drop that website, though, not to remove the feature.
By the same logic, all notifications should be banned from mobile phones, because there's tons of them that push ads and other unwanted crap (including big names like Netflix). Which is something you can probably do, if you really want to, by just disabling notifications for every app you install.
One thousand notification prompts, one for each site I visit, is unacceptable.
Fifty notification prompts, one for each time I open an app for the first time on my phone, is acceptable.
You’ve only addressed the single-site case, not the at-scale reality that we users face when browsing HN or Google News or any other content aggregator that links out to a near-infinite array of sites.
My browser is for the open web. My phone is for native apps. I’m aware this is upsetting to proponents of PWAs, but it’s not because of technological limitations that I feel this way. It’s because websites target the lowest common denominator, and I don’t have time for that on mobile.
I can barely stand to use HN on mobile, it’s so awful, it doesn’t honor my OS-wide text settings, it has a horrendous text area, it ignores system color palettes, it doesn’t support OS dark mode hints. HN consciously chooses to target browsers only and does not wish to target being an app, and so I have modified my browser to adapt the website to be tolerable to me. But HN does not deserve to exist on my phone as-is outside of my browser.
Very few websites put in the level of effort to deserve to be called an “app”, and my views reflect their disregard for per-platform integration. (Similarly, I loathe apps that are just a website in a shim, and I tolerate them as minimally as necessary for banking and medical purposes, and tolerate none in my everyday use.)
According to my Firefox settings, I've given notification access to about 50% of the websites that requested it. I certainly visit a lot of different sites, usually linked from aggregators and social media such as HN, Reddit and Twitter.
We can both have our ways. Allow for an easy way to disable the prompts permanently, perhaps even in a popup after installation, and we can all go our merry way.
My enjoyment of PWAs basically comes down to the fact that the browser acts as an extra sandbox that I control. I can install addons that change bad behaviours and block tracking resources and I can safely run and update them without risking exposing too much information. I mainly use them for things I run myself (Home Assistant is a big one there), weather apps (Buienalarm) and forums where I want a notification if someone replies to my messages directly. They're the applications that are just interactive enough that a static website wouldn't suffice, but not interactive enough that I want to download an application for them.
One example is Youtube: if Google put in some effort, the entire app would only serve as a downloading and caching platform. Browsers are good at playing video. They're good at simple like/dislike interactions, and they're good at making comments. Yet for some obscure reason, the website is janky and difficult to use, forcing people to use their apps with all of its native code and unnecessary bells and whistles. There shouldn't be a need for the browser to do any serious Javascript work unless you watch 3D/360° video, and even that is uncommon enough that running the code in JS would be good enough. There are rich web video platforms out there with the same basic feature set; many of them in the adult entertainment industry, because of Apple's and Google's unwillingness to platform them, but also outside of it on platforms like Floatplane and its competitors.
Youtube should be a PWA or maybe even a website, not a full-blown app. Sadly, the web version of Youtube is neither of those things.
The lack of these features make Safari, and in some cases even Firefox, simply insufficient for my use cases. I hate Chrome but I started to use these features when Chrome and Edge (pre-Edgium) made their way to implement PWAs and Firefox went the same direction; I expected FF to just take their time, not reject the concept all together.
I actually like HN's clarity and simplicity and it's lack of the barely function rich text editor JS mess. Perhaps dark mode CSS would be a nice feature, but it's not that important to me. I despise blog platforms such as medium that pretend to be apps when they're really just shitty websites.
Our preferences seem to be the exact opposite of each other's, and that's fine. I do't want to impose my preferred way of working on you by forcing things like notifications and other permission prompts onto you, which is why I'm a fierce proponent of easy and clear methods to disable any potentially unwanted functionality.
Even an app following all standards can get refused by Apple's app review and there's no recourse other than to retry and hope this time the reviewer does their job right. Code using several open source licenses can't be uploaded to the Apple App store for legal reasons and there's no way around that either.
I think the web does deserve opt-in methods to access to many features, and I'd even like some features (like WebGL or WebGPU) to be behind additional permissions. Same with <canvas> features, most websites don't need that and it's mostly used for stalking me.
In a perfect world, Google would be able to put a real version of Chrome onto iOS and Mozilla would be able to do the same for Firefox, that way everyone could get what they wanted. The PWA enthusiasts could get a PWA-capable browser, the rest could stick to Safari with all of its quirks. That's not going to happen any time soon, though.
That's a slippery slope argument. Apple could very well require the PWA to be installed first before allowing it to send notifications, and make the install button non-intrusive.
There are now several dozen APIs that require prompts to work. And Chrome is busy ramming through several dozen more.
It's not "a single setting to disable these prompts".
That's one area where the app stores are pretty good. If you open the app store, you want to install apps. The same can't be said for a website.
I think the only way it would work really well is if the add to home screen / install button was prominent in the browser chrome and sites could trigger some effect if they can be installed as a PWA. For example, change from an inactive button to an active button.
You mean things like google maps, gmail and vimeo? They seem pretty popular to me, and significantly improved by the fact that almost anyone with a web browser can access them.
I want webapps. I don't want to install everything and the browser sandbox is tightest available. Taking my apps everywhere without having to install them is really nice.
Actually nobody cares about "the original purpose of the web". The web has included technologies to build apps very early by the way, back in the 90s.
Yeah, you’re right. No one ever wanted to use Hotmail on the web back in the 90s. No one wants to use Google Maps now. Please, please god let me have to download a native app from an App Store in order to access my online banking! It’s what the masses demand!
I want some of them, if they make sense. I will give you that a lot of things just don't really make sense as a webapp, but a lot of other things do.
There is a lot of "small" things I'd rather run in the confines of a sandboxed webapp than run as a "native" app. Things I use once in every blue moon, where I do not want to download a binary or worse track down a bunch of dependencies and compile myself. Opening a website in <10seconds is just faster than that, and hassle-free, and doesn't mean I have to maintain the stuff (either by keeping it up to date, or remembering to get rid of the thing after use). Even worse are the webapps pretending to be "native apps". Please stop packaging your "webapp" only as an electron app if you only ever use normal web browser features.
My problem with the state of things is just that every other "small" webapp tries to compel me into making an account for absolutely no reason first, or sell me "premium" features, or is plastered full of ads (which is less of a problem with the adblocker I use). Worse, if they do not really let me export my data. But all this also applies to native apps these days.
You have a choice. If you want to run PWAs, get an Android phone.
> If they had great support for PWAs a lot of companies and developers would go that route and there would be no native app option.
No. Apple doesn't want to let go of the app store model and the money it gives em. Every other problem one could conceive of is solvable.
I think the biggest problem with PWAs is the resource usage. A well written PWA will use a lot more battery, network, CPU, and memory than a well written native app. That's not solvable.
PWAs are a lowest common denominator solution. They are good for developers but bad for users.
What complete nonsense. It's hardly baked into the rules of the universe. Of course Apple could figure this out at a technical level, it just doesn't work for their profit margins. Besides, it should be my choice and not Apple's whether I want to install an app that uses more CPU.
> They are good for developers but bad for users.
There are entirely valid use cases where the expense and hassle of making native apps prevents any app existing at all. Small businesses building apps for their staff, individuals building apps for themselves or families, small groups of friends.
Probably not. Running an app in the browser is essentially running on a virtual machine. That's not going to be as efficient as a native app.
Mobile web apps suck because mobile browsers make them suck.
There’s no reason I can edit complex spreadsheets in Google Sheets in my desktop web browser, but every time I go to Reddit or Quora on my mobile browser, they claim that their native apps are required to truly display text and images correctly.
You can't explain that PWAs have no place in iOS using the excuse that Apple is doing it for our sake. Sorry, that's just dumb.
Web apps are lowest common denominator solutions and that’s not where Apple wants to be. They know their users are better off with native apps. If you disagree, then stick with Android which has pretty good support.