9 ms·
,,In addition, Apple has been underfunding Safari for the past decade leading to missing critical functionality and a buggy experience for Web App developers th
by xiphias2 4y ago
,,In addition, Apple has been underfunding Safari for the past decade leading to missing critical functionality and a buggy experience for Web App developers thus ensuring that Native Apps, another Apple revenue source, are the only viable solution.''
It's not just funding. Apple changed webapps to delete indexedDB periodically even if they are inatalled on the home screen.
There's no way to have a great experience if you can't store data permanently.
- mtomweb 4y agoxiphias2: Are you sure about it deleting IDB data even if they are installed on the homescreen? We've not come across that before. If so this is something we really need to follow up.
- xiphias2 4y agoI'm not sure, I just read it somewhere some time ago, somewhere I read that iOS deletes it weekly or something like that. But I'm happy that I was wrong about it.
- mtomweb 4y agoOh right, yeah, I think there's an exception for home screen apps. Now it's worse for Web Apps to have the data deleted, but I do understand the privacy reasons why Apple is deleting the IDB data.
- saurik 4y agohttps://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/ https://webkit.org/blog/10218/full-third-party-cookie-blocki... > As mentioned, the seven-day cap on script-writable storage is gated on “after seven days of Safari use without user interaction on the site.” That is the case in Safari. Web applications added to the home screen are not part of Safari and thus have their own counter of days of use. Their days of use will match actual use of the web application which resets the timer. We do not expect the first-party in such a web application to have its website data deleted. > If your web application does experience website data deletion, please let us know since we would consider it a serious bug. It is not the intention of Intelligent Tracking Prevention to delete website data for first parties in web applications. So, while adding it to the home screen still involves this mechanism, the "first-party"--which I understand to be the website which was actually added to the home screen, differentiating it from all of the third-party websites that it might link you to--is presumably going to be used every time you use that icon on the home screen and since that icon also has its own usage counter it won't ever be counting up when you aren't using it, so you are "good" (unless the user manages to use your home screen added app for seven days without ever ending up back at the "first-party" site somehow, which seems like an oddity and maybe one they mitigated directly).
- djxfade 4y agoCouldn't you get around this by e.g. having a JWT auth token be a part of the webapps insalled url? And then if local data is missing, use the token to fetch it from a backend store? That's how I would solve it at least.
- happymellon 4y agoThis doesn't feel like it's a great idea but considering the implication of your webapp forgetting stuff, I'm not sure of a better option.
- saurik 4y ago1) The people who are really caring about this are trying to avoid having the data be stored on some server also, and 2) so are you claiming Apple got this wrong?... Like, their mechanism here sounded pretty sufficient to me.
- msh 4y agoWhy should a browser app be allowed to store data permanently? I think that breaks normal ideas about how browser apps work, except for cookies everything is stored server side.
- mtomweb 4y agoWe're talking about for installed Web Apps here. Ask yourself the same question about Native Apps. Why should any Native App be allowed to store data permanently. The answer to that question is the same for Web Apps.
- msh 4y agoI (and many others I suspect) like web apps exactly because they cannot do what native apps can. If a web app was allowed to do what a native app why would I use a web app? It would just bring the bad sides of native apps to web apps.
- mtomweb 4y ago1. Interoperable between all operating systems (mobile and desktop) 2. Does not lock you into proprietary ecosystems 3. Is built on free and open technology, and investing in that technology helps make it available to others 4. Is not subject to the whims, taxes and control of the gatekeepers Web Apps can be every bit as capable as Native Apps except with security and privacy built in. For consumers, businesses and competition, Native Apps need to be relegated to to apps that require cutting edge use cases
- Conan_Kudo 4y ago1. Web Apps are not interoperable across browsers. It's largely a Chrome world. 2. You (as a user) lack autonomy or control over them. 3. While built on "free and open technology", they are not by design. 4. Is totally subject to the whems, taxes, and control of the gatekeeper (the app developer) Web applications have demonstratively made the experience worse for users without them knowing it. And web app developers know this intrinsically and refuse to acknowledge it.
- pprotas 4y agoWhat if you store the data in a back-end, just like native mobile apps?
- mtomweb 4y agoMany (most?) native apps also have a local store which is essential to how they function. Having to rely on stable internet for your app to work is annoying for lots of types of apps.
- pprotas 4y agoDo you really believe most apps rely on local storage? What if I remove the app from my phone and reinstall it later? All my data is gone? I am pretty sure most apps use AT LEAST iCloud to store data
- rejhgadellaa 4y agoOh come on, relying on local storage is not the same as not having a backup. Modern web apps can cache all the files they need to function. They can work offline. So when iOS deletes a web app's data, it doesn't just delete some content and maybe a few settings. It's basically like it deletes the entire app and you have to reinstall it (by opening the web app and re-download all assets that make it work). Sure, the icon is still on your home screen, but the entire app behind it is gone. It'll also delete things like your login status/tokens/etc, so you have to log in again, maybe the web app has settings that it doesn't want to sync across devices, etc. I assume that when Web Push hits iOS, notifications will only work as long as you open the web app often enough.
- pprotas 4y agoOh okay I didn’t realize we were talking about the actual application code being stored in local data. I thought they meant stuff like user data or application state, which is often handled by the back-end instead of client-side. Makes sense now, and I can see how removing that ability from webapps makes offline functionality impossible.
- spiffytech 4y agoSafari deletes all of a site's local data after a week of inactivity, including cookies. This makes users feel like they're never logged into a website when they need it, unless they're using it almost daily. That high-friction experience pushes users towards apps, which of course are always ready to go. EDIT: source: https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/ https://webkit.org/blog/10218/full-third-party-cookie-blocki... > Back in February 2019, we announced that ITP would cap the expiry of client-side cookies to seven days > ... > Now ITP has aligned the remaining script-writable storage forms with the existing client-side cookie restriction, deleting all of a website’s script-writable storage after seven days of Safari use without user interaction on the site. These are the script-writable storage forms affected (excluding some legacy website data types): > Indexed DB > LocalStorage > Media keys > SessionStorage > Service Worker registrations and cache EDIT 2: That page indicates web apps on the home screen get some variation for this behavior, but the difference isn't clear to me.
- DaiPlusPlus 4y ago> Safari deletes all of a site's local data after a week of inactivity, including cookies. That’s a gross misrepresentation of how Safari ITP works.
- tehlike 4y agoWhat's the correct version?
- DaiPlusPlus 4y agoThe parent has since updated their post with updated details that I wasn't previously aware-of - I thought they were referring to a news story from 2012 when Apple first introduced clearing of client-side-cookies (i.e. cookies set by JavaScript, not cookies in general) after inactivity but was commonly misinterpreted as Apple saying they'd just delete all cookies after a week willy-nilly. However I note that contrary the parent-poster's implication that Apple is using tricks like these to steer users towards native apps, the same linked article talks about how pinned web-apps (i.e. PWAs) _don't_ have their local content deleted after inactivity, which contradicts the claim that Apple is using this in particular to sabotage PWAs: > That is the case in Safari. Web applications added to the home screen are not part of Safari and thus have their own counter of days of use. Their days of use will match actual use of the web application which resets the timer. We do not expect the first-party in such a web application to have its website data deleted. > > If your web application does experience website data deletion, please let us know since we would consider it a serious bug. It is not the intention of Intelligent Tracking Prevention to delete website data for first parties in web applications. But I do agree that Apple very likely has internal orders from the top-down to de-prioritise PWAs because Apple definitely wants to see users (and devs) go native (or least via the App Store) instead of being PWAs - but I don't believe it goes as far as _actively_ sabotaging PWAs (i.e. just merely "passively-sabotaging", I guess?).
- skrowl 4y agoThey're intentionally making Safari a bad experience so that you have to use apps for everything. Apps where they can rake 30% on your purchases, of course.
- jefftk 4y ago> Apple changed webapps to delete indexedDB periodically even if they are inatalled on the home screen. Source? I had thought the usage counter ignored days when you didn't open the webapp.