Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't really follow the world of PWAs, what is Apple doing to cripple them on iOS?


Their Safari browser, running on WebKit, is full of bugs and lagging behind in features such as Push Notifications, Install prompts for Web Apps, and many many others. It makes it impossible to have quality Web Apps running through Safari.

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.


Things I don’t want on the web:

- 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.


In good software, disabling those prompts would be a single setting. I'm sure Apple can find a way to make it work, they've got plenty of reserves in the bank. In Firefox on Android, it's in Settings > Permissions, with the defaults to "Ask to allow" and the only alternative being "Blocked".

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.


Your logic is not aligned with my own. I visit a thousand websites a month and never return to most of them that month, if ever. I use the same fifty apps each month.

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.)


> One thousand notification prompts, one for each site I visit, is unacceptable.

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.


Interesting. You and I visit very different websites if you get that many permission prompts. The worst offenders in my experience are low-effort tech blogs I encounter when Googling an error message.

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.


Opt-out rather than opt-in is a philosophical issue at the core of many concerns. I simply don’t think the open web deserves opt-out access to my notifications. Websites need to step it up and become apps if they want me to risk my time on their notifications, and if they choose not to, so be it.


Some websites won't or can't become apps because of app store rules, especially on iOS. That's why the web is seen by many as a way out, and why iOS web developers in particular seem to be such aggressive proponents of adding more PWA features.

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.


> In good software, disabling those prompts would be a single setting.

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".


Other people want different features than you. Consider businesses who want to distribute PWAs to their employees instead of going through the laborious and time-consuming process of waiting for Apple reviews, resubmitting if you get a "Monday morning cranky reviewer", etc. For these folks, the app review process is primarily just wasted time and effort.


Apple has an enterprise distribution system for exactly that use case, instant distribution with no review required. So that’s not a valid example.


The only way I could ever support these features being added to Safari on iOS is if:

- 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 totally agree with your second point, but your first won't work. If a PWA has been downloaded it can report back its status - any PWA developer would rely on their own status tracking implementation, not some unreliable flag provided by Safari.


Yeah I see no issue for “installed” PWAs having access to real status, I just don’t want to see any hint of a prompt while I’m in my browser. The web’s lack of intention-gating makes it too ripe for abuse, but once a PWA is installed the user has expressed interest and a higher level of consent.


Off the top of my head: The web app working while offline, local storage, and background sync.

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.


I just tested the only website I have in “Add to Home Screen” PWA mode on iOS, and it caches all of itself perfectly fine offline, but since the site is coded badly, it doesn’t recognize that it’s in offline mode and crashes instead of being a useful app.

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.


> Off the top of my head: The web app working while offline, local storage, and background sync.

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.


I mean web apps, but not the broader web. Things that would have an analog as native mobile or desktop apps. This doesn’t really apply to content sites.

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.”


OK so Gmail is a perfect example then. Let's imagine a scenario where PWAs were fully possible on iOS and the user has a choice of a native iOS Gmail app or a PWA webview app. Do you not think that a native app would offer a better user experience and that 9/10 of users would prefer it?


Yes, personally speaking, I’d prefer the native app given the choice. :)

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.


Fair enough. Can you give a few examples of real world sites that would benefit from this (that already do not have a native app)?


Long-term static content like documentation. Apps that can operate on local data like various text editing, notes, primitive video and audio work, etc.

And the ability to continue using portions the app if you briefly loose connection. That can be quite powerful in some instances.


Isn't that case somehow similar to how Microsoft used to bundle IE with Windows? iOS isn't a monopoly such as Windows was, but you could use another browser engine on Windows and you can't on iOS. Shouldn't that at least worry antitrust legislators in the EU and/or the US?


Definitely. The situation on iOS is much worse than it ever was on Windows. Apple is banning all competition in the browser space on more than 1 billion devices worldwide.

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/


I have mixed feelings about this. Without Safari being required on iOS, Chrome's market share would be overwhelming and then we'd be in a situation back more like the bad old days of IE, where a single browser dominated not just on one OS but across the entire ecosystem.


And undoubtedly, if Blink-Chrome were present on iOS you can bet that many web devs would target that exclusively, requiring you to trade away battery life and privacy to use the entire web.

The web should be to the greatest extent possible browser agnostic.


No, not at all.

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.


The poster you are responding to is saying the same thing, but also referencing the huge judgement that Microsoft faced for pre-installing Internet Explorer / making it the default browser.

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.


Exactly, thanks for clarifying - I've been afk :)


Ah, I stand corrected :)


OP probably wants site to be to send notifications even though Firefox’s research on the topic has shown that they are 99+ percent spam. I find it very annoying when I visit a site and there's an annoying pop-up asking for notifications (even though chrome and firefox block most automatically). The Mozilla study showed that sites already try and show 100s of billion notifications to users a year "Notification prompts are very unpopular. On Release, about 99% of notification prompts go unaccepted, with 48% being actively denied by the user." https://blog.mozilla.org/futurereleases/2019/11/04/restricti... I also would bet that most acceptance clicks by users were accidental.


Notifications from Web sites are spam.

Web apps that can be made resident on your phone home screen are another story, where notifications may be legitimate (e.g. chat apps).


Notifications from websites that I don't want to receive are spam. Perhaps it's a webapp where I communicate with friends, and want to be notified.


I tried using the web notification API for a project recently - a project which is putting users' needs and wants above anything else. Our users wanted to receive push notifications whenever we go live, so the initial prototype used SMS notifications since that's what we were already using.

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.


There is nothing stopping Firefox from saying x,y and z APIs are considered dangerous and web app only, and gating them behind the PWA install prompt.

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.


that sounds right, i block about 99% of notifications on my phone, regardless of wehther they're from webapps or native apps. but the 1% i don't block are incredibly useful and the main reason i have a phone in the first place

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.


You can say the same thing about email, but yet there are plenty of legitimate use cases. Cases include chat apps like slack, you might want to see when someone has messaged you even though you might not have the slack tab open. Are you attending a music festival and have the schedule open for an artist you want to see, well the concerts have been delayed 20 min, would be handy to get a push notification telling you that.


I find it hard to believe that I would get notified for anything useful but I am absolutely certain I will be notified incessantly for things that don’t matter. In fact the later spoils it for the former because the later train people to ignore notifications.

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.


We're talking about PWAs the user chooses to install. Of course they want to get notified. In my case I want to run Fastmail and WhatsApp. What use are they to me if they don't notify me when I get a message.

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.


It seems like this framework is addressing that but so far a PWA is a disorganized patchwork of features that might seem to fit together if you squint. For instance the user has no control over how much IndexedDB storage is used if any, and that the only thing you do have consent for is notifications…. Which normally is a request to spam, maybe 10% of the time it is a ‘real’ PWA but I am sure the majority of those are spam too.

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.


Nobody cares about notifications.

It's all about the shitty browser storage on iOS.


Pretty sure I want to know when I have a new message


Yeah if Safari wouldn't break localStorage or indexDB every other version, that would work better already and a nice start.


yes. go and check a regular friends' chrome browser. notifications left and right, constant irritant of "breaking news" and "check this out" from essentially spam sites. i am grateful of preventing notifications by default


this is 2020[1] state but you can make an idea, the most important one in my opinion is the friction that exists to add the app to the app list of your phone, you can't do it programatically is the user who has to go through the menus of iOS, it makes imposible to have a nice Web App Store and that's the biggest barrier for mass adoption in my opinion.

- [1] https://simplabs.com/blog/2020/06/10/the-state-of-pwa-suppor...


Can only use Apples JS engine on iOS and they limit things like push notifications and background workers.

Makes it difficult to get the full 'App' experience people expect


Apple deliberately cripples like, like notifications and workers - so that you have to wrap your PWA in an "app" for those features and distribute it on the App Store - with all the "fun" stuff that comes along with that.


One thing that really bothers me is that there is no install prompt for a PWA on iOS. Users have to be told to find the install button which is buried in a menu.


I would also like to have it, but I can see how it could become a spam issue. Every garbage site on the planet would start pushing PWAs to get on a users home screen. It would be the same thing if notifications were reserved for PWA installs only and not in the browser.

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.


I'm not sure how it could be abused. The api doesn't allow the developer initiate the install prompt.


They can just trigger the prompt when you scroll the website or something, that counts as a user gesture.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: