[HN Gopher] Private client-side-only PWAs are hard, but now Appl...
       ___________________________________________________________________
        
       Private client-side-only PWAs are hard, but now Apple made them
       impossible
        
       Author : soapdog
       Score  : 406 points
       Date   : 2020-03-25 17:22 UTC (5 hours ago)
        
 (HTM) web link (andregarzia.com)
 (TXT) w3m dump (andregarzia.com)
        
       | marta_morena_23 wrote:
       | Whoever uses local storage as persistent storage doesn't
       | understand what local storage is. 7 days is enough. Local storage
       | is supposed to allow your app to temporarily navigate around
       | connection issues, to not require "always on". You can never rely
       | on this storage to be permanent, there are just too many ways to
       | accidentally wipe it all and for the user there is no easy way to
       | back it up.
       | 
       | Your offline app should ALWAYS sync to the server whenever
       | possible. The only bad thing I can see here is that if you can't
       | upload the data in time and the user then doesn't use your app
       | for 7 days, he will lose what he last worked on, but such is life
       | and why you should rather use real apps. Offline apps needs to
       | work differently, they need to get permanent storage just for
       | that app but only if the user explicitly choses to install it
       | like that. Not every random page should get permanent storage on
       | your device. This is the right move, Apple might just lack an
       | alternative for apps you actually chose to "install permanently"
       | ;).
        
       | dubcanada wrote:
       | I don't understand what the problem is.
       | 
       | I can easily go to the settings area and delete my entire browser
       | cache (Remove All Website Data), in fact if you are running low
       | of space it even tells you to do it.
       | 
       | Why are people assuming things stored on a browser are a good
       | place to store things. Nothing stored on a browser should be
       | assumed to be forever.
        
         | beering wrote:
         | If you read the article, that's the issue the author was
         | talking about: it's basically impossible to make an app that
         | can store its data locally, instead of on some web server.
         | 
         | All apps that you download from App Store can live offline,
         | where they're usable without Internet or trusting some faraway
         | web server.
         | 
         | You can't make a web app that can do that, and to some people
         | it smells like Apple trying to force developers to release
         | through App Store.
        
           | mulmen wrote:
           | I don't really understand this. If you want to make something
           | local, make an app and distribute through the app store,
           | that's what it is for. A _web_ app on the other hand is
           | connected by definition, no?
           | 
           | Apple forcing local apps to distribute through the app store
           | is a _feature_.
        
             | EvanAnderson wrote:
             | You should research the original plan for "apps" on the iOS
             | platform. There was no "native app" story originally, and
             | Javascript-based applications were expected to be the only
             | 3rd party platform on the OS.
        
               | npunt wrote:
               | As should you. It's not that an app ecosystem was never
               | planned, it's that it was not an early priority. Remember
               | they were literally defining everything at the beginning
               | - OS, UX, APIs, core features, hardware, first party
               | apps, market positioning, etc etc. Needs of third party
               | developers weren't nearly as important as nailing the
               | basics and ensuring a risky project was a success. The
               | html5 app bit was a way to test the waters for developer
               | interest and demand but very much an interim solution.
        
               | EvanAnderson wrote:
               | How do you square that against all the reported accounts
               | (including the Isaacson biography) of Steve Jobs saying
               | that he was opposed to third-party native applications on
               | the platform?
               | 
               | Yes, they changed direction in 2008. That's just it,
               | though. They changed direction.
        
               | npunt wrote:
               | Jobs' hot takes aren't the end-all when it comes to
               | product intent at Apple. He was basically an embodiment
               | of strong opinions weakly held. His superpower was
               | focusing teams on what the right set of features would be
               | to create a product that made sense to the market, and
               | ignoring everything else. The phone / iPod / internet
               | communicator trifecta was example of this - nothing but
               | nailing those three mattered at launch, and any effort
               | elsewhere was wasteful. Without that kind of leadership,
               | eng teams will often dither efforts over many things that
               | don't matter to success.
               | 
               | The history of Apple is filled with examples of this
               | dynamic. iPhone was a group effort among many talented
               | and influential people and I doubt Forstall and others
               | driving software had same opinion on third party apps.
               | They just didn't pick that battle before it made sense
               | to. Every other computing platform at the time (including
               | Windows Mobile, Palm, and BlackBerry) supported third
               | party apps, it's not like the use case was novel or
               | difficult to see, and the webs limitations were
               | considerable. Adding apps was a default path temporarily
               | set aside.
        
               | larkost wrote:
               | That was not the plan, that was the stopgap. Apple (and
               | even more the networks) were very scared that native apps
               | would have unregulated access to the radio, and would
               | mess with the cell networks. Web apps were the quick-and-
               | dirty way of putting third party apps into a sandbox
               | while Apple worked on APIs that would enforce that sort
               | of sandbox for native apps (what they have now).
        
             | jariel wrote:
             | "Apple forcing local apps to distribute through the app
             | store is a feature."
             | 
             | Forcing companies to give Apple 30% is not a feature.
             | 
             | If companies feel they can deliver a net experience in
             | webapp that's better than an app, then so be it, it's their
             | choice.
             | 
             | App makers are smart enough to know what makes sense for
             | them.
        
             | txcwpalpha wrote:
             | At one point, Apple was denying some app store reviews
             | because they said they should be distributed through PWAs
             | instead. If this is supposed to be a "feature", it seems
             | like some product manager has their head up their ass.
             | 
             | Also, the _entire point_ of PWAs is that they are supposed
             | to have feature parity with local apps, but delivered via
             | the browser. This change is obviously counter to that goal.
        
             | ianlevesque wrote:
             | People keep wishing for a loophole. There isn't one they
             | won't close sooner or later.
        
             | swsieber wrote:
             | A feature for who?
             | 
             | Not for users - now there's one less avenue for developers
             | to get them something they want.
             | 
             | Not for developers - now they have to jump through
             | additional hoops to make something that works cross
             | platform.
             | 
             | Who exactly does this benefit?
        
               | snazz wrote:
               | Users want to be able to log in and see their data from
               | any device. If the whole idea is that there is no server
               | that the data is stored on, then you can't have a sync
               | function, can you?
               | 
               | Do any of you have an example of a good offline-only PWA
               | that will be affected by this?
        
               | veeti wrote:
               | It's no less of an issue for an online-based PWA. Where
               | do you store login credentials or session tokens? In
               | local storage. What happens to them when Apple decides to
               | arbitrarily throw it away? The user has to log in again
               | and again.
               | 
               | This sounds like a seriously poorly thought out idea.
               | Want to clear tracking data from random websites I've
               | been to? That's great. But you don't mess with the data
               | stored by apps I have specifically _chosen_ to install on
               | _my_ device.
        
               | bengale wrote:
               | But only if they don't interact with it for a week. I
               | wouldn't be surprised if a web app I hadn't used for a
               | week required me to login.
        
               | veeti wrote:
               | There are many apps on my phone that I only use every
               | once in a while, yet every single one of them remembers
               | me. No matter how long I've been gone. Technology is
               | amazing!
               | 
               | Where is Apple's famous UX here? What legitimate argument
               | is there for clearing data of an app the user has added
               | to their home screen?
        
               | Dylan16807 wrote:
               | I wouldn't be _surprised_ but I would definitely be
               | _upset_.
        
               | admax88q wrote:
               | And most native apps crash one a week, we should
               | therefore automatically crash every app once a week.
               | 
               | Just because current apps are buggy doesn't mean we
               | should enforce those bugs at a platform level.
        
               | swsieber wrote:
               | The whole point is that you don't need to download a big
               | payload just because you haven't used it recently.
               | 
               | There are two ideas that go together well:
               | 
               | * The app can work offline
               | 
               | * The app doesn't need a server to function
               | 
               | Neither of those prevent a sync function from existing.
               | 
               | Right now, apps can do both of those. Why don' we want
               | PWA's to be able to do the same? Why do I have to go
               | through Apple's walled garden in order to so? Especially
               | when said alternative is in a sandbox?
        
               | woodson wrote:
               | It means you constantly have to re-login on a PWA (e.g.
               | Twitters web client PWA).
        
               | falcolas wrote:
               | Constantly being weekly at most frequent in this case.
        
               | vxNsr wrote:
               | I roll my eyes every time robinhood makes me login again
               | after an app update... though it hasn't happened in a
               | while, so maybe they fixed that bug, but it was annoying
               | when it's an unexpected hurdle that doesn't follow what
               | other apps are doing.
        
               | dktp wrote:
               | Games with your personal high scores. Is the one that
               | would affect me
               | 
               | Plus a local note-taking app I created a while ago
        
               | eslaught wrote:
               | The whole point is that those PWAs probably never got
               | built in the first place because the foundations were
               | always shaky at best. It's a chilling effect.
               | 
               | But if you look at native apps, especially ones I use on
               | desktop OSes, they're dominated (at least in my usage) by
               | offline-first or offline-only apps---and for me, this is
               | a feature, not a bug. This doesn't have to mean they
               | don't have sync, by the way, it just means that's
               | separate from the main functionality of the app.
               | 
               | A perfect example of this is Dropbox: it syncs to your
               | local disk by default. It's easy to forget how valuable
               | this is until you go camping (or similar) and suddenly
               | you realize you forgot to star that one directory you
               | care about. Now your mobile phone is useless, but your
               | laptop works no problem. And due to this being factored
               | out into a separate app, all my files now work regardless
               | of file type (I don't need separate offline support in
               | every app I use, since that's the default).
        
             | carlosdp wrote:
             | It doesn't have to be that way though, that's the point of
             | PWAs. A way to use web technologies for local applications.
        
             | osrec wrote:
             | So you can think of absolutely no situation where a user
             | would access a web app, and might want to store state info
             | locally?
        
               | falcolas wrote:
               | I can personally think of cases (not that PWAs have ever
               | been anything but fragile when it comes to locally stored
               | data), but as a user, the occasional clearing of super
               | cookies is a bigger boon.
        
               | osrec wrote:
               | I don't disagree that local data for PWAs has always been
               | fragile. I wished browsers were taking steps to make it
               | _less_ fragile, as opposed to more fragile. It would
               | allow certain use cases to become valid for PWAs, thereby
               | circumventing the need to create a 10mb native app for
               | something that can be deployed much more easily and
               | quickly with 30kb of Javascript.
        
             | brlewis wrote:
             | > A _web_ app on the other hand is connected by definition,
             | no?
             | 
             | No, it just has to run in a browser.
        
               | fastball wrote:
               | Well it needs to be downloaded from the internet at least
               | the first time, so it's intrinsically going to be less
               | secure than an app that you can guarantee never connects
               | to the internet.
        
               | e12e wrote:
               | Has to come from _somewhere_. A pwa might have to come
               | via http (I 'm not sure) - but html+js+css can come from
               | the (from a) filesystem too. Like an USB-c memory stick.
               | 
               | Or from an extracted archive (much like a native app).
        
               | anchpop wrote:
               | > A pwa might have to come via http
               | 
               | They can't, PWAs can only be served over https
        
               | osrec wrote:
               | Your app needs to be downloaded the first time too. In
               | fact, a downloaded app can run riot on your filesystem. A
               | web app runs in the "cage" of the browser, and is
               | arguably more secure and explicit about permissions it
               | requests.
        
               | rstupek wrote:
               | "... can run riot on your filesystem"? Citation needed
               | because an app is as heavily sandboxed as a web page
               | running in a browser. An ios app gets no view into
               | anything you as a user don't choose to give it (no access
               | to photos, etc).
        
               | osrec wrote:
               | I mean, if you give the app access to your filesystem
               | (which a lot of non-tech users would, almost without
               | thinking), it can potentially access/modify/delete your
               | files and folders. With PWAs, that's not really a
               | possibility.
        
               | LocalH wrote:
               | Stock iOS doesn't allow apps to directly access data from
               | other apps afaik
        
             | gnicholas wrote:
             | > _If you want to make something local, make an app and
             | distribute through the app store, that 's what it is for._
             | 
             | Have you ever gone through the app review process? It can
             | be frustratingly capricious, which makes it very expensive.
             | We've had features in our app for years, displayed in plain
             | sight, and then all of a sudden they decide to block an
             | update because of these utterly innocuous features. No
             | rhyme or reason, and now we've got to spend dev time fixing
             | a "problem" that never was a problem before. And we have to
             | delay our entire update because of it.
             | 
             | PWAs offer a way around that uncertainty and added cost.
             | There's also the cost of a developer license, and the Apple
             | hardware you have to buy to run XCode (and probably iOS
             | devices too, so you can test IRL).
        
             | cryptonector wrote:
             | Apple's app store is a walled garden. The web isn't a
             | walled garden. TFA wants to be able to operate outside the
             | walled garden.
             | 
             | EDIT: Also, it's probably cheaper to develop one PWA than a
             | PWA + N native apps, even if N=2. Probably lots cheaper.
             | Now, perhaps there's a way to build a native app that is
             | just a wrapper around WebKit/Safari and a PWA, but you'd
             | still be subject to Apple's walled garden. For example,
             | think of Gab or some such website whose apps have been
             | banned by the various app stores...
        
             | untog wrote:
             | > A web app on the other hand is connected by definition,
             | no?
             | 
             | No, not in the era of "progressive web apps", which is
             | really just a little bit of branding around interconnected
             | APIs. The Cache API in particular means that a webapp can
             | be downloaded and made available offline on a permanent
             | basis. Unless it isn't actually permanent at all, which is
             | what Apple are doing here.
             | 
             | The web and the App Store are just delivery mechanisms for
             | code with different trade-offs built into them. Apple have
             | added an extra trade-off on the web side in the name of
             | privacy.
        
               | icedchai wrote:
               | Personally I would never expect a web app to be available
               | offline on a permanent basis.
        
               | barrkel wrote:
               | That's just a failure of your imagination, though. The
               | world was not always as it is today, and it is not bound
               | to be so in the future.
        
               | untog wrote:
               | Okay?
        
               | icedchai wrote:
               | I basically assume my phone is nearly useless without
               | connectivity. And if I want something to work in that
               | sort of environment, it better be a native app.
        
               | rezz wrote:
               | To an end user there's an icon on their screen, they tap
               | it, the app opens. It didn't matter if they downloaded
               | from the AppStore or from a website. This is no longer
               | the case which is why the OP is upset.
        
               | icedchai wrote:
               | Pretty sure it is still the case if they have
               | connectivity...
        
               | dragontamer wrote:
               | I actually have an old phone that I used as a remote-
               | control for my home-threater PC. No connectivity needed,
               | but the phone did everything I needed. Move the mouse,
               | act as a keyboard, and mostly raise volume / change
               | channel.
               | 
               | Phones are computers. Even if you remote all connectivity
               | to the outside world, they still function as well as any
               | PC from the early 90s (or earlier). A huge amount of
               | compute power, tons of storage, etc. etc.
        
               | LocalPCGuy wrote:
               | Let's say you use an app that allows you to add Todos.
               | You've added 30 Todos. No internet needed, it's always
               | just worked. You go on vacation for 10 days. You get
               | back, you open your app. No Todos...all gone. Very simple
               | use case that is now broken.
               | 
               | Yes, you as the user could wipe those out. But now Apple
               | is doing it just because you didn't use it in 7 days. And
               | the user will not blame Apple, they won't even know Apple
               | did that. They will blame the app developer, who in the
               | interest of privacy didn't want to push your personal
               | Todos to a database online.
               | 
               | Again, just a contrived example, please don't go down the
               | road of why a server should have been used. Let's stick
               | to the use case described.
        
               | vxNsr wrote:
               | Its not, at least not based on how the OG article is
               | written. If you open your bank app it automatically tries
               | to log you in if you saved your credentials in the past.
               | This seems to say that if you don't use the app for a
               | week it'll wipe that out. No one expects that.
        
               | icedchai wrote:
               | That's not how I read it. Odds are my bank isn't using
               | local storage for that.
        
               | untog wrote:
               | Okay?
               | 
               | ...I guess I don't really see why the current state of
               | things should block any future development. Browsers
               | shouldn't ever implement new features because users today
               | aren't expecting them to exist?
        
               | munk-a wrote:
               | Having worked on a cross platform application that
               | defined the UI via HTML I'm still kinda confused about
               | this use case - it's super trivial to wrap a set of HTML
               | + JS in an app that's essentially just a full screen
               | webkit/whatever window and distribute this.
               | 
               | The advantage of PWAs then seems to be the ability to
               | dodge the app store certification which, while onerous,
               | is not a bad thing for your clients.
        
               | vernon99 wrote:
               | This is equal to saying "I'm ok with Apple having a
               | censorship monopoly of what an iPhone can run". I don't
               | think the majority of people here would agree with that.
               | I also don't think users buying a device that is supposed
               | to support web apps would be happy to find out that in
               | fact it doesn't. I'm one of those very unhappy users.
        
               | vially wrote:
               | > [...] is not a bad thing for your clients
               | 
               | Except when you have to pass some of the 30% Apple fee on
               | to your clients.
        
               | rimliu wrote:
               | That's the same era as the "year of the Linux" desktop. I
               | keep hearing "PWAs will win" for ten years now. Some
               | people just want to use ill-fitted web tech everywhere,
               | because that's all they know.
        
               | [deleted]
        
             | ajford wrote:
             | No, it's a grab for money. Releasing an iOS app requires
             | Apple hardware, X-code, and an Apple developer license
             | which is $100/yr.
             | 
             | Where as developing a PWA can be done on any hardware, and
             | would be natively cross-platform. An offline PWA does not
             | require an active connection, and in fact is the one of the
             | reasons behind the idea of developing a PWA instead of a
             | general webapp or website.
             | 
             | All other browsers allow the use of local storage to
             | optimize and enhance your experience by allowing things
             | like pre-loading data or storing your preferences. This
             | disappears with the decision Apple made to clear storage.
        
               | jfb wrote:
               | I promise you that Apple does not give a shit about the
               | revenue from the developer program.
        
               | lliamander wrote:
               | Then why not make it free?
        
               | falcolas wrote:
               | That's easy. It adds a hurdle for people who make
               | malicious or fraudulent apps. It's not free, but neither
               | is it MSDN levels of absurdity.
        
               | fomojola wrote:
               | I'd counter that: make it a one time tax, like the Play
               | Store. Is it reasonable that I need a Dun and Bradstreet
               | number to write an application for my computer?
        
               | judah wrote:
               | It's not just about the revenues of $100/year. It's also
               | the revenue from 30% sharing of profits. And most
               | importantly, it's the bigger revenue generated from
               | having apps that work only on iOS, which drives users to
               | buy iPhones and iPads.
        
               | jfb wrote:
               | Yes, and they shouldn't be taking a cut. Their services
               | initiatives are bad for them and the users of said
               | services. But as someone who did two tours in their
               | services arm, it is overwhelmingly likely that the reason
               | that WebKit is making these changes is their _stated
               | reason_ of making Safari more resilient to the attacks on
               | their users vectored in by web badness.
        
               | wpietri wrote:
               | Exactly. The app store's gross revenue was $54 billion
               | last year. [1] Apple has a very strong incentive to make
               | sure the only good way to deliver apps on iOS is the app
               | store.
               | 
               | [1] https://www.statista.com/statistics/296226/annual-
               | apple-app-...
        
               | lioeters wrote:
               | Interesting numbers. I see, "gross revenue" means:
               | 
               | > In the last reported year, customers spent an estimated
               | 54.2 billion U.S. dollars on on in-app purchases,
               | subscriptions, and premium apps in the Apple App store.
               | 
               | So, roughly 30% cut goes to Apple - which is around 16
               | billion; and developers got the rest, around 38 billion.
               | 
               | With PWAs, 100% goes to developers. As you pointed out,
               | that's a threat and motivation for Apple to continue
               | racheting up their closed ecosystem, and keep PWAs
               | crippled on Apple devices.
        
               | rstupek wrote:
               | A PWA app isn't going to generate any 30% revenue share
               | for Apple since no one is paying for it in the PWA case
               | and thus likely won't be paying for it in the pure app
               | case either.
        
               | Silhouette wrote:
               | Why would no-one be paying for a PWA? There are countless
               | paid-for services available via web apps.
               | 
               | Providing even a free native app via the App Store to
               | access a service with a subscription model becomes a very
               | risky proposition given Apple's rules, though.
        
               | joosters wrote:
               | Can you give a few examples of paid-for PWAs? Sure there
               | are websites that are paid-for, but I've never seen a
               | paid-for PWA.
        
               | Silhouette wrote:
               | I'm posting pseudonymously here, so please forgive me for
               | not citing personal examples, but the normal web apps for
               | accessing quite a few popular services are now PWAs.
               | Spotify famously started looking into using a PWA after
               | some issues with Apple regarding the cut taken with a
               | native app. Uber is another well-known example.
        
               | [deleted]
        
               | billyhoffman wrote:
               | (Looks at home screen) Slack, Jira, LastPass, and
               | Netflix. All Native apps that are free via the App Store,
               | and all with the subscription model that I pay for. And
               | for most of those I can't even buy the subscription from
               | inside of the native app, so Apple gets no money from
               | these
        
               | Silhouette wrote:
               | _And for most of those I can't even buy the subscription
               | from inside of the native app, so Apple gets no money
               | from these_
               | 
               | This is where things get pretty shady with Apple's terms
               | for native apps and the App Store. Take a look at
               | Spotify's experience for a different version of the
               | story.
        
               | fooey wrote:
               | They care about they revenue they get by making people
               | buy the hardware that gives them access to the developer
               | program.
        
               | MikusR wrote:
               | I think you missed the "requires Apple hardware". I know
               | that rich Americans think everyone has Macbooks, but that
               | is not the case.
        
               | Silhouette wrote:
               | Does Apple also not care about the huge cut it takes for
               | everything sold via the App Store?
               | 
               | As lliamander said, if they don't care, why not make it
               | free? I don't for a moment believe the argument about
               | creating a barrier for negative actors. They could still
               | screen apps before allowing them into the App Store, and
               | if that mechanism is working reliably then the charge is
               | unnecessary as a deterrent, while if it is not then the
               | financial deterrent isn't going to be enough to stop a
               | lot of people willing to make these kinds of apps anyway.
        
           | notduncansmith wrote:
           | If you read the update from webkit.org, you'll see that it's
           | still quite possible to store data locally.
           | 
           | Link: https://webkit.org/blog/10218/full-third-party-cookie-
           | blocki...
           | 
           | Relevant quote (emphasis mine):
           | 
           | > 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._
           | 
           | If a website hasn't been used for 7 days, I'm happy for its
           | data to disappear and save space on my device.
        
             | RussianCow wrote:
             | 7 days is actually a really short period. There are lots of
             | apps and websites that I only open on my phone every now
             | and then. I would never use them if I had to log in almost
             | every time.
        
             | Silhouette wrote:
             | _If a website hasn 't been used for 7 days, I'm happy for
             | its data to disappear and save space on my device._
             | 
             | You might be, but maybe not everyone is. I've worked on
             | apps based around multimedia content where downloading in
             | advance to watch or listen later was a big deal, because a
             | typical user also travels a lot and might well be going
             | away for longer than a week. Even if they can get the same
             | data again next time they're online, it might still be much
             | slower and more expensive for them to do that on an
             | international data plan instead of back home.
        
               | notduncansmith wrote:
               | Then wouldn't it be appropriate to offer a native app to
               | offer that functionality? A web browser in 2020 is a
               | place to run vast swathes of untrusted code safely; it is
               | not a digital workstation platform, that is the job of
               | the OS. If what I am downloading from you is important
               | enough that I want to have it even offline, then I trust
               | you enough to install your native app.
        
               | Silhouette wrote:
               | _A web browser in 2020 is a place to run vast swathes of
               | untrusted code safely; it is not a digital workstation
               | platform, that is the job of the OS._
               | 
               | I'm not sure how much that assumption really holds any
               | more, nor why it should necessarily continue to do so
               | even if it has so far. Technology evolves, and so does
               | how we use it. In the case of the web, and web apps in
               | particular, they have evolved to satisfy a need for
               | convenience in software distribution that many
               | traditional desktop OSes had hopelessly neglected for a
               | very long time and where the developer experience for
               | native mobile apps is less than ideal.
               | 
               | I appreciate your comment about the trust issue, but the
               | bottom line is that these technologies do serve a useful
               | purpose for some people -- I have the customer feedback
               | at my own businesses to make that clear -- and the
               | experience web developers can offer on Android with PWAs
               | will now be significantly better than what they can offer
               | on iOS.
        
               | LocalPCGuy wrote:
               | I believe this entire statement is wrong in 2020. There
               | are literally OSes now that are just browsers.
        
               | notduncansmith wrote:
               | The fact that that is possible does not change the role
               | of the web browser in the modern computing experience. If
               | you want to build an entire VM that runs in Electron, be
               | my guest, but that's orthogonal to the issue of how
               | Safari should handle storage by default.
        
               | wtallis wrote:
               | That's been true for years, and yet the operating systems
               | that _aren 't_ just browsers seem to be getting along
               | just fine.
        
           | Aaargh20318 wrote:
           | > it's basically impossible to make an app that can store its
           | data locally, instead of on some web server.
           | 
           | No, that is trivial to do: just make an actual damn
           | application.
           | 
           | What the author is complaining about is that it's impossible
           | to make a text document that pretends to be an application
           | that stores data in ways they were never intended to be
           | stored.
        
             | untog wrote:
             | I'm sorry but I find this argument utterly tedious.
             | 
             | A Swift file is no less a "text document" than a JavaScript
             | file is. There are APIs available in the browser to store
             | data offline, so I have no idea what "in ways they were
             | never intended to be stored" means here.
             | 
             | A webapp is "an actual damn application". Can we just
             | dispense with the repetitive arguments about this every
             | time anyone so much as mentions adding interactivity to a
             | web page?
        
             | Silhouette wrote:
             | _No, that is trivial to do: just make an actual damn
             | application._
             | 
             | So trivial that all it needs is learning a completely new
             | skill set and tools, signing up for a gated distribution
             | mechanism that can kill your application on a whim if you
             | violate any of the rules over which you have no control,
             | and then giving a huge cut of your revenues to the rent-
             | seeking platform owner?
             | 
             | The web has been more than just text documents since around
             | the turn of the millennium. It's probably about time we
             | stopped ignoring 20 years of very popular evolution and
             | pretending that what might have been "intended" before a
             | lot of people reading this comment were born should still
             | guide what we build today.
        
             | Fauntleroy wrote:
             | "just write an iOS app" versus "my web application can be
             | used on Apple devices" is a bit much, don't you think?
        
             | gridlockd wrote:
             | > What the author is complaining about is that it's
             | impossible to make a text document that pretends to be an
             | application that stores data in ways they were never
             | intended to be stored.
             | 
             | You must've been not following things. The web platform is
             | an application platform and has developed to that end, for
             | many years.
             | 
             | Progressive Web Apps are applications based on standard Web
             | APIs that are designed with the _intent_ to enable offline-
             | capable applications with persistent offline storage of
             | significant amounts of data.
        
               | Aaargh20318 wrote:
               | > The web platform is an application platform and has
               | developed to that end, for many years.
               | 
               | No it's not. Using it like that is a lasagna of dirty
               | hacks. The web is for structured text with hyperlinks,
               | everything else is bullshit that doesn't belong on the
               | web.
        
           | DaniloDias wrote:
           | Who are the "some people"?
           | 
           | Are any of them outside of chrome's WebWorker team, or the
           | community of devs that were suckered into a model that really
           | has never gained traction for iOS?
           | 
           | I'm sort of sympathetic to the devs who bought in to the
           | solution, but this looks an awful lot like a pr pressure
           | campaign that is unhappy with how this affects googles
           | disintermediation goals.
        
         | riquito wrote:
         | If you are distribting a PWA through e.g. electron the user
         | does not have (easily) the means to delete the cache. Web app
         | is a misnomer in that case, they are just applications running
         | inside a somewhat hidden browser.
        
         | notduncansmith wrote:
         | I also don't understand the alarm.
         | 
         | There is no hard limit on how long things will be stored. Data
         | in localStorage might still be stored for weeks/months/years,
         | as before.
         | 
         | The only limit is on how long things will be stored _if the
         | user does not interact with the site /PWA_.
         | 
         | If you are a website, not a natively-installed app, that I
         | haven't "used" in a first-party sense for 7 days or more, I
         | don't think your data belongs on my device.
         | 
         | Storage space can be limited, and any app I haven't used in 7
         | days should be happy to re-fetch my data from a server or
         | convince me to install their native app.
         | 
         | To act like this is some nefarious plan by Apple to get people
         | to build native apps instead of PWAs is absurd. If a PWA was
         | written properly in the first place, this change will have
         | basically 0 impact on it.
        
           | cloverich wrote:
           | It is certainly a plan to further relegate PWAs because they
           | directly challenge the monetization strategy of apple. Its an
           | area where their interests do not align with user interests.
           | A "properly written" PWA may offer things like not re-
           | fetching data from the internet when you already have it
           | locally, and / or not forcing you to create an account just
           | to save some basic data (ex: A recipe app, a jobs search app,
           | etc). Consider for example, saving a job search website as an
           | app, and being able to search and save jobs without having to
           | make an account. An account could be offered if you want
           | cross device syncing, but is not required just to save jobs.
           | Which is great because some users prefer to remain anonymous,
           | and PWA's open the door to that type of thing (as a singular
           | example).
           | 
           | This move is _an_ example of Apple's (understandable)
           | hostility towards PWA's, but you must understand the context
           | here: There is a threshold beyond which PWA's become a
           | generally acceptable strategy, and the quality and diversity
           | rise over time. Apple is preventing that with this move (and
           | others). That's why people are upset. Moreover, the outcome
           | of this will be more "native" apps that are actually just
           | wrappers around web apps, that exist purely because some
           | basic functionality is being actively blocked by Apple.
        
             | notduncansmith wrote:
             | > Consider for example, saving a job search website as an
             | app, and being able to search and save jobs without having
             | to make an account. An account could be offered if you want
             | cross device syncing, but is not required just to save
             | jobs. Which is great because some users prefer to remain
             | anonymous, and PWA's open the door to that type of thing
             | (as a singular example).
             | 
             | Consider the use-cased of this example. If I am actively
             | job-searching, I will probably be using the site at least
             | once per week, and the data will be saved throughout the
             | process. When I stop using the site, I want that data to
             | disappear for my own privacy/security; and if users want to
             | save the data indefinitely without signing up for an
             | account, then offering an export (e.g. CSV) seems like a
             | reasonable way to address that.
             | 
             | Furthermore, non-Apple user agents may retain data as long
             | as they like, and PWA's (as well as web trackers) are free
             | to utilize that. It's not like this move implements any
             | additional vendor lock-in; people who don't like it will
             | switch to non-Apple platforms.
             | 
             | > Moreover, the outcome of this will be more "native" apps
             | that are actually just wrappers around web apps, that exist
             | purely because some basic functionality is being actively
             | blocked by Apple.
             | 
             | This doesn't seem problematic. It's great if you can reuse
             | some code between your web and native apps. Obviously
             | truly-native UIs will be more efficient in many cases, but
             | perfect needn't be the enemy of good.
        
           | pier25 wrote:
           | Aren't there websites you use less than once a week?
           | 
           | If one of those is using a JWT for auth in localStorage
           | (something which is extremely common) you'd need to login
           | every time you visit such site.
        
             | notduncansmith wrote:
             | Yes, and that's fine with me. Being on an iPhone, I use the
             | built-in cloud-backed password manager which makes
             | generating and entering credentials near-effortless.
             | Furthermore, by not leaving long-lived tokens in my
             | browser's storage, I'm less vulnerable to exploits that may
             | exfiltrate that data.
        
         | onion2k wrote:
         | There's a big difference between a user choosing to clear their
         | data and a browser vendor deciding to clear a user's data.
        
         | arendtio wrote:
         | The problem is, that it rarely happens under normal
         | circumstances. So you might build a logic which synchronizes
         | your data to the server but rarely has to download it as most
         | of the time it still has a relatively current snapshot. And the
         | few times you have to download everything, it is ok for the
         | user to wait a while.
         | 
         | But if you have to wait every time your last interaction is
         | more than 7 days ago, the whole experience will change. And
         | supporting a reliable offline experience will be very hard to
         | build.
        
         | ravenstine wrote:
         | That's like asking why people store files on disks when they
         | could store everything in the cloud.
        
         | daleharvey wrote:
         | I can delete data from my hard drive, why are people assuming
         | things stored on a computer is a good place to store things.
         | Nothing stored on a computer should assumed to be forever
        
       | progx wrote:
       | Then data will stored online on servers, i cant see how this is
       | better for privacy.
        
       | jjtheblunt wrote:
       | Perhaps this style of app, on iOS devices, drains more battery
       | power than deemed reasonable?
        
       | rvanmil wrote:
       | I do not understand why anyone would want to store anything other
       | than temporary/disposable data inside their browser.
        
       | [deleted]
        
       | AndrewBissell wrote:
       | Cedric Beust said on an episode of "Talking Kotlin" awhile back
       | that he thought the Achilles' Heel for the WebAssembly cross
       | platform story would be Apple moving to lock down their devices.
        
       | themihai wrote:
       | Offline Web Apps were already weak(i.e. CORS restrictions). Now
       | they are even more useless with this storage limitation. You
       | can't really blame Apple.. after all, Google claimed that offline
       | web apps are nothing more than websites so that's what we have...
       | I don't mind if Safari deletes offline data stored by websites
       | every week so why would I complain about "offline apps" ?
       | 
       | My point is that Offline Web Apps (i.e. PWA) that are installed
       | on user's desktop should have a bit more permissions than
       | websites but people in charge(google, apple etc) seems to think
       | otherwise.
       | 
       | https://discourse.wicg.io/t/proposal-full-network-access-in-...
        
         | pier25 wrote:
         | Read the article, it's not only about offline PWAs. All local
         | storage is deleted after 7 days.
        
           | themihai wrote:
           | As for as "persistence" is concerned I really care only about
           | offline PWAs. Why would a website need offline data after 7
           | days? It would improve performance, that's true but
           | everything else should be "fresh" unless that said website
           | wants to actually behave like an "app". Maybe the "website"
           | should ask the client to be installed as "app" if the user
           | wants to take advantage of persistent storage(and other "app"
           | features) . Asking the user to install(which is actually just
           | a kind of bookmarking for PWAs) isn't that much of an effort
           | if the user is planning to use it regularly.
        
             | dylan-m wrote:
             | I made one of these. We generally expected users to be
             | offline for at least a week. Probably using the app
             | regularly on their respective devices (but possibly not),
             | and syncing data again when they had a good internet
             | connection. Uses Dexie and React, syncs with a horrible
             | Drupal site. It's always going to be uncertain to rely on a
             | database held at arm's length by the browser, but in
             | practice it worked _incredibly_ well on all manner of
             | devices. I guess it won 't anymore. (Thanks, Apple!).
             | 
             | This is absolutely a necessary change on some level, but I
             | think if Apple wasn't in complete control of a web
             | monoculture (and obviously uninterested in anything that
             | doesn't sell more iPads), it would be possible to steer
             | this API towards that without breaking a bunch of peoples'
             | stuff.
        
             | pier25 wrote:
             | > Why would a website need offline data after 7 days?
             | 
             | JWT for example.
        
       | ocdtrekkie wrote:
       | I find localStorage a bad crutch, when storage accessible to any
       | browser or computer would be better. I'm totally cool with this
       | because magical storage in your browser is just a bad idea,
       | especially when it requires developer tools to find and see what
       | it is doing.
        
       | fredsted wrote:
       | Feels like Apple is just continually making the Safari browser
       | worse.
       | 
       | I think they just want to push people towards native apps so they
       | have full control. Apple always wants control.
       | 
       | First they prevented plugins like uBlock, made it very expensive
       | to create your own plugins, and now they're messing up
       | LocalStorage.
        
       | eyesee wrote:
       | Would it be possible for Apple to relax the 7 day limit for apps
       | that are strictly client side only? I.e. sandbox the apps to not
       | allow access to any remote resources? It seems to me the
       | opportunity to exploit a user's privacy would be very limited
       | without exfil.
        
         | icebraining wrote:
         | Maybe, but it would only apply to a subset of PWAs. For example
         | OP's RSS reader must access remote resources.
        
       | rconti wrote:
       | > What are private client-side PWAs anyway?
       | 
       | (proceeds to not answer the question)
       | 
       | Found the answer: Progressive Web Apps[1]
       | 
       | 1: https://medium.com/@amberleyjohanna/seriously-though-what-
       | is...
        
         | soapdog wrote:
         | Sorry, I wrote this blog post too fast because I was/am a bit
         | angry and didn't notice my usage of jargon without explanation.
         | 
         | It is a "Progressive Web App". Sorry for the jargon usage
         | without explanation. Basically it is a marketing term used to
         | place some new web APIs and best practices into an umbrella of
         | a "near native UX on a Web App". What it usually means is that
         | your application is:
         | 
         | * Served from a secure context (a requirement for the other
         | APIs anyway).
         | 
         | * Has an application manifest (this contains metadata about
         | your web app and is used by browsers and OSs to add icons,
         | names, themes, etc)
         | 
         | * Has a service worker (which enables your application to
         | potentially work offline beyond what other cache solutions did
         | in the past)
         | 
         | So with these in place, browsers can offer a "Install this site
         | and an app" feature which allows the site to open in its own
         | window, with its own icon and name on the launchers and home
         | screens.
        
           | rconti wrote:
           | Thanks for your reply :) I recognize often articles are meant
           | for a specialized audience and shared here without the author
           | even being aware of the site, so it's unreasonable to expect
           | that everything be described to a total neophyte, but
           | sometimes I have to laugh at the buzzword articles that get
           | posted here about how to implement foo in bar on baz, using a
           | fizzbuzz framework running blarg, and I have no idea what ANY
           | of those things are, having worked in tech for decades :D
        
             | soapdog wrote:
             | I going to make sure in the future that I don't fall into
             | this behavior again. :-)
        
             | soapdog wrote:
             | Also, I just updated the post with a definition and a link
             | to learn more about PWAs.
        
       | MaxBarraclough wrote:
       | As the article explains, _Offline Web App_ is being used to mean
       | Progressive Web Application (the standard terminology).
       | 
       | ( _edit_ Turns out that 's not quite right, see diggan's reply.)
       | 
       | From the article:
       | 
       | > You'd almost think they had an App Store to promote or
       | something.
       | 
       | There's certainly a tension here. I'm still not sure why more
       | vendors don't make iOS PWAs to get around the App Store payment
       | rules.
       | 
       | Perhaps related: Very roughly a year ago, something changed in
       | iOS that broke the _2048_ PWA. Its swipe-detection no longer
       | works. A pity.
        
         | diggan wrote:
         | offline web apps are different than PWA. A PWA doesn't
         | necessarily work offline, but more is independent from the
         | connection / loading of it. I do think most PWAs do work
         | offline, but doesn't mean it's a requirement to call it a PWA.
         | 
         | Similarly, an offline capable web app is not necessarily a PWA,
         | as PWA carries a lot of features to it besides being offline
         | capable.
        
           | MaxBarraclough wrote:
           | Good points. I've edited my comment.
        
           | lonelappde wrote:
           | What is an "off-line web app"? If an app _never goes online_
           | and is sandboxed from other apps, then it never has any data
           | at risk of exfiltration.
        
             | diggan wrote:
             | An offline web app is a frontend-only application (just
             | HTML+CSS+JS or less) that can be loaded from any medium
             | (internet, usb stick, direct TCP via netcat or any other
             | transport) and work in your browser without requiring a
             | remote connection to allow usage of it's features.
             | 
             | So yes, this would mean it doesn't run the risk of ex-
             | filtration or snooping at the transport layer, as the data
             | never leaves the specific website context in your browser.
        
         | criddell wrote:
         | > I'm still not sure why more vendors don't make iOS PWAs to
         | get around the App Store payment rules.
         | 
         | Because users won't use them. For users that don't have a
         | technical background: if it isn't in the app store then it
         | essentially isn't an app. For techie users: lots of us don't
         | want web apps because of the power, memory, and bandwidth usage
         | is often higher than a well written native app. The fact that
         | there's a gatekeeper who has some control over what shows up in
         | the app store is usually a feature and not a bug.
         | 
         | If there were big parts of the app ecosystem that didn't have
         | native apps, then eventually users would find web apps. But
         | that isn't the case. Think of anything and search for it in the
         | app store and there's an app for it (including 2048).
        
           | MaxBarraclough wrote:
           | > For users that don't have a technical background: if it
           | isn't in the app store then it essentially isn't an app
           | 
           | I'm not convinced of this. If it has an icon like proper
           | apps, and feels like an app, I don't think users are going to
           | mind if it came from the App Store.
           | 
           | The question is whether the unfamiliar 'installation' process
           | is too fiddly for non-technical users. I don't think it is. I
           | figure a 10 second _How to install our app_ animation would
           | do the job.
        
             | ratww wrote:
             | I've seen a lot of news sites and random WordPress blogs
             | doing that.
             | 
             | It has become spam, just like news sites asking to send
             | notifications.
        
             | chrisfinazzo wrote:
             | I think this is a problem of their own creation - done in
             | the name of simplicity which has outlived its usefulness,
             | but to take it back now would be chaos.
             | 
             | A closed, curated app store gave less technical users the
             | confidence to actually download software without concern
             | that it would screw up their device. However, things which
             | have a different model like web apps or system extensions
             | (read: keyboards) were also put into the same distribution
             | mechanism.
             | 
             | You can see why as it removes a barrier to using them:
             | people just go the same place they've always gone to get
             | software on the platform. They make no distinction between
             | the native Gmail app and GIF Keyboard because the install
             | process is the same and each are displayed prominently.
             | 
             | In reality, 3rd party keyboards and the like should
             | probably be handled - from a UI standpoint - like they are
             | on macOS, inside System Preferences/Settings, with no app
             | icon on the homescreen, they simply aren't as important as
             | full blown apps.
             | 
             | ^ People will dispute this and _that 's really nice_...but
             | they're wrong.
        
         | vbezhenar wrote:
         | > I'm still not sure why more vendors don't make iOS PWAs to
         | get around the App Store payment rules.
         | 
         | One reason is because Apple have incentive to break PWAs and
         | they will do it. It's not a wise business decision to act
         | against big player.
        
       | arghwhat wrote:
       | Better title: Apple restricts tracking by limiting browser
       | storage, which hurts my particular app.
       | 
       | Browsers _need_ to be severely limited due to them running
       | arbitrary code from the web. Doesn 't matter if it's an offline
       | web app. If you want more access, make a native app (with or
       | without web technologies).
        
         | megous wrote:
         | > If you want more access, make a native app (with or without
         | web technologies).
         | 
         | How's installing a native app better for a random user privacy
         | or security wise, exactly?
        
           | jrockway wrote:
           | You have to send every change to Apple before the user can
           | run the code. In theory, that allows Apple to do more checks
           | than when the code is dynamically loaded from your web
           | server.
        
             | hombre_fatal wrote:
             | Apple doesn't care if your app logs your usage to Google
             | Analytics every 1000ms.
             | 
             | Besides, in the browser you have trivial tools like uBlock
             | and the network tab. In native apps, you have to use
             | mitmproxy just to see what the app is doing at all.
        
             | kingo55 wrote:
             | I'm sure apple catch all privacy violations of their so
             | developers.
        
           | IggleSniggle wrote:
           | It must go through the App Store vetting process, whereas a
           | web app can come from anywhere.
        
           | kingo55 wrote:
           | With embedded SDKs and device identifiers that work similarly
           | to third party cookies, they're not.
           | 
           | I understand it's changing too, but not as fast as safari.
        
         | Wowfunhappy wrote:
         | And, um, any other app which saves local data locally.
        
         | m-p-3 wrote:
         | > If you want more access
         | 
         | which is somewhat ironic, because the goal of a web app is to
         | break free of the walled garden and become OS-independant.
        
           | akmarinov wrote:
           | No way that's happening on iOS as long as Apple takes 30% off
           | the top
        
             | scarface74 wrote:
             | Yes because think of all the money Apple gets from taking
             | 30% all of the free apps that would be free web apps....
        
               | vbezhenar wrote:
               | There are very few free apps. Most of apps are paid with
               | ads or external subscription. And Apple wants cut there
               | as well.
        
               | scarface74 wrote:
               | Apple doesn't have an ad network outside of the little
               | money it makes from ads on the App Store itself.
               | 
               | Also, Apple may _want_ a cut of the subscription revenue
               | but most companies who have significant subscription
               | revenue, don't go through Apple's subscriptions payments.
        
               | rstupek wrote:
               | Apple doesn't get a cut of ads within apps. A free app
               | with ads doesn't make Apple any more then the $99/year
               | for being a developer
        
           | FpUser wrote:
           | Which in a current situation is running a risk to fall into
           | Google's walled garden. It is not there yet but Google's
           | working hard on subverting the Internet.
        
         | the_gipsy wrote:
         | > If you want more access, make a native app
         | 
         | ...and give apple their cut. Why not add permissions to
         | webapps? Like location, or push notification... oh that's
         | another feature that _happens_ to be missing only in safari.
         | 
         | Just accepting these moves from apple as "in the interest of
         | users" is naive. Apple has a huge vesting in their appstore,
         | and every webapp is a potential appstore-app that is some lost
         | revenue.
         | 
         | I mean, _maybe_ apple is right, and the web should go back to a
         | readonly document-like format, like in the old days. Articles
         | and links. Apps for everything else. But let 's not kid
         | ourselves that they do it purely in the user's interest.
        
         | fierarul wrote:
         | But browsers are severely sandboxed already. What the article
         | is talking about is:
         | 
         | > deleting all local storage (including Indexed DB, etc.) after
         | 7 days
         | 
         | which I can see how it might help privacy (since you could be
         | tracked via local storage too) but also how it might break any
         | potential web app that might need data to last more than 7
         | days.
         | 
         | > If you want more access, make a native app
         | 
         | But then, everybody will complain about yet another Electron
         | app, right? Not to mention that you have to fork over $99 and
         | go through the signing / notarization hoops that change from
         | one week to the other.
         | 
         | I think in the name of privacy and security only Apple and some
         | select few corporations will be allowed to make software in the
         | future. macOS / iOS and Windows 10 are evolutionary dead ends
         | in many ways.
        
           | DagAgren wrote:
           | They do not "change from one week to another". They have
           | changed, what, twice ever?
        
             | fierarul wrote:
             | Two counterpoints:
             | 
             | * AdoptOpenJDK releases that were notarized some months ago
             | are no longer accepted by Apple since they made the rules
             | even more stringent. I had releases accepted by Apple that
             | are not accepted today using the same AdoptOpenJDK
             | binaries.
             | 
             | * Apple's notarization rules are not global. There's
             | whitelists for given companies/institutions/apps/files
             | which means the same dylib might not have to be notarized
             | by a bigger player but will have to be codesigned by you.
             | 
             | The above happened to me in the span of less than 3 months
             | I think?
             | 
             | Indeed, the scripts I use per se to do the notarization are
             | about the same as originally.
        
               | saagarjha wrote:
               | Do you have more details about this?
        
               | fierarul wrote:
               | I think I gave quite some details. Do you need the exact
               | AdoptOpenJDK version (11.0.5+10 for macOS)?
               | 
               | And I made a test about the non-global rules too (by
               | trying to submit the same binary and getting rejected).
        
             | conroydave wrote:
             | and to be honest the process has gotten a lot easier.
        
           | janoc wrote:
           | Native app != Electron app (fortunately!) The less of that
           | bloated slow crap the better.
        
             | vetinari wrote:
             | If we had to make non-electron, native version of our app,
             | that would mean Windows[1] and Android, because that's
             | where the current users are. Forget the rest.
             | 
             | Is that the future you want?
             | 
             | [1] And they would not be happy about that either. For many
             | that would mean RDP or Citrix. They prefer webapp right
             | now.
        
               | kkarakk wrote:
               | I think apple DOES want this. Core markets cleanly
               | segmented are probably a better value prop to apple than
               | everything working everywhere and users being able to
               | freely migrate between platforms
        
               | Gorbzel wrote:
               | Sure, keep your (likely crummy if you're OK with Citrix
               | as a primary use case) Windows and Android apps.
               | 
               | The market will decide. Your comment is just on the user-
               | hostile side of assuming it will prefer your technology
               | choices.
        
               | recursive wrote:
               | It would only be citrix if it was made a native app. It
               | is presently a web app, presumably because it was
               | determined to be a better choice. You proposed that it
               | should be a native app. It would be the customers that
               | would choose Citrix, but they'd probably prefer web apps
               | (if they're anything like my customers).
               | 
               | The deployment story is so much better for web apps,
               | which is the main reason it seems to be so compelling for
               | big enterprises.
        
           | fpoling wrote:
           | Apple requires that all code-related assets for an app should
           | be included into the app. So the app cannot just be a
           | launcher that show a browser with a website.
        
             | simplify wrote:
             | That doesn't seem to be completely true. Basecamp has a
             | "hybrid" app, where they use native frames to load web
             | pages for content
             | https://twitter.com/dhh/status/940358921960677376
        
           | george_perez wrote:
           | 7 days after Safari use without user interaction on the site.
        
           | kkarakk wrote:
           | More likely that apple and the other corporations are also
           | evolutionary dead end and this is a temporary hiccup
        
         | pier25 wrote:
         | > which hurts my particular app
         | 
         | A big chunk of the web these days uses JWT and localStorage for
         | auth.
        
         | codesections wrote:
         | > Apple restricts tracking by limiting browser storage
         | 
         | But the argument that this will protect privacy in the first
         | place seems really weak.
         | 
         | Before this change in Apple's policy, an app could store my
         | config data on my PC.
         | 
         | After this change, they'd need to have me log in and send the
         | config data to _their_ servers.
         | 
         | That seems like I've _lost_ privacy, not gained it.
        
           | JumpCrisscross wrote:
           | > _they 'd need to have me log in and send the config data to
           | their servers_
           | 
           | You'd have to log in. That's a hurdle that involves implicit
           | consent.
        
             | kkarakk wrote:
             | Most people don't care about logging into services anymore.
             | just implement a fb login and it takes less than 5 secs
        
               | sonofaplum wrote:
               | If you've ever looked at user analytics you know this is
               | absolutely not true
        
               | benetzz wrote:
               | I'm interested. As a iOS developer I always found that
               | user want to skip the login page soon as possibile, if
               | there is an FB button they press it. Do you have
               | different experiences of it?
        
               | frandroid wrote:
               | I run away from services that only allow social media
               | logins.
               | 
               | 1) I don't want social media to track me everywhere
               | 
               | 2) If the people developing this app have taken this
               | shortcut, what other bad, leaky implementations do they
               | have on their site/app?
               | 
               | -> No thanks, exit this way
        
               | RonanTheGrey wrote:
               | Web-wide analytics (and our own, which have almost
               | exactly the same stats), show about 30-40% of users still
               | rely on email/password (and that's actually growing, as
               | password managers become more ubiquitous especially when
               | Apple implemented the built in credential manager in apps
               | and in Safari on iOS).
               | 
               | We're actually getting rid of social login in our apps.
               | And we're not alone, alot of platforms I use have
               | recently moved the same direction, and I think for the
               | same reasons.
               | 
               | Google, Facebook, Github, Twitter logins proliferated
               | because
               | 
               | a) the cost of implementing an auth system is high, and
               | those offered a turnkey solution that was cheap and quick
               | to implement. This is no longer true, there are lots of
               | options now to host your own auth while federating the
               | hard work to someone else (e.g. Auth0, Cognito, et al)
               | 
               | b) for awhile, people LOVED the idea of having "an online
               | identity" and a single login everywhere. Over time this
               | has not really panned out, because it's the prisoner's
               | dilemma; for it to work, everyone has to do it (which is
               | why G and F have tried so hard to get everyone to use
               | them). But also, because privacy questions have reduced
               | the shiny appeal of that scenario in the first place.
               | Combine that with easy to use password managers now, and
               | it's much less necessary.
        
             | shadowgovt wrote:
             | That's a hurdle that involves de-anonymization of the user.
        
               | dev_tty01 wrote:
               | No, Apple offers anonymous user credential technology.
               | Server gets unique identifier and ability to authenticate
               | with no actual user info. Server gets an anonymous
               | redirected email for sending info to the user. Apple is
               | the intermediary. Of course, you can choose not to trust
               | Apple, but Apple already has my info and their business
               | model is not predicated on tracking and advertising. I'd
               | rather continue to trust them than spread my data across
               | more orgs, but that's my choice. You might choose
               | differently.
        
               | matsemann wrote:
               | But that's a solution for a single OS, for a web page
               | that should be cross platform by default. And it's not
               | really a solution, just additional complexity to what was
               | a solved problem.
        
               | shadowgovt wrote:
               | I choose differently, but my choice may matter to you if
               | I throw up my hands and say "Too much effort; if the user
               | visits my site in Safari, I'm just going to toss up a
               | banner page that says "this site does not work in your
               | browser."
               | 
               | It's a power-play on Apple's part to intermediate
               | themselves where their inter-mediation isn't necessary.
               | And all kinds of customers (enterprise in particular)
               | won't appreciate Apple getting a free "hi hello" signal
               | on how much their company uses some service that
               | leverages this scheme. Especially if Apple is a potential
               | competitor to them.
        
               | RonanTheGrey wrote:
               | Same. We momentarily considered adding Apple Login to our
               | app when they changed the rules a couple weeks back, but
               | instead we are removing all social login and migrating
               | all accounts to (email/username)/password. Why?
               | 
               | Because a) it's _even more code_ we now have to support,
               | both in our apps _even on android_ and on web -- a huge
               | investment we are not prepared to make, and b) because
               | for what we do, we actually do need to know the user is
               | who they say they are (we offer the ability to contract a
               | service between third parties, which means anonymity is
               | NOT desired). I was never really comfortable using social
               | login at all, for that second reason, but was pressed to
               | by my peers; after Apple 's shenanigans we came to the
               | mutual decision that it was time to cut the cord. The
               | login screen is already busy enough, we don't need yet
               | another button. So we'll simplify.
               | 
               | For this latest change, it won't affect us much because I
               | have always made it a policy neither to trust, nor to
               | rely on, the data in Local Storage, and only to use it
               | for performance boosting via caching. If data isn't
               | there, it isn't there, and we go get it. This is largely
               | due to historical reasons where browsers have always
               | borked the LS implementation in one way or another, but
               | it's beneficial now in that it won't really change
               | anything for us.
               | 
               | I do feel for folks that are using it for genuine storage
               | though, I know some apps that use it in order to AVOID
               | storing private data on their servers, which will now
               | have problems and be forced to reduce privacy in order to
               | adapt.
               | 
               | This is definitely a power play on Apple's part to
               | further weaken the web ecosystem. Device sales have been
               | falling for years, they know their cash cow is their 30%
               | cut on app purchases and IAP, and they aren't going to
               | let the browser cut into that. Any "privacy" benefit in
               | this case is purely incidental (and as noted above I
               | believe it will do the opposite in many cases).
        
             | corecoder wrote:
             | Respecting someone's privacy doesn't mean forcing them to
             | "consensually" give up their privacy.
        
               | RonanTheGrey wrote:
               | Thank you. I think this is very often overlooked.
               | "Consent" gets thrown around alot but most of the time
               | people basically have no choice if they want to, you
               | know, participate in modern society. That's one of the
               | reasons why an open web is so so so important and why I
               | think Tim Berners Lee is working so hard to try to bring
               | some part of that back as the "online world" (apps and
               | internet) become more and more walled garden.
               | 
               | If you are coerced into giving consent, it isn't consent,
               | and most of the time if you're doing it so you can be
               | part of the world around you, it is coerced, whether
               | people want to recognize that or not.
        
           | chrismarlow9 wrote:
           | Wouldn't it be possible to retain the data with privacy by:
           | 
           | - Asking the user client side for a password
           | 
           | - Encrypt data as a blob using some symmetric encryption
           | (AES)
           | 
           | - Push encrypted blob to the server with login attached
           | 
           | If you're using SSO the client authenticates and then can
           | pull down the encrypted blob based on the SSO auth being
           | valid. You can tie 2FA in however you wish. At that point the
           | user is prompted for a "data" password for that particular
           | site. Or would there be an easy way to build a pki/pin cert
           | type of encryption to eliminate the password prompt? (I feel
           | like this is essentially what Keyring!? would do but maybe
           | not?)
           | 
           | Outside of implementation weaknesses which I feel could be
           | mitigated by created standard libs to do this, what am I
           | missing?
           | 
           | Bonus points for pushing the data diffs only or even a
           | version controlled blob (data stored in a git repo where only
           | the diffs are pushed in encrypted form).
           | 
           | Edit: Or how about a local hardware appliance for your
           | network that stores all data like this encrypted and pulls
           | from there.
        
             | viklove wrote:
             | It's very hard to verify that the data is indeed encrypted,
             | whereas with local storage you can just monitor your
             | network usage and see that no requests are going out. Hell,
             | you could airgap your machine and have no problems with
             | localstorage.
        
         | TeMPOraL wrote:
         | It's not "limiting browser storage", it's making browser
         | storage expire. TFA's example is just some random app, but this
         | essentially kills the entire concept of an offline-first web
         | app, and severely hurts the browser as an application platform.
        
           | fpoling wrote:
           | Web apps brings nothing in revenue to Apple.
        
         | manigandham wrote:
         | Technically local data is more private than contacting a remote
         | server to download it again. I don't see that being a
         | controversial stance.
        
         | k__ wrote:
         | I know this is ad hominem, but your comment just sounds like "I
         | make big money with native apps and don't want web apps to
         | catch up!"
        
         | vbezhenar wrote:
         | > If you want more access, make a native app (with or without
         | web technologies).
         | 
         | Browsers usually ask for an additional permission in this case
         | which would be a good approach. Your post sounds like "browsers
         | need to be severely limited, so if you want to watch video,
         | just launch VLC". It does not work this way.
        
         | alerighi wrote:
         | Making a native app is more complicated than making a webapp,
         | especially if you want something cross platform. Browsers are
         | now an universal virtual machine, what was the JVM years ago,
         | and with webassembly we will se more and more things done in
         | the browser.
         | 
         | The real 'write once, run everywhere' are webapps, a webapp
         | doesn't care if you are using Apple, Windows, Linux, BSD,
         | whatever, if you have a compatible browser you use the app.
         | 
         | Sure there is Electron (or React Native), to me it doesn't make
         | sense, what is the point that every application needs to ship
         | basically a browser? And still Electron apps need to be
         | compiled and packaged for every platform, while with webapps
         | you enter the URL in the browser and you are done with it.
         | 
         | Doesn't adding APIs to browsers not only to use the local
         | storage but also to access the filesystem of your device (of
         | course asking the permission to the user) make more sense?
         | 
         | Of course what really Apple fears is loosing the control of the
         | apps that gets used on their device, now they control the App
         | Store that is the only way to get apps on their devices (beside
         | jailbreak), with webapps is different, since you can access
         | them directly from the browser.
         | 
         | And the thing that is absurd is that the first iPhone didn't
         | have the App Store since Apple decided that the only way to get
         | third party apps was trough the browser, now they are aiming
         | for the opposite thing.
        
           | badthingfactory wrote:
           | My company created a web client for our chat software product
           | around 5 years ago. The quality of our product has slowly
           | deteriorated as browser vendors continually remove or
           | restrict features that once worked fine. Just to name two
           | examples: autoplay audio for chat notifications and tab
           | throttling killing websocket connections and background
           | timers. I understand bad actors are abusing these things, but
           | they're breaking totally legitimate use cases.
           | 
           | We've been forced into an electron client and now urge our
           | customers to ignore the web client. If we didn't have a small
           | number of customers on Macs, we would abandon web tech
           | altogether and build a native Windows client.
        
         | zzzcpan wrote:
         | _> Browsers need to be severely limited due to them running
         | arbitrary code from the web. Doesn 't matter if it's an offline
         | web app. If you want more access, make a native app (with or
         | without web technologies)._
         | 
         | Native apps have the same problems too and such "severe"
         | limiting of apps in web browsers still doesn't solve it. The
         | only more or less privacy preserving model I can think of for
         | native apps today is open source repositories with app
         | distribution not controlled by app developers, like f-droid or
         | repositories in various linux distros.
        
         | untog wrote:
         | Genuine question: what makes native ad frameworks different
         | here? They execute with the same privilege of their containing
         | app so surely they're open to similar privacy concerns.
         | Shouldn't native apps have their storage cleared?
        
         | kkarakk wrote:
         | OR maybe it's apple's responsibility to figure out how that
         | usecase can exist without security flaws?
         | 
         | As a customer, I'm tired of devices functionality being limited
         | coz "security risks". Functionality that is arguably superior
         | to native apps apart from the security risk.
        
         | greggman3 wrote:
         | Wouldn't making it first party only cover it? I don't see how
         | this has anything to do with privacy/tracking. webpages can
         | still leave long term cookies. The only way this is a privacy
         | issues is if 3rd party iframes can use localstorage but just
         | like 3rd party resources have their cookies blocked so to could
         | localstorage.
         | 
         | Otherwise this has absolutely nothing to do with privacy or
         | tracking.
        
       | bg0 wrote:
       | I really appreciate this link. I would have never seen this
       | otherwise. It's kind of a disappointment for us on the enterprise
       | side. Our main offering is an offline app where people are
       | disconnected from the internet for weeks and we use localStorage
       | to validate who they are. It's a bit vague about how this affects
       | apps that don't use safari. Nevertheless, we might have to start
       | to really think about the user experience here now that this
       | update is out.
        
         | roywashere wrote:
         | To be honest, HTML5 LocalStorage was always different on iOS
         | when compared to other platforms. The iOS browser localstorage
         | is stored in /caches so it is cleaned when the device goes low
         | on disk space. I found out the hard way, had a cordova app
         | which ran on Android and iOS (and web) and saved an account
         | token in LocalStorage. Some iOS users kept on getting logged
         | out, mostly users with smaller size iPhones!
         | 
         | Now we store the account token in iOS keyring and that works.
         | 
         | ref: https://stackoverflow.com/questions/32927070/complete-
         | data-l...
        
         | yohannparis wrote:
         | Webkit's website says: "[..] deleting all of a website's
         | script-writable storage after seven days of Safari use without
         | user interaction on the site."
         | 
         | It is not clear that a user coming to your website before the 7
         | days, even offline, is exempt of it.
        
           | bg0 wrote:
           | Yea, we actually don't use safari at all in our app. So this
           | might not have an effect but it's pretty vague.
        
             | lonelappde wrote:
             | If you don't use Safari you can patch webkit to change the
             | policy, right? Change 7 to 10000000
        
               | chrisfinazzo wrote:
               | You _could_...but it 's a change that the Webkit project
               | would never accept and you would be forever diddling this
               | value every time an update came along.
               | 
               | Sisyphus says 'Hi!'
        
               | tssva wrote:
               | Apple only allows apps to use their webkit
               | implementation.
        
           | vbezhenar wrote:
           | User not coming to website 7 days can't be invalid use-case.
           | Losing important data simply because someone went on vacation
           | is unacceptable.
        
             | diegoperini wrote:
             | Not allowing important data to be downloaded for cold
             | storage is unacceptable.
        
               | aquadrop wrote:
               | Ok, allowing, then what? I still don't want to deal with
               | export/import as a user.
        
               | cmsj wrote:
               | You want all your important apps to migrate to a platform
               | where their data is all tucked away in inscrutable
               | filesystem locations that don't expire ever?
        
               | diegoperini wrote:
               | I have a few suggestions in the comment section you may
               | or may not find agreeable.
        
               | macawfish wrote:
               | With all due respect, this comes off as apologizing for
               | Apple's disagreeable design choice.
               | 
               | If anything, it should be on Apple and the browser
               | vendors to make local storage _more_ useful by default,
               | not less useful. Your suggestions might as well be aimed
               | at browser vendors, who could conceivably offer user
               | friendly controls for local storage (e.g. import /export
               | without the dev panel). But as is usually the case each
               | of the browser vendors has these little annoying ways
               | that they cripple the browser to protect their business
               | models. Apple is no exception to this. Look at how
               | they've hampered the WebGPU process. Look at the history
               | of their PWA support.
        
               | diegoperini wrote:
               | I strongly oppose Apple's anti-consumer practices in
               | their App Store policy, PWA policy (non-existent) and
               | similar places. I just believe this (localStorage policy)
               | is not one of those cases.
               | 
               | Agreeing with Apple's disagreeable design choices isn't
               | an apology, it's an honest opinion. If these choices are
               | disagreeable, which I believe they are, they must be also
               | agreeable by definition.
        
               | vbezhenar wrote:
               | There's one simple thing that Apple could do. Do not
               | delete local data if user bookmarked page from that
               | website (or pinned it to home screen for mobile devices).
               | Now bookmarked website treated like an "app" with
               | slightly less restrictions and some random website data
               | will be eventually purged (although I believe that 7 days
               | should be extended to few months).
        
               | saagarjha wrote:
               | > If anything, it should be on Apple and the browser
               | vendors to make local storage more useful by default, not
               | less useful.
               | 
               | Not if the features allow for increased web tracking.
        
               | vbezhenar wrote:
               | I don't think that web tracking must be fought at expense
               | of user UI. It's fine to fight web tracking by
               | introducing measures that don't break honest websites.
               | It's not fine to fight web tracking or anything by
               | crippling user experience with honest websites.
        
               | Grue3 wrote:
               | > Not if the features decrease the need for the App Store
               | 
               | Fixed it for you. It's all about profit.
        
             | im3w1l wrote:
             | So store this data on the server.
        
               | untog wrote:
               | You say that as if it isn't an absolutely giant extra
               | piece of functionality and ongoing cost. That native apps
               | won't have to do.
        
               | TomGullen wrote:
               | Would make our app non functional for users who have
               | limited internet and also a huge burden of responsibility
               | to store their data securely. We've always avoided
               | hosting data as that's a completely different ballgame.
        
               | tssva wrote:
               | The original comment referenced an app where the users
               | are offline for weeks at a time. Storing data on a server
               | is not really possible in this use case.
        
               | Touche wrote:
               | Cool, so now my movie library app has to host terabytes
               | worth of movies and deal with copyright laws, just
               | because Apple assumes that anyone using IndexedDB must
               | have malicious intent.
        
               | matsemann wrote:
               | But wouldn't that make it have _less_ privacy? Now my
               | webapp cannot be used offline and anonymously, user has
               | to be logged in and tracked
        
               | im3w1l wrote:
               | It doesn't change the status quo. Important data wasn't
               | put in cookies before, and it wont be after. It was
               | always a recipe for data loss.
               | 
               | Server side, or if you need privacy, have the user export
               | to / import from a local file.
        
               | felixfbecker wrote:
               | This is also about IndexedDB. Imagine native apps had all
               | their data wiped if you don't open them (with an active
               | internet connection) every 7 days. Not just on an iPhone,
               | but also on macOS.
        
               | Grimm1 wrote:
               | This impacts an app I've built for reading academic
               | papers but I imagine the work around here is to write to
               | a file periodically and then load the file in if you
               | don't detect indexedDB having the data you think it
               | should. Obviously this has error cases all its own and
               | makes it more difficult to manage but it doesn't seem
               | like Apple is killing it to me, just making us jump
               | through hoops and add extra complexity. Don't mistake me
               | though this seems like an anti-competitive move from them
               | to prevent people from circumventing the app store.
        
               | cmsj wrote:
               | I apologise for being rude, but IMO you didn't build an
               | app, you built a web page. Web pages are things people
               | look at one time or maybe many times, but they are just
               | web pages that exist in a web browser for the lifetime of
               | the tab they're in, and then they're gone. They shouldn't
               | expect to have any persistent storage from the browser,
               | and if the browser does make small affordances for
               | storage, it's not reasonable to have that persist
               | indefinitely.
               | 
               | Apps are bundles of code/assets that people choose to
               | install on a computer because they want to use them over
               | time to do something. They have a clear lifecycle of
               | installation and deletion that the user has complete
               | control over.
               | 
               | I know the web app, PWA, offline app, etc. stuff is very
               | popular, but it will never be as good as native apps, and
               | it creates an expectation that every browser will expand
               | its functionality until it is effectively a full
               | operating system.
               | 
               | I think the only reasonable case for the web-as-app
               | model, is things that get installed to the home screen,
               | in the sense that the user is then again given control of
               | the lifecycle, but I would still honestly prefer that
               | people just write a native application.
        
               | theamk wrote:
               | The big difference is native apps require explicit user
               | content to get installed, while localstorage can be used
               | by any website without user consent.
               | 
               | If browsers asked approval before using localstorage, we
               | wouldn't have this decision.
        
               | roblabla wrote:
               | Apple is actively refusing to implement the standard for
               | installable webapps (PWA). So, Apple is intentionally
               | crippling a feature on the grounds of privacy with no
               | possible remedy.
               | 
               | This decision comes from an actor that is protecting
               | their business interests. It might have some positive
               | side-effect for some users, and of course Apple will spin
               | it that way. But in the end Apple is very agressively
               | hampering the web's progress to get their sweet 30% cut.
        
               | vbezhenar wrote:
               | Installation of web app performed by bookmarking it or by
               | pinning it to home screen. That's performed by explicit
               | user decision and must be honored by browser if it wants
               | to make a distinction between random website and useful
               | website.
        
               | theamk wrote:
               | Not sure about pinning, but bookmarking should not grant
               | any extra rights. Even the useful websites should not be
               | able to track me forever.
               | 
               | Look, we already have lots of website prompts, like
               | camera and location. The best thing, privacy-wise, would
               | be an explicit prompt: "this website wants to store
               | information, possibly including tracking identifiers,
               | forever. Allow?"
        
               | Turing_Machine wrote:
               | > have the user export to / import from a local file.
               | 
               | Exporting to local files does not work on iOS if the app
               | has been saved to the home screen (it does work if it's
               | loaded as a normal web page). This is likely a bug, but
               | that's the way it is right now.
        
               | theamk wrote:
               | For your app, maybe.
               | 
               | But most apps cannot be used offline at all, and instead
               | they use localstorage as another place that can store
               | tracking cookie. So as a user, I fully support this
               | change, because there should not be a loophole like this.
        
               | pier25 wrote:
               | There are many legit uses for localStorage.
               | 
               | Storing JWTs, game state data, etc.
        
               | shirshak55 wrote:
               | why to store JWT in local storage. Localstorage can be
               | accessed by CDN scripts also. Please don't put risk on ur
               | users data.
        
               | dmix wrote:
               | Localstorage is limited to a domain, a common security
               | model in the browser also used by cookies, and prevents
               | cross-origin leaks... (unless a developer volunteers to
               | expose the data via postmessage whose destination can
               | also be limited to specific origins).
               | 
               | This is also why it is important to load your apps JS on
               | your domain or same-origin and not offloaded to a 3rd
               | party server which you might not control (libraries like
               | jQuery CDNs and whatnot are still a minor risk,
               | particularly from a privacy perspective, but not as bad,
               | although I never saw the point with the large variety of
               | versions).
        
               | danbolt wrote:
               | I have an old HTML5 game I made that stores a high score
               | in localStorage. I might have to figure out an
               | alternative solution later down the road.
        
               | SalimoS wrote:
               | If it's your app how not being tracked is an argument ? I
               | mean you just can just not track him (unless I'm not
               | understanding your point)
        
               | matsemann wrote:
               | Of course, I can make my backend service well-behaving.
               | But offline first is privacy by default, which I'd argue
               | is a better approach.
        
         | duxup wrote:
         | Yeah I've got a lot of users with very shaky internet and
         | intermittent involvement with a given application (not using it
         | for a month, more). This presents some serious challenges /
         | impossibilities for those user's use of a web app when they're
         | not online.
         | 
         | I hope they come up with some good options as this news
         | settles. It's hard to see this as anything but even just a
         | accidental push ('well you should always have written an app
         | for the app store') to force folks to write a native app /
         | participate in the app store.
        
         | diggan wrote:
         | Yeah, as far as I understand, cookies is the only storage
         | method that will be left to use for long-term storage of user
         | data. If I'm wrong, someone please correct me.
         | 
         | Edit: getting downvoted without any reasoning provided, so I
         | assume I'm incorrect, there are more/less ways of storing data
         | in the future for Safari users?
        
           | gsnedders wrote:
           | Cookies expire in the same way.
        
             | diggan wrote:
             | With cookies you can set the expire time yourself, as a
             | developer. And looking at the list of the original blogpost
             | from webkit (https://webkit.org/blog/10218/full-third-
             | party-cookie-blocki...) it shows the following will be
             | affected by the 7 day cap:
             | 
             | Indexed DB, LocalStorage, Media keys, SessionStorage,
             | Service Worker registrations
             | 
             | Since cookies are not mentioned, I'm assuming it's NOT
             | affected by the 7 day cap but will instead continue to work
             | as normal (except for the fact that 3rd party cookies will
             | stop working, which is a Good Thing)
        
               | tyingq wrote:
               | If the cookie is set by http headers, yes. If it's set
               | with client side js, though, it's capped at 7 days (since
               | ITP 2.1).
        
               | Dylan16807 wrote:
               | What if you have a cookie set by http and try to update
               | it with js? Will it self-destruct now?
        
               | cosmie wrote:
               | Technically, when you update it via js you're overwriting
               | the existing cookie with a new one. And, from my
               | understanding, it's then subject to the same restrictions
               | as any other cookie set client side.
               | 
               | So in order to have a long-lived cookie, you essentially
               | need to treat them as read-only client side, and push any
               | and all update/write logic to the server such that it'll
               | return a set-cookie header with any changes you require.
        
               | tyingq wrote:
               | I would guess is works, but expiration is capped at today
               | + 7 days.
        
               | XaspR8d wrote:
               | Does this mean I'll soon be setting up an dummy "cookie
               | maker" endpoint on my server that turns XHR body data
               | into HTTPS cookie data as a workaround? :/
        
               | diggan wrote:
               | Interesting, I did not know that. Thanks for clarifying!
        
           | tnorthcutt wrote:
           | Not sure if this answers that, but:
           | https://webkit.org/blog/8613/intelligent-tracking-
           | prevention...
           | 
           |  _Cookies can either be set in HTTP responses or through the
           | document.cookie API, the latter sometimes referred to as
           | client-side cookies. With ITP 2.1, all persistent client-side
           | cookies, i.e. persistent cookies created through
           | document.cookie, are capped to a seven day expiry._
        
         | yesimahuman wrote:
         | If you're using Cordova or Capacitor this is why, at Ionic, we
         | recommend never using localStorage for storing important data.
         | Better to use an explicit filesystem storage solution like
         | SQLite.
        
         | nradov wrote:
         | Have you considered porting to a native application?
        
           | vetinari wrote:
           | Users are using other than macOS/iOS devices too. Most of
           | them are not willing to pay extra for native app that runs on
           | only one of the platforms used.
        
             | gridlockd wrote:
             | Why would users have to pay extra?
             | 
             | If right now you have a web app with paying users, that
             | means you have an accounting system of paying users.
             | 
             | You could publish a "native" app that simply serves that
             | web app through a web view, using those same accounts.
        
               | vetinari wrote:
               | The issue is elsewhere: you need to pay your developers
               | to develop the second app. You would most probably need
               | to bring in one more team, for each native platform.
               | 
               | Will you get new users from that? If yes, they will pay
               | for that (in principle). If not, just some existing users
               | would migrate? Then you just increased your cost without
               | increasing your revenues. So you would need to gain
               | enough new users to make it worthwhile.
               | 
               | * * *
               | 
               | In a nutshell, it is the same reason why Adobe won't port
               | their apps to Linux. They already have all the users that
               | _need_ their software, and while it would be nice for
               | some of their users to migrate, it won 't bring anything
               | to Adobe.
        
               | gridlockd wrote:
               | You don't need a dedicated developer to ship a WebView
               | app. That's the whole selling point behind tech like
               | Cordova. Most of your code can stay the same and most
               | likely all of it will stay Javascript (or whatever you
               | are transpiling to it).
               | 
               | Again, if you are actually affected by this issue right
               | now, you have a web app that is more or less trivially
               | ported to a web view app. Your user don't have to
               | migrate, they already have accounts, they just need to
               | download the app again, this time from the App Store.
               | 
               | > In a nutshell, it is the same reason why Adobe won't
               | port their apps to Linux.
               | 
               | Linux is a non-market for Adobe apps. On the other hand,
               | if you have an offline PWA right now, you most likely
               | already _have_ iOS users that you would probably lose if
               | you start confronting them with this  "7 days and your
               | data is gone" bullshit.
        
           | Touche wrote:
           | I've considered just not supporting iOS.
        
       | tarkin2 wrote:
       | All moves of Apple's towards privacy are tempered with the
       | knowledge that smooth, successful webapps hurt the iPhone's
       | business proposition.
       | 
       | Apple want to move you closer into their walled garden with the
       | prospect of enhanced privacy.
       | 
       | The idea that iPhone apps are more private than web app because
       | Apple must approve your apps is troublesome.
        
       | nicoburns wrote:
       | I really hope the outcry about this is big enough to get Apple /
       | Webkit reconsider. With service workers and improvements in
       | browsers/cpus "PWA"s (aka web apps) were just getting to the
       | point where they could compete with native apps for a number of
       | use cases. And they had much better privacy / security policies.
       | This doesn't completely kill that, but it's a big setback.
        
         | pier25 wrote:
         | > I really hope the outcry about this is big enough to get
         | Apple / Webkit reconsider
         | 
         | I seriously doubt it. Apple has been undermining web dev for
         | years.
        
         | JumpCrisscross wrote:
         | > _they had much better privacy / security policies_
         | 
         | Why is a PWA better from a privacy or security perspective than
         | a native app?
        
           | judah wrote:
           | Security: it runs in the browser's sandbox. Native apps by
           | contrast generally have (or can request) full access to your
           | system.
        
             | threeseed wrote:
             | As others have mentioned this is simply not true on
             | MacOS/iOS.
             | 
             | Also would add that Apple vets native apps.
        
             | JumpCrisscross wrote:
             | > _Native apps by contrast generally have full access to
             | your system_
             | 
             | This doesn't accurately describe iOS apps, the pertinent
             | comparison with respect to the article.
        
             | nicoburns wrote:
             | And Privacy the same: Native apps often have access to e.g.
             | microphone. Web apps only have that for the duration that
             | you enable it for.
        
             | Klonoar wrote:
             | The macOS sandbox exists to mitigate this. The system also
             | goes out of its way to let you know you're running an un-
             | sandboxed-app.
        
             | mr_toad wrote:
             | Not any more. Even the terminal needs to request access to
             | parts of the file system.
        
           | soapdog wrote:
           | This depends on many factors but a PWA can be inspected by
           | third-party using the browser developer tools which makes
           | easier to find out about its communication. You can do that
           | with proxies and other heavier tools for native apps, but it
           | it requires more skills than the former. Also the web
           | platform is very private, you don't get access to files and
           | many other features without user consent. Native apps might
           | not be like that even though Catalina is going crazy with the
           | permission dialogs.
        
             | Klonoar wrote:
             | I mean... hang on there.
             | 
             | The sandbox, while questionable at first, has slowly been
             | improving and at this point gives the same features as the
             | web you're describing. If anything I find the APIs more
             | feature complete, albeit less well documented as... well,
             | let's face it, this is Apple and macOS we're discussing
             | here. ;P
             | 
             | I'll also note that "requires more skills" seems like a bit
             | of a blanket statement to me. They're just different sets
             | of skills.
        
       | vanderZwan wrote:
       | I would be OK with 7 days being the default with a permission
       | model where I can grant a website longer storage time.
       | 
       | Actually, I'd be even happier if _any_ form of offline storage
       | required explicit user permission anyway.
        
         | m-p-3 wrote:
         | There's certainly a balance to achieve there. Too few
         | permissions prompt and you lose control, and too many and you
         | get desensitized or even worse annoyed at them.
        
           | marcosdumay wrote:
           | There's no balance. You just let the user set any permission
           | and make the prompts unobtrusive.
        
             | brazzy wrote:
             | There is no such thing as an "unobtrusive" prompt.
        
               | callmeal wrote:
               | Actually there is - firefox does it all the time. It's
               | simple really - just add a new obscure configuration
               | parameter and tada - the browser starts ignoring your dns
               | resolution setting and automatically uses a preconfigured
               | one. No need for a prompt, obtrusive or otherwise.
               | 
               | network.trr.mode I'm looking at you.
        
               | vbezhenar wrote:
               | I configured my Chrome to block sounds on all websites
               | except for a few selected ones. Now if blocked website
               | plays sound, I can see tiny icon in right of my URL bad.
               | It's absolutely unobtrusive, yet I can enable sound with
               | two clicks.
        
               | barnabee wrote:
               | Some browsers show an icon in the address bar when an app
               | is requesting/can make use of an optional permission or
               | feature. Clicking the icon allows you do grant the extra
               | permission (i.e. allow cookies, enable, camera, etc.) but
               | otherwise no additional prompt is shown.
               | 
               | I think this is an excellent example of such an
               | unobtrusive prompt and is how ALL such features should be
               | implemented. Sites should get almost no permissions by
               | default and certainly not be able to show popup prompts.
        
               | brazzy wrote:
               | That is not a prompt at all, just a fancy configuration
               | option. Which most users will never notice and just
               | assume the app is broken.
               | 
               | When the site tells them to "active X permission" without
               | telling them how to (for their specific browser version),
               | most will leave instead.
               | 
               | When the site gives super detailed, up-to-date
               | instructions on how to activate the feature, a very large
               | percentage of users will still leave instead.
               | 
               | When the feature is so useful that many sites go through
               | all thouse troubles and it's common enough for users to
               | encounter this that they'll follow through, most will do
               | so for every site that tells them to and entices them
               | with "ACTIVATE X TO RECEIVE YOUR $10,000 PRIZE, LUCKY
               | WINNER!!!".
        
         | layoutIfNeeded wrote:
         | Both network usage (in native apps) and storage (both for
         | native and web apps) should prompt for permission IMO.
        
         | streptomycin wrote:
         | Even before this change, data in IndexedDB was kind of volatile
         | - if a device was low on space, browsers could delete stored
         | data.
         | 
         | https://dexie.org/docs/StorageManager describes the
         | StorageManager API which lets you prompt the user to allow your
         | IndexedDB data to be stored more reliably. My first thought
         | after reading this article was wondering if this would allow an
         | exception to the 7 day rule... but then I remembered that
         | Safari is the only "modern" browser which does not support the
         | StorageManager API
         | 
         | lol, sucks for users of my client side JS video game!
        
         | Aardwolf wrote:
         | > Actually, I'd be even happier if any form of offline storage
         | required explicit user permission anyway.
         | 
         | Even offline storage that is only used locally? Say a game with
         | savegames that has doesn't use online connection to play it.
         | 
         | Another example: a password manager.
        
           | SkyBelow wrote:
           | I would say yes. The reason being is that exceptions will be
           | abused, so it is better to enforce rules that everyone has to
           | follow than to depend upon good behavior which the people we
           | are trying to stop won't (almost by definition, because we
           | wouldn't be needing to try to stop them with rules if they
           | were already respectful of the social contract).
        
           | andrewla wrote:
           | If there were a way to enforce that the application has no
           | access to any communication system (network, inter-app, maybe
           | excluding explicit copy/paste), then I would be happy to give
           | it permanent storage.
           | 
           | But as soon as you allow it any access to network resources
           | then carrying state becomes a liability.
        
       | pwinnski wrote:
       | So Apple can't really care about privacy because:
       | 
       | - They have a News app
       | 
       | - They haven't rejected apps from Google and Facebook
       | 
       | Can you imagine what would happen if Apple rejected apps from
       | Google and Facebook? Can you even fathom the outcry?
       | 
       | Apple News uses differential privacy and doesn't track user
       | history, but yes, they do provide personalized News I guess? They
       | must not care about privacy at all then!
       | 
       | If you're upset about a seven-day limit on local storage, okay. I
       | get it. It sucks. But to claim Apple's reasons for this are
       | invalid because they allow Facebook apps to exist, that's...
       | weird.
        
       | mfer wrote:
       | This whole thing is about trade-offs.
       | 
       | If tracking companies cannot use cookies they can use JS and
       | local storage instead. Then they can keep tracking people for
       | long periods.
       | 
       | So, in the escalating war Apple alters local storage so that non-
       | use for more than 7 days doesn't keep data along. It becomes less
       | valuable for use with tracking.
       | 
       | The trade-off is that offline web apps become less capable and
       | some use cases go away (e.g., completely offline).
       | 
       | Which trade-off is better for whom and in general? I've not
       | thought to know. But, the trade-off is worth pondering. Whether
       | we agree with Apple or not.
        
       | djsumdog wrote:
       | I love that the app he wants to build is an RSS reader. I just
       | did a post on why we should be making more use of RSS as
       | individuals:
       | 
       | https://battlepenguin.com/tech/rss-the-original-federated-so...
       | 
       | Interesting he ran into the CORS situation with PWAs. It makes
       | sense. It feels like even PWAs aren't that far off from Electron.
       | Sure you're not launching another browser and can share a browser
       | engine, but you hit other limitations.
       | 
       | I'd rather have a real, lightweight, stand alone app most of the
       | times honestly. I wish people would write more stuff in Qt5. You
       | can bundle Python+PyQt5 together for a reasonable licensing fee.
       | A great example is the Resolve color/video editor is written in
       | C++/Qt5.
        
       | jwr wrote:
       | I have an app which isn't offline, but I wanted to make use of
       | IndexedDB and LocalStorage to make things faster for users. Now I
       | wonder if it's worth the effort to even try. I think this pretty
       | much kills the utility of all local storage initiatives.
       | 
       | My app is an inventory control system used by businesses that
       | build electronics (https://partsbox.com/). Deleting client-side
       | data after 7 days is ridiculous. You can't assume that people
       | will always log in every week, in small businesses or
       | design/manufacturing companies there are times when 2-3 weeks can
       | pass without building new hardware or touching inventory.
        
         | gok wrote:
         | Your demo page is 3.23 MB. ~500KB is javascript, ~500KB is CSS
         | and another ~400KB is web fonts. The parts database is 24 KB.
         | That's certainly not the first place I would look for an
         | optimization target, even for customers with very large parts
         | databases.
        
           | jwr wrote:
           | With respect, I believe you are mistaken about what my
           | important use cases are like.
           | 
           | Not going to go into details, but that JavaScript, CSS and
           | fonts are all immutable assets, never to be requested again,
           | while the database is _significantly_ larger for clients who
           | run their businesses using this software.
        
         | k__ wrote:
         | CouchDB and Amplify Datastore do delta syncs, should this get
         | around the problem?
         | 
         | If you put data in IDB, it will stay there for 7 days and then
         | if it gets deleted the delta sync would just download it again.
        
         | diegoperini wrote:
         | Both your and Apple's concerns are valid. This change makes the
         | fact (arguably) that these local storages are caches apparent.
         | 
         | Some web apps already saw the danger of having an easily purge-
         | able storage on the client side and simply implemented an
         | export function for their tools. I admire those tools more than
         | the ones who overuse local storage for everything.
         | 
         | One such tool is draw.io, a flowchart maker. You use the app,
         | persist everything in local storage and when you are done, you
         | export your project into a file, all happening on the client
         | side. When you need to edit, you import the file on launch.
         | It's portable, it's protected from browser bugs/decisions and
         | imho pretty user (privacy) friendly.
        
       | jimpick wrote:
       | This is terrible...
       | 
       | I have a copy of my "DAT Shopping List" demo I last opened about
       | 6 months ago saved to my iPhone home screen... I opened it, and
       | the data was still there. I'll be really sad when I open it again
       | after iOS autoupdates and the data will be nuked.
       | 
       | https://github.com/jimpick/dat-shopping-list-tokyo
        
       | fossTheWay wrote:
       | >deleting all local storage (including Indexed DB, etc.) after 7
       | days
       | 
       | Evil company. How do we fix this? Shame users?
       | 
       | The problem is that the users are so brainwashed from decades of
       | Marketing.
        
         | lotsofpulp wrote:
         | > The problem is that the users are so brainwashed from decades
         | of Marketing.
         | 
         | Is there any other device or ecosystem of devices where my
         | parents can fix their problems by turning it off and on? The
         | fact that I have 80 years old grandparents who can't read
         | English using iPads and iPhones is not just marketing, that's
         | "not having to google and download malware bytes and ccleaner
         | and go into regedit" to maybe fix issues.
        
           | hu3 wrote:
           | Android?
           | 
           | I've had to aid my parents using Apple devices just as much
           | as Android (father likes iPhone, mother prefers Samsung
           | Galaxy).
           | 
           | edit: so much for anecdotes...
        
             | anon102010 wrote:
             | Most of us have caught onto the scam promises of ongoing
             | support from android device makers. With an iphone you are
             | pretty sure of 3-4 years of good support. Doesn't the
             | latest iOS support the iphone SE? And I think iOS 12 is
             | still getting updates (Jan 2020).
        
               | hu3 wrote:
               | By most of us you're referring to a minority that use
               | iPhones?
               | 
               | That's a very US centric view. And even among those, most
               | iPhone users aren't tech savvies.
        
             | lotsofpulp wrote:
             | My dad downloaded a bunch of malware on his one plus. I
             | refused to waste my time helping him uninstall it (he feels
             | that it's his god given duty to click on everything, and
             | the shadier the source, the more click worthy it is). So he
             | tossed it and got an iPhone. Now he can click all he wants.
             | 
             | Also android doesn't have any tablets comparable to iPad,
             | and they don't or didn't have any video call app as easy to
             | use as FaceTime. Although, whatsapp video may be just as
             | good now, but I have a few grandparents and a great
             | grandparent who don't have phone numbers, so FaceTime works
             | better in our family.
             | 
             | Also, we use our devices until they die. So we need them
             | getting security updates as long as possible, which doesn't
             | happen on Android. We have 4+ year old iPhones and iPads
             | being used, all pretty much up to date on security updates.
             | 
             | My point is whatever marketing Apple does, the product is
             | clearly superior in many ways so it's ridiculous to claim
             | people are just "brainwashed".
        
       | jmull wrote:
       | Ah.. well, ok, but this is pure nonsense.
       | 
       | First of all, the various kinds of browser local storage have
       | always been volatile. It has always been a _bad idea_ to treat it
       | as permanent storage. Maybe it 's a little more obvious now? Not
       | exactly a bad thing.
       | 
       | > the PWAs I was building here might just be dead for iOS users
       | 
       | If so, it was already dead for your users, whether you realized
       | it or not. I guess you were going to implicitly promise something
       | you could not deliver: that your PWA would keep track of the
       | feeds the user was subscribed to (and perhaps also keep track of
       | what had been read, and other user state). But you were going to
       | _screw your users_ , because a PWA without external persistent
       | storage could not do that reliably. It's really luck for your
       | users that this caught your attention and has you rethinking your
       | app.
       | 
       | A partial list of things completely external to your app (not
       | including this change) that could cause your users to lose things
       | important to them that you stored in various local storage...
       | * user switches browser         * user has multiple devices
       | * user upgrades phone (or tablet, or workstation, or laptop)
       | * phone (or other device) goes in for repair or upgrade         *
       | major change to browser (like Edge moving to chromium)         *
       | some OS updates         * user clears browser data (as
       | innumerable troubleshooting processes suggest)
       | 
       | It's wrong to think browser-based storage used to be stable but
       | now isn't. It never was. Browser-based storage was never going to
       | be a good place to store your user's important, persistent data.
        
       | taway555 wrote:
       | I'd rather use a native app than a PWA any day of the week. The
       | experience of a mobile web app is clunky, slow, typically ugly,
       | and just a generally bad experience.
        
       | davweb wrote:
       | I think the original post is oversimplifying the new behaviour a
       | little. If you look at the other blog post on ITP 2.3 [1] it
       | says:
       | 
       | > ITP 2.3 caps the lifetime of all script-writeable website data
       | after a navigation with link decoration from a classified domain.
       | 
       | i.e. the 7 day timeout for local storage only kicks in if you've
       | been redirected from a domain that ITP has classified as one that
       | tracks users. So, for example, web apps that users navigate to
       | directly will be unaffected.
       | 
       | [1]: https://webkit.org/blog/9521/intelligent-tracking-
       | prevention...
        
         | magicalist wrote:
         | > _If you look at the other blog post on ITP 2.3..._
         | 
         | why would you look at the old blogpost for the new behavior?
         | 
         | It's all web pages, regardless of classification or redirects.
         | The new webkit blog post is quite clear:
         | 
         | > _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_
         | 
         | https://webkit.org/blog/10218/full-third-party-cookie-blocki...
         | 
         | Or straight from the ITP lead's twitter:
         | 
         | > _Fifth, all script-writeable storage is now aligned with the
         | 7-day expiry Safari already has for client-side cookies._
         | 
         | https://twitter.com/johnwilander/status/1242516001939324928
         | 
         | (with follow up replies on what resets the seven day clock)
        
         | brlewis wrote:
         | You're describing behavior from 2019-09-23
         | 
         | I see the same "oversimplifying" in webkit's 2020-03-24 blog
         | post linked from the original post. See "7-Day Cap on All
         | Script-Writeable Storage" in
         | https://webkit.org/blog/10218/full-third-party-cookie-blocki...
        
         | t0astbread wrote:
         | Okay that's good but still, couldn't a domain on that list be
         | weaponized against legitimate sites this way? For example:
         | 
         | - Somehow goodsite.com's user ends up on evil.com
         | 
         | - evil.com redirects to goodsite.com?clickID=1234
         | 
         | - goodsite.com's storage gets flagged
        
         | pier25 wrote:
         | > _So, for example, web apps that users navigate to directly
         | will be unaffected._
         | 
         | I don't think that's true.
         | 
         | I asked the head of Webkit dev on Twitter and he said:
         | 
         | > This time limit affects first-party storage
         | 
         | https://twitter.com/othermaciej/status/1242926762029285376
        
         | noobquestion81 wrote:
         | This! ^
         | 
         | Could someone please change the title of this post? It's rather
         | inaccurate and spreading FUD... legitimate offline web
         | applications are not going to randomly lose their storage
         | abilities in Safari. Tons of people read this (admittedly hard
         | to follow) blog post quickly and then took a nose-dive into
         | their own hot takes.
         | 
         | Hoping Webkit pushes another of these posts later to clear
         | things up.
        
           | saagarjha wrote:
           | They already have-the post referred above is old.
        
         | BiteCode_dev wrote:
         | > website.example will be marked for non-cookie website data
         | deletion if the user is navigated from a domain classified with
         | cross-site tracking capabilities to a final URL with a query
         | string and/or a fragment identifier, such as
         | website.example?clickID=0123456789.
         | 
         | So my guess is you are fine most of the time, except if you
         | allow other sites to embed your content in their page. In that
         | case, you should:
         | 
         | - provide the embed on a separate subdomain
         | 
         | - remove features requiring identification if the content is
         | view embedded: attempting to use them redirect to the real
         | site.
         | 
         | Otherwise ITP will mark your domain as tracking and wipe you
         | after 7 days if your user don't interact directly with the
         | site.
         | 
         | I have a hard time deciding if it's a good thing or not.
         | 
         | I guess it has the potential to be mostly a good thing,
         | provided that:
         | 
         | - I understood it correctly, which I'm not sure, as their
         | wording is not clear
         | 
         | - It's implemented correctly. Once the deal is done, it's in
         | the wild years, fix or not.
         | 
         | - It's implemented in good faith. Apple wants to promote the
         | app store and has shown to neuter web apps in the past.
         | 
         | I still have a strange bad feeling about this.
        
           | pier25 wrote:
           | It's very confusing...
           | 
           | I still don't understand if Safari will delete a JWT in
           | localStorage used to talk to different microservices.
        
             | BiteCode_dev wrote:
             | It is confusing indeed.
             | 
             | My guess would be that if your user uses service site.com,
             | calling using microservice micro.com, then you have to
             | store the JWT in the localstorage of site.com, but cannot
             | store it on the localStorage of micro.com.
        
         | kevin_thibedeau wrote:
         | When will Google Analytics and Google Tag Manager get onto this
         | list of trackers? Lots of web apps are using them.
        
           | t0astbread wrote:
           | As far as I understood this is not a "list of trackers" per
           | se but a "list of websites that track you when you navigate
           | to another website from them" and people don't navigate away
           | from the Google Tag Manager or Google Analytics domains
           | because they don't serve content with links.
        
             | snazz wrote:
             | So this would apply to t.co links from Twitter, for
             | instance?
        
               | t0astbread wrote:
               | I don't know if t.co is such a classified domain but if
               | so, if the link contains query parameters or a fragment
               | part, then yes.
               | 
               | I'm also not sure if "navigation" means through user
               | action or if redirects count, although for the purpose of
               | tracking prevention I don't see how the latter should not
               | also count.
               | 
               | So, if all of this is true the way I understood it now,
               | the restrictions could apply to when someone reaches your
               | site via social media.
        
         | pspeter3 wrote:
         | I think confirmation in the blog post yesterday would have
         | provided a lot of clarity.
        
       | Aissen wrote:
       | There are still people who believe Apple cares about the web
       | platform, 12 years after they forbade browser competition on iOS
       | ?
        
       | shireboy wrote:
       | Does this affect Cordova apps? They use WebKit and may store
       | stuff like api tokens in local storage
        
       | wolco wrote:
       | It doesn't scale from device to device for settings or items that
       | should stay for longer than a week.
       | 
       | Local storage should be treated as cache.. it may get refreshed.
       | 
       | What Apple did was fine. A backend isn't only for storage either.
        
         | soapdog wrote:
         | It is not fine if you're creating apps that don't have a
         | backend.
        
           | finaliteration wrote:
           | Honest question - If you're creating an app like that, is a
           | PWA really the right way to go? Aren't there other options
           | available (such as creating a native app with a SQLite
           | database)?
        
             | untog wrote:
             | Well it isn't _now_ , no, because Apple have made the
             | platform unsuitable for it. But it was fine.
        
             | soapdog wrote:
             | Honest answer, it depends on the app. For some cases sure,
             | just throw it in cordova and be happy.
             | 
             | It is my own personal take that PWAs are more powerful than
             | we give them credit and that they could be used for private
             | apps without backends where you leverage the benefits of
             | web distribution while keeping data private. Doing the
             | native/hybrid app forces you into dealing with gatekeepers,
             | distributing on the web does not.
        
             | Cu3PO42 wrote:
             | Sure you can do that. But now you need a Mac, probably an
             | iOS device and pay $99/yr to Apple. If you're just
             | providing a small one-off solution for a particular problem
             | that you're not monetizing, the above may pose a serious
             | problem.
             | 
             | For example, I (used to) maintain a tool that is
             | essentially a save file viewer, but must store some data
             | for decryption of said files. It's an Electron app, but
             | could work as a normal website for the most part as well. I
             | got a prototype of that up and it stores the required data
             | in local storage. I don't want to maintain and host a
             | backend for it, and I'm not too hot on paying Apple's
             | developer fee for it, either.
             | 
             | You may say it's a fringe use case, and it probably is, but
             | it's very much legitimate. I don't know why they couldn't
             | have made storage for longer than 7 days with an extra
             | permission to be requested.
        
               | [deleted]
        
             | vbezhenar wrote:
             | What if I want to create a porn app which Apple does not
             | allow to be present in AppStore?
        
               | the_other wrote:
               | Can you describe this porn app which also benefits from
               | being a PWA and doesn't need a backend?
        
             | jeroenhd wrote:
             | There's swathes of apps that will never be allowed on
             | popular app stores (gambling, porn, sometimes apps that
             | Google or Apple doesn't want competing with their own
             | services). You can created a native app but it'll only be
             | usable on Android.
             | 
             | Native applications also require acquisition of a Mac and a
             | $99/year membership (iOS) and $25 (one-time fee for Google
             | Play). A web application is mostly hosting costs which can
             | be near free if you use the right cloud services.
             | 
             | I don't know of an alternative that will let me develop a
             | small tool that will be free to develop and distribute, is
             | not subject to restrictive store policies, works on desktop
             | and mobile and is capable of things like accessing the
             | device's camera and location when necessary.
             | 
             | I'm personally a fan of PWAs because they can't secretly
             | write identifiers to my phone's SD card, they can't extract
             | my contracts, they can't monitor my location in the
             | background, etc. Sure, modern smartphone operating systems
             | allow you to set up proper restrictions, but that puts the
             | responsibility of making applications behave on me instead
             | of on the phone.
             | 
             | Sure, native applications have their place (geofencing,
             | native performance, file system access, system APIs) but in
             | my opinion so do PWAs.
        
           | wolco wrote:
           | If you don't have a backend and don't want to use sqlite or
           | something externally you can't save your data with the
           | expectation it won't get erased. Before this change someone
           | could manually clear storage, running out of space could
           | trigger erasing this, etc. Now things clear after 7 days.
           | 
           | If you care about saving that data forever don't use local
           | storage. Just like don't expect cookies you set on the client
           | not to be modified by the client.
        
           | gowld wrote:
           | It is fine if your apps use only 1st party scripts and not
           | 3rd party scripts.
           | 
           | > 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.
        
         | SahAssar wrote:
         | A lot of "normal" apps treat local storage this way. A lot of
         | those apps are basically a wrapper around a WebView. Why does
         | apple accept it there but not for PWA:s?
        
       | WalterSear wrote:
       | This sounds like a death-knell for my personal project: a fully
       | decentralized collaborative task/wiki, built on ipfs, and
       | encrypted against your blockchain wallet. I had just migrated the
       | backend from firebase, too, and was ready to re-launch the beta
       | next week.
       | 
       | Pretty much any PWA that was using ipfs as anything but a
       | caching/distribution layer is no longer viable. This is a huge
       | blow to decentralization technology.
       | 
       | Sure, you can make a standalone app, but that is going to cripple
       | already difficult adoption.
       | 
       | This sucks :(
        
         | soapdog wrote:
         | I'm coming from a decentralization tech background as well and
         | was working on similar stuff. That's why I'm so angry at this
         | arbitrary decisions by Apple. This is just them breaking
         | something that has been working well.
        
       | blauditore wrote:
       | Wait, does that mean that the only way to keep a login session
       | for more than 7 days will be by using cookies? This seems like a
       | terrible idea. Cookie authentication doesn't make sense in
       | several scenarios, especially when working in a CORS context.
       | 
       | For webapps that keep a session token stored locally, this will
       | be inevitably wiped, so users will have to re-login after that
       | time. I can already hear the complaints coming. Should devs now
       | build a back end just to keep the token, and connect there with a
       | cookie?
        
       | chadlavi wrote:
       | If you want to make an app that someone can use offline on their
       | device, why are you making it as a website at all?
        
       | rapind wrote:
       | It would be nice to eventually have a standard way (OS / browser
       | specific) of asking permission to use permanent storage with
       | restrictions. Could be locked down by domain etc.
        
       | alexcroox wrote:
       | Are we absolutely sure they don't just mean the localstorage
       | containers that aren't part of the current domain? In the same
       | way they are clearing cookies from a different domain, and not
       | the ones that belong to the current domain.
       | 
       | EDIT: Clarification from a Webkit dev
       | https://twitter.com/alexcroox/status/1242559843354972161
        
         | dangoor wrote:
         | Yeah, if you look at the section in question, they're talking
         | about this: "However, as many anticipated, third-party scripts
         | moved to other means of first-party storage such as
         | LocalStorage."
         | 
         | Basically, the ad tech/tracker folks were using first-party
         | site storage to store identifiers, which is what Apple's trying
         | to protect against.
        
       | garganzol wrote:
       | Pretty much an expected move from Apple in its current state,
       | shape and form. Security is such a sweet excuse for a tyranny.
        
       | pat2man wrote:
       | Sounds like the solution is to add the app to your home screen. I
       | don't think its reasonable for a browser to let any site I ever
       | interact with to store data on my device indefinitely
        
         | dwnvoted2hell wrote:
         | I don't understand why you wouldn't rely on some other normal
         | local storage for an app, except to be super lazy making cross
         | device apps with some platform. I think that's what all the
         | screaming is about. Low budget cross compatible apps will
         | suffer.
        
         | soapdog wrote:
         | Even web apps that you add to your home screen are subjected to
         | this.
        
           | redindian75 wrote:
           | "Web applications added to the home screen are not part of
           | Safari and thus have their own counter of days of use."[1]
           | 
           | From WebKit: [1] https://webkit.org/blog/10218/full-third-
           | party-cookie-blocki...
           | 
           | A Note On Web Applications Added to the Home Screen
           | 
           | 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.
        
             | untog wrote:
             | > 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.
             | 
             | This is a baffling word salad. So they _are_ tracking days
             | of use of home screen web apps... which sounds like it
             | means that if you do not use the app for seven days the
             | cache _will_ be deleted... but they don 't expect a web app
             | to have its data deleted. What?
        
               | iameli wrote:
               | The only coherent interpretation I can think of is that
               | accessing example.com in a home screen app doesn't reset
               | the timer for example.com in Safari. And vice versa. But
               | it's still really unclear whether that implies that home
               | screen apps get their data wiped or not.
        
               | jsmith45 wrote:
               | Home screen installed PWAs are treated as a separate web
               | browser.
               | 
               | For all web browsers, content is only deleted after 7
               | days in which you use that browser. So if you shut for
               | phone off for a month, and then turn it on, and open
               | safari, that whole month only counts as one day, since
               | you did not use the safari browser during that month.
               | 
               | The same rules apply to PWAs installed to the home
               | screen, which are being treated as seperate browsers. Of
               | course, the count of days of use of this "browser"
               | without using the main site will always remain zero.
               | 
               | But for third party cookies, or third party content from
               | an iframe that uses local storage, those would get nuked
               | if the home screen installed PWA is used on 7 different
               | days without interacting with those domains.
        
             | seanwilson wrote:
             | > 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.
             | 
             | Can anyone explain this with an example?
             | 
             | So web apps added to the home screen will have their
             | storage wiped under some scenarios? If not, what does "have
             | their own counter" mean?
             | 
             | How are web applications added to the home screen not part
             | of Safari in a way that's different from a regular URL you
             | might visit?
        
               | ardy42 wrote:
               | > Can anyone explain this with an example?
               | 
               | Note this is totally based on my reading of the GP:
               | 
               | >> 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."
               | 
               | I'm understanding this to mean: you access Site A and it
               | stores data to your local storage on day 0. Then you use
               | Safari for Sites B, C, and D, _but not A_ for the next 7
               | days. Since Safari has been used for 7 days without using
               | Site A, Site A 's data is cleared.
               | 
               | >> 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.
               | 
               | I'm understanding this to mean there's no distinction
               | between Safari and Site A anymore. Since you can't use
               | Site A for 7 days without using Site A, Site A's data is
               | never cleared.
               | 
               | It would make much more sense for them to just disable
               | the counter in this case, or at least just explain it
               | that way. It would be less confusing.
        
               | jsmith45 wrote:
               | Home screen installed PWAs are treated as a separate web
               | browser.
               | 
               | So installed PWA's do have automatic deletion, but that
               | basically only applies to third party content (like
               | advertiser tracking cookies, or content from other sites
               | you show inside an iframe), since the number of days used
               | since last interaction counter will stay at zero for the
               | main site.
        
               | fiddlerwoaroof wrote:
               | If you add the Twitter PWA to the homescreen and don't
               | use it for seven days, it's storage will be reset and
               | you'll have to log in again.
               | 
               | I think WebKit's handling of local storage is the prime
               | example of how optimizing for privacy to the exclusion of
               | every other consideration is user-hostile
        
               | CodesInChaos wrote:
               | I don't read it like that. It's not about 7 days real
               | time, it's about 7 days on which you use the app.
               | 
               | Since you can use Safari without visiting the PWA's
               | domain, this feature can delete the data of a PWA which
               | runs in Safari.
               | 
               | Since you can't use a homescreened PWA without it
               | visiting the associated domain, the data saved by the
               | PWA's domain will never be deleted for homescreened
               | applications. But data associated saved by other domains
               | can still get deleted if you use the application for 7
               | days without it opening that domain.
        
             | veeti wrote:
             | How is this any better?? I don't expect apps I install -
             | native or PWA - to clear their data if I don't use them
             | every 7 days. That's crazy!
        
               | slipheen wrote:
               | I'm not sure I understand how it is "installed" if you
               | aren't adding it to your homescreen?
               | 
               | Isn't that just visiting a webpage?
        
               | soapdog wrote:
               | the service worker is installed regardless if you add it
               | to the home screen.
        
             | KarlKemp wrote:
             | Of not, this also contradicts the article's scenario of
             | going on vacation. Only days with _some_ browser use are
             | counted.
        
             | iameli wrote:
             | > Web applications added to the home screen are not part of
             | Safari and thus have their own counter of days of use.
             | [...] We do not expect the first-party in such a web
             | application to have its website data deleted.
             | 
             | I don't get it. Which of these statements is correct?
             | 
             | 1. "Web applications added to the home screen are not part
             | of Safari and thus have their own counter of days of use.
             | Of course, that counter doesn't do anything. It just sits
             | there, counting, for no particular reason. We just love
             | counting things!"
             | 
             | 2. "We do not expect the first-party in such a web
             | application to have its website data deleted. Except, of
             | course, if they don't use the web application for seven
             | days. In that case, that data will be _extremely_ deleted!
             | Really just wiped from the face of the earth."
        
               | [deleted]
        
               | kyralis wrote:
               | Neither.
               | 
               | The counter is per days of application use, so (2) is
               | false. Not using the app does not affect the counter.
               | 
               | The counter is also per domain, and so while the _first
               | party_ domain for the PWA (which is likely to, of course,
               | be loaded on each PWA launch) is effectively meaningless,
               | if you visit other domains from within the PWA they will
               | be subject to the counter independently.
        
               | iameli wrote:
               | Okay, that makes sense - counter is third-party domains
               | only. Thanks!
        
               | Dylan16807 wrote:
               | So let's say I launch the zombocom app, then click a link
               | inside the app for "zombo updates" that goes to their
               | twitter.
               | 
               | Then the next few times I switch to the app, I don't
               | launch it from scratch, I just look at the twitter.
               | 
               | Then I've gone seven days inside the zombocom app without
               | touching their actual domain.
               | 
               | Does everything except the twitter cookies get deleted?
        
               | iameli wrote:
               | I believe the first-party primary domain of the app will
               | never have its data wiped -- though the article could
               | certainly be clearer on the point. What would be cleared
               | in that case would be any _other_ domains -- if there 's
               | also a "Visit Zombo Facebook" link in there, and you only
               | looked at Twitter for a week, the Facebook cookies would
               | be wiped.
        
         | nikkwong wrote:
         | It depends on the context.. For example, I use an invoicing web
         | app that stores previously created invoices indefinitely in
         | localStorage. This gives me the benefit of not having to manage
         | login credentials and keeping everything client-side. It also
         | gives the site's developers the benefit of not having to manage
         | user accounts or server side state.
         | 
         | Without being able to use localStorage as a long term store,
         | I'll have to register for an account, have to deal with them
         | handling my data, etc. Losing the functionality of localStorage
         | as a long term store has disadvantages.
        
       | chrisfinazzo wrote:
       | An update from John Wilander would seem to confirm that this
       | _could_ happen in Safari - and they consider it a bug.
       | 
       | Of note, John's replies also mention this policy does not apply
       | to WKWebView or UIWebView, because they lack ITP.
       | 
       | https://twitter.com/johnwilander/status/1242882202301427712?...
        
       | oefrha wrote:
       | The argument would be stronger if the post got into what privacy
       | protection in Safari isn't available in the Apple News app.
       | Instead there's a seemingly random plug for a content blocker app
       | I've never heard about, which upon further inspection happens to
       | be sold by the author.
        
       | mathiasrw wrote:
       | Why not let users give access to that one site use data older
       | than 7 days? So data stays but its only being deleted if you
       | click that it can access (first time only - next time it
       | remembers)
        
       | megous wrote:
       | How does this make sense logically? Obviously the websites that
       | you use the most have the biggest potential and opportunity to
       | track you. All local storage should be deleted for the most used
       | websites at random times, at avg. several times a week, without
       | any extensions caused by recent website usage.
       | 
       | If this is done for privacy's sake, that is.
        
         | quotemstr wrote:
         | > All local storage should be deleted for the most used
         | websites at random times, at avg. several times a week, without
         | any extensions caused by recent website usage.
         | 
         | No matter what browser vendors do, it will never be enough for
         | "privacy" activists.
        
       | arkanciscan wrote:
       | People who use WebKit deserve it
        
       | flixic wrote:
       | Safari already was lagging behind Chrome, Chrome forks and
       | Firefox in a lot of feature adoption. This will only make it more
       | of a "new Internet Explorer", a browser that sites recommend you
       | NOT to use.
        
         | realusername wrote:
         | As a web developer, I spend as much time to fix stuff for
         | Safari as for IE11, I consider them on a similar level.
        
         | twsted wrote:
         | Normally when one said "the new Internet Explorer" he meant
         | "the browser that was always recommended to use", "the browser
         | that stopped innovation because it was almost the only one
         | used".
        
         | scarface74 wrote:
         | Good luck with telling people not to use Safari (or more
         | accurately WebKit) on iOS....
        
           | hesarenu wrote:
           | Nothing to tell. They don't have a choice.
        
           | EGreg wrote:
           | You're right. Tell people not to use iOS
           | 
           | https://www.forbes.com/sites/gordonkelly/2020/03/14/apple-
           | io...
           | 
           | You Apple users will put up with anything!
           | 
           | (disclaimer: iOS user)
        
             | megous wrote:
             | Lol, 50GB unexplained mobile data consumption. That'd be 3
             | months worth of rent on my mobile data plan. Good luck ever
             | getting out of debt if that happened on some more expensive
             | international roaming.
        
             | saagarjha wrote:
             | By Gordon Kelly, who gained notoriety for his "nasty
             | surprise" set of iOS articles he'd put out whenever there
             | was a new iOS update. Glad to see he's still at it.
        
       | andy_ppp wrote:
       | Am I right in saying this prevents any embedded widgets that need
       | to show a logged in version, i.e. comments or whatever...
        
       | Abishek_Muthian wrote:
       | I think looking at Apple as saviour of Privacy, is for lack of
       | better term just wrong. They have always favoured closed systems
       | even if didn't provide privacy advantages or as in this case was
       | counter-intuitive for privacy.
       | 
       | I feel the comparison of Apple with data companies such as
       | Google, Facebook is by itself at fault. Apple like any computer
       | company of 70's was not into data, just because Internet itself
       | didn't exist at that point like it does now. 'Apple didn't choose
       | to be in data' is projected as altruistic, instead of just a
       | marketing ploy(they didn't choose, because it wasn't available).
       | 
       | Apple doesn't receive even the fraction of scrutiny Google,
       | Facebook receive (which they should). e.g. iCloud hack, Apple's
       | response to iOS vulnerabilities targeted by state actors, Newer
       | Safari being incompatible with privacy extensions such as uBO
       | etc.
       | 
       | Personally I feel good that Apple is not into data, just because
       | I feel if they are into data; they might be more evil than Google
       | or Facebook aided by their walled garden.
        
         | Arnt wrote:
         | This is webkit, which is open source. Apple took an existing
         | HTML/CSS/DOM engine, rewrote it, renamed it, and opensourced
         | its version, too.
         | 
         | It's compiled using LLVM, which also contains thousands of
         | lines of open source code by Apple.
         | 
         | Of course you might argue that these examples don't prove your
         | sweeping statement false, but please read
         | https://en.wikipedia.org/wiki/No_true_Scotsman before arguing.
        
           | testtesttest wrote:
           | Open source is not the same as open. You can't run Firefox on
           | an iPhone.
        
             | Arnt wrote:
             | If I understand you correctly, "open source" is not a kind
             | of openness and should be disregarded. Assuming that is so,
             | for the sake of argument, what _does_ count as openness?
        
             | tekstar wrote:
             | Sure you can
             | 
             | https://apps.apple.com/ca/app/firefox-private-safe-
             | browser/i...
        
               | summerlight wrote:
               | Sure you can't. That's not Firefox, but Firefox-branded
               | Safari.
        
             | Abishek_Muthian wrote:
             | Before someone says I have Firefox/Chrome on my iPhone;
             | they are just skins for Safari. Same vulnerabilities which
             | exist on Safari(Webkit) can be exploited there as well
             | since they aren't allowed to use their browser engine.
        
           | Jasper_ wrote:
           | It was open sourced as WebKit because it derived from KHTML,
           | which was copyleft, and it took lawyers getting involved
           | before Apple played ball and released it as open source.
        
         | saagarjha wrote:
         | > They have always favoured closed systems even if didn't
         | provide privacy advantages
         | 
         | Yes.
         | 
         | > or as in this case was counter-intuitive for privacy
         | 
         | I fail to see how this is counter-intuitive for privacy.
         | 
         | > iCloud hack
         | 
         | Targeted spearphising?
         | 
         | > Apple's response to iOS vulnerabilities targeted by state
         | actors
         | 
         | https://news.ycombinator.com/item?id=20897368
         | 
         | > Newer Safari being incompatible with privacy extensions such
         | as uBO etc.
         | 
         | https://news.ycombinator.com/item?id=21025252
        
           | anchpop wrote:
           | > I fail to see how this is counter-intuitive for privacy.
           | 
           | It makes it impossible to have an app that stores data in
           | localstorage reliably, instead requiring it to be backed up
           | on the app's servers.
        
             | saagarjha wrote:
             | In the browser, sure. But it prevents a number of issues
             | with advertisements tracking people around the web.
        
         | diggan wrote:
         | I think looking at ANY company as the savior of privacy is a
         | waste of time. Companies have proven time and time again that
         | they are unable to self-regulate this. Only way forward is to
         | introduce legislation that makes it illegal to track users
         | using privacy-invasive practices, otherwise we'll never get rid
         | of it. A company can be privacy-preserving today, but then the
         | leadership changes or acquisition happens, and now they change
         | their practices, without informing users.
         | 
         | I simply see no technological solution to this problem, it'll
         | always be a cat-and-mouse game, until governments catch up and
         | makes it illegal.
         | 
         | I'm eager to hear if someone here does have any solution to
         | this problem though.
        
           | thefounder wrote:
           | >> I simply see no technological solution to this problem,
           | it'll always be a cat-and-mouse game, until governments catch
           | up and makes it illegal.
           | 
           | Then you we will have privacy-avoidance companies just like
           | we have tax avoidance. Problem solved!
        
             | diggan wrote:
             | Exactly, and when they get caught, they get fines or
             | prison. Sounds good to me, let's ship it.
        
               | thefounder wrote:
               | Let me correct that for you: When they get caught thet
               | get a small fine(somewhere close to 1% of their profit)
               | or no fine at all.
        
               | diggan wrote:
               | Well, we're talking about a hypothetical law here, so we
               | don't really know the amount... The low amounts for fines
               | when it comes to big companies is a different problem
               | that should also be fixed.
        
               | stqism wrote:
               | Often, the fines for breaking the law are factored in to
               | the cost of choosing to do so in the first place.
               | 
               | This is justified, of course, because the gain for doing
               | so vastly exceeds losses due to the fines.
        
         | lcfcjs2 wrote:
         | Google is bad, and facebook is worst.
        
         | FreakyT wrote:
         | Agreed -- Apple's trying to project a high-minded motivation
         | here, but their real motivation is likely to try and limit web
         | technologies so that companies must still invest in native iOS
         | apps and remain within their walled garden.
        
       | donohoe wrote:
       | I think it is worth noting that you can really say "Apple" is
       | doing this or "Apple" is doing that with decisions at this level.
       | 
       | The company is just too big and not working in unison.
       | 
       | The Apple Safari Team is killing/hurting offline apps. The author
       | asks why they don't take the same approach in Apple News - as if
       | it is the same team that is in charge. Different team with
       | different priorities and likely not talking to each-other.
       | 
       | I think the larger point is valid - but it better to understand
       | that this isn't some cohesive cross-company strategy at play. Its
       | size-able teams working on their own priorities within a larger
       | roadmap (presumably).
        
         | JustSomeNobody wrote:
         | I love these types of comments. They contrast very well with
         | the "the reason Apple makes great products is because their
         | hardware and software teams work so closely together to bring a
         | cohesiveness that other companies can't" comments.
        
         | diggan wrote:
         | As Apple is one of the most closed companies, it's hard to put
         | blame on anything Apple-related as you don't really know who
         | the teams are. Sure, WebKit contributors are visible as it's an
         | open source project, but who is the "Apple Safari Team" really?
         | And who is the "Apple News" teams?
         | 
         | Easiest is just to put blame on the top-level entity, which is
         | Apple. They have control over their teams so they can redirect
         | the blame if they feel it's needed.
         | 
         | And if this change is to be able to force more developers to
         | build native apps on their platform, then it's for sure a
         | cohesive cross-company strategy. But we don't know if that's
         | the case.
        
       | diegoperini wrote:
       | I already have a comment on this subject in a thread here but I
       | believe this should be stressed more explicitly.
       | 
       | Apple didn't kill offline web apps. You can always add an
       | interaction to your app which exports the stored data into a file
       | which then can be saved by the user. It can be done entirely on
       | the client side as well. If anything died here, it is the
       | implicit consent by the user for allowing unnoticed storage space
       | consumption. Implementing an export function will automatically
       | make your app portable, which is always appreciated I believe.
       | 
       | Most data on local storage is some kind of structured tree, table
       | or blob. All can be exported with only little effort.
       | 
       | HTML5 games -> Prompt user with a dialog to download saves/assets
       | after they play the game for a while.
       | 
       | Productivity apps -> Detect "ctrl/cmd + s" to prompt a save
       | dialog. Add save buttons somewhere visible.
       | 
       | Map like apps -> Do nothing. If the user is not visiting the map
       | for 7 days, they don't need the map data persisted either. If
       | necessary, allow explicit save with UI buttons for people who
       | travel often.
       | 
       | Apps/sites which use local storage for auth related artifacts ->
       | Notify users if they click "Remember Me" and explain them the
       | caveats. Allow for encrypted save if users ask for it.
       | 
       | Kiosks -> Use Electron or a similar tech.
       | 
       | I am open to counter arguments. I don't have any idea about how
       | mobile browsers behave for the scenarios stated above.
       | 
       | Edit: I use draw.io since last year and the experience there is
       | as refreshing as it can be in this SPA jungle. I use it as a good
       | example to learn from for my own web app projects.
        
         | kristiandupont wrote:
         | >I don't have any idea about how mobile browsers behave for the
         | scenarios stated above.
         | 
         | That's the problem, it won't work there. Apples support for
         | PWA's is frustrating to say the least.
         | 
         | It's fair that you might need consent from the user before
         | storing and keeping large amounts of data, but by removing the
         | option you are forcing a bunch of developers to make a native
         | app instead of a webapp which I find quite infuriating.
        
         | duxup wrote:
         | >You can always add an interaction to your app which exports
         | the stored data into a file which then can be saved by the
         | user.
         | 
         | But... why? Drag the user through some dialogue to save a file
         | locally / manage / be responsible for that and then deal with
         | that whole deal? That seems like very... old / unnecessary.
         | 
         | The fact that applications store some random things locally to
         | me is neither surprising nor a hassle. Browsers already cache
         | files and etc. Unless I don't know something... LocalStorage
         | and other non cookie options seem just fine / safe.
         | 
         | I get the concerns about cookies and such but this seems a step
         | beyond what is needed into the realm of unnecessary / a hassle
         | for the user.
         | 
         | Maybe I'm missing some bad patterns / dark patterns using
         | LocalStorage and etc but it seems to throw them out with the
         | bathwater.
        
           | diegoperini wrote:
           | This is a valid argument.
           | 
           | Here is a fun idea that just came to me (trying to find
           | middle ground here):
           | 
           | - Allow localStorage writes automatically, persist forever
           | (choose your favorite definition for "forever").
           | 
           | - Allow localStorage reads automatically for 7 old.
           | 
           | - Prompt permission dialog if last read from localStorage is
           | at least 7 days long.
        
             | duxup wrote:
             | I think that is reasonable ... maybe if the prompt is ...
             | reasonable.
             | 
             | I'm kinda averse to the OMG COOKIES and other super
             | technical warning type prompts that worry users, but really
             | don't successfully educate them or direct them too good
             | outcomes / choices. Granted education / good outcomes
             | aren't easy tasks there, but what's the point of a prompt
             | if the decision is made by an uneducated and just annoyed
             | user?
             | 
             | I like the idea of empowering users, but not so sure about
             | how we do it on the web / the best way to do it.
        
         | pier25 wrote:
         | These are workarounds for a problem that shouldn't exist in the
         | first place.
        
         | alerighi wrote:
         | Doesn't make sense, just ask the permission to use the local
         | storage to the user if that is the deal.
         | 
         | But that is not the deal, the deal is that they fear that more
         | and more developers are moving to webapps instead of developing
         | native apps that need to pass trough the App Store and thus be
         | approved by Apple, and they don't like that.
        
         | megous wrote:
         | - Give user the option whether to enable "unlimited" storage on
         | per-domain basis. There's already a standrad API for that.
        
         | aquadrop wrote:
         | And for what? To save space? That's ridiculous.
         | 
         | > If anything died here, it is the implicit consent by the user
         | for allowing unnoticed storage space consumption
         | 
         | What about explicit consent? It also dies. That's just
         | inventing problems.
        
         | donatj wrote:
         | This might technically work, but is an absurdly user-
         | unfriendly.
         | 
         | Name a modern game that required you to manually manage game
         | state files, let alone didn't have autosave. It's a feature
         | users expect, and they're going to have a bad time. I don't
         | want to play a quick game on my phone and have to remember to
         | save and where I am keeping my save files.
         | 
         | I'd argue a far better options would be just to treat local
         | storage as a permission like camera or microphones.
        
           | diegoperini wrote:
           | Our suggestions are not mutually exclusive options. Both can
           | coexist if the developers are ready for the implementation
           | burden.
           | 
           | The issue with the permission model is there has to be a
           | mechanism to prevent overuse which I believe is always worked
           | around by annoying the user with the prompt as often as
           | possible until they concede.
        
           | joshspankit wrote:
           | While I agree that it's ideal to treat localstorage as a
           | permission, as someone who has played a _lot_ of games over
           | the years I can tell you that I _wish_ I could manually
           | manage game state files.
           | 
           | The current way iOS does it (either keep the game installed
           | forever or erase all your progress when deleting it) is a
           | huge barrier to me getting invested in iOS games _at all_.
           | With "save progress to file" (and loading), I would be a lot
           | more comfortable.
           | 
           | I would still want autosave though. No way do I want to go
           | back to the era of "oh all my work for the past 6 hours is
           | just gone?"
        
             | joshspankit wrote:
             | Downvote?
        
           | joeblau wrote:
           | I don't even play games but I wouldn't expect a web game to
           | store all of its metadata in my local storage. I would expect
           | it to store data on their own severs and only store active
           | gameplay information locally.
           | 
           | My browser storage is not a game developers long term
           | storage, its a cache.
        
             | gridlockd wrote:
             | It's not about metadata or "web games". It's about
             | apps/games that can be used offline. For that to work, _all
             | the data_ needs to be stored client-side.
             | 
             | > My browser storage is not a game developers long term
             | storage, its a cache.
             | 
             | IndexedDB is explicitly not a cache, it's long-term data
             | storage for significant amounts of data.
        
               | lstamour wrote:
               | Cookies can be used for storage for up to a year, but
               | it's commonly accepted that browsers vary in
               | implementation of this based on user settings. So why
               | wouldn't user settings exist for other kinds of permanent
               | or session storage? Google Chrome is so dominant in both
               | browser-making and standards-making that we've forgotten
               | the browser -- and user -- is always king when it comes
               | to the web. If users want permanent storage they will use
               | alternative browsers for those particular sites. And
               | while site authors can block Safari with a prompt, it's
               | then up to users to change browsers. Presumably for
               | developers these will have knobs to tweak so local
               | storage can continue working in alternative browsers on
               | iOS the way it always has. Presumably Safari will
               | eventually get a config toggle for this setting if it
               | isn't already there. Users already don't notice when
               | browser history is cleared, though advanced users will
               | configure this by following instructions on Google. Same
               | here.
        
               | gridlockd wrote:
               | > Google Chrome is so dominant in both browser-making and
               | standards-making that we've forgotten the browser -- and
               | user -- is always king when it comes to the web. If users
               | want permanent storage they will use alternative browsers
               | for those particular sites.
               | 
               | No, they generally won't. There also aren't really any
               | "alternative browsers" on iOS, they're all Webkit-based.
               | 
               | > So why wouldn't user settings exist for other kinds of
               | permanent or session storage?
               | 
               | Nobody is saying there shouldn't be any settings or
               | consent in this regard. What we get here is not a
               | setting, we get one major player deciding that there will
               | be no way to properly implement offline web apps on their
               | platform.
        
               | lstamour wrote:
               | I disagree that there's no way to implement an
               | alternative to Safari, besides Chrome there's also iCab
               | and other browsers that show not only a completely
               | different UI but also innovative new features. Even if
               | WebKit makes it impossible to remove this restriction, a
               | third-party browser could find a way to intercept calls
               | and keep its own local storage, read and backup native
               | local storage, or provide other means to local storage
               | via proprietary JS APIs, and if that browser is Chrome,
               | it will gain traction. Especially if Apple changes iOS to
               | allow users to change default apps.
        
               | [deleted]
        
             | mattmanser wrote:
             | Why? Are you paying for it? To you, it's trivial amount of
             | data that you can wipe if you somehow desperately need the
             | 1mb, to them it quickly adds up to significant costs.
             | 
             | I find this position absurd, just like the suggestion that
             | everyone should start programming complicated user hostile
             | save flows.
        
               | dx87 wrote:
               | Yes, it's their device, they literally are paying for it.
               | What kind of question is that.
        
               | hombre_fatal wrote:
               | The above comment was talking about persisting save files
               | to someone else's servers.
        
               | lostmsu wrote:
               | He was asking about paying for the game.
        
             | donatj wrote:
             | The article as well as my concern here is not about the
             | browser proper but web apps like you install onto your
             | phone and one of the major points of is that they work
             | offline despite t
        
         | floatingatoll wrote:
         | It seems like the Storage Standard [1] could be combined with
         | the writeable-files proposal [2] to permit the same sort of
         | behavior for local files-on-disk webapps as mobile apps
         | receive, where they can download large asset files and store
         | them on disk in a persistent cache:
         | 
         | https://storage.spec.whatwg.org
         | 
         | https://wicg.github.io/native-file-system/
        
         | snemvalts wrote:
         | So i can start to manage save files on my disk? in 2020?? this
         | is absurd.
         | 
         | apple should fix their safari bugs first before starting with
         | this nonsense.
        
           | henriquez wrote:
           | After the number of times my Firefox and Chromium profiles
           | have been wiped clean due to browser or packaging bugs it's
           | become clear to me that localStorage is not the end-all in
           | terms of data persistence. It's always been a "best effort"
           | rather than a guarantee.
           | 
           | Browsers offer a lot of useful functionality, but people
           | increasingly expect them to be a replacement or substitute
           | for an operating system, and in terms of being operating
           | systems, they're all pretty lacking. Mozilla learned about
           | this with Firefox OS (it was pretty cool though, RIP)
        
             | davvolun wrote:
             | Not strictly disagreeing with you, but ChromeOS seems to be
             | extremely healthy. Not familiar enough with Firefox OS to
             | know why the disparity though.
        
               | henriquez wrote:
               | Then that's just my ignorance - I've never used Chrome
               | OS, though I was heartened to see they were migrating to
               | standard PWAs instead of proprietary parts.
               | 
               | I worked with Firefox OS back when Mozilla was seeding
               | dev kits to software companies. It was a great concept
               | but really seemed marred by bad hardware and then
               | organizational paralysis. IMO this is one of the greatest
               | missed opportunities of the last decade - an (actually)
               | FOSS alternative to Android and iOS. No one else making
               | attempts in this space right now has close to the same
               | engineering experience as Mozilla.
               | 
               | For Safari, Apple adding any PWA features came off as
               | them rolling their eyes, sighing loudly and then putting
               | out a half-assed attempt to deliver years-old standards.
               | And rather than switch to a unified extension
               | architecture like Chrome and Firefox (which they were
               | very close to in previous versions), they've gutted
               | extension support to the point where you need can only
               | bundle very limited extensions with compiled MacOS apps
               | distributed on the App Store.
               | 
               | I don't really understand what Apple is even playing at
               | by offering features but not taking them seriously. But I
               | just don't think the LSO expiry move is _that_ user
               | hostile in the scheme of things.
        
             | Dylan16807 wrote:
             | Well I've never lost anything other than the list of open
             | tabs, and that's despite using alpha versions of firefox
             | and chrome half the time. Cookies and localStorage aren't
             | guaranteed but they're pretty reliable. I've had more
             | trouble from native phone apps losing data than browsers on
             | all platforms combined.
        
         | henriquez wrote:
         | Also you could sync data to an API and offer a login function.
         | If the cookie expires, login and download your data again. This
         | could be end-to-end encrypted for privacy, and having remote
         | storage enables other clients to login and access the same
         | data. Either way it's wise to have some kind of persistence
         | option beyond just cookies and localStorage.
         | 
         | It's annoying how far Apple is behind Mozilla and Google when
         | it comes to progressive web app functionality, but I don't
         | think their action is as user-hostile as is being raised here.
        
         | gridlockd wrote:
         | Dear lord, I hope you don't have any UX design responsibilies.
         | 
         | > Apple didn't kill offline web apps.
         | 
         | Yes, they did. For an app to work offline, you need to be able
         | to at least cache the app itself. If that gets wiped after
         | seven days, you can't call your app "offline capable".
         | 
         | > If anything died here, it is the implicit consent by the user
         | for allowing unnoticed storage space consumption.
         | 
         | What about the "implicit consent" that bandwidth is being
         | consumed?
         | 
         | > You can always add an interaction to your app which exports
         | the stored data into a file which then can be saved by the
         | user.
         | 
         | That would be awful. Imagine being prompted to import your data
         | every time you launch it.
         | 
         | Maybe that sort of works with document-centric apps that have
         | no persistent settings, but even then it wouldn't be possible
         | to integrate properly into the file system in the way users
         | would expect (file assocations).
         | 
         | > HTML5 games -> Prompt user with a dialog to download
         | saves/assets after they play the game for a while.
         | 
         | More like constantly reminding the user that their valuable
         | progress gets wiped after seven days, should they make the poor
         | choice to run the app offline.
         | 
         | > Productivity apps -> Detect "ctrl/cmd + s" to prompt a save
         | dialog. Add save buttons somewhere visible.
         | 
         | Same as above, except the data might be even more valuable.
         | 
         | > Apps/sites which use local storage for auth related artifacts
         | -> Notify users if they click "Remember Me" and explain them
         | the caveats.
         | 
         | "I'm sorry, we made a decision to write an app with technology
         | that, in hindsight, we shouldn't have used. Therefore, your
         | user experience will now be more annoying. Thanks for sticking
         | with us while we're rewriting the app!"
        
           | diegoperini wrote:
           | Your response sound a little angry but maybe the tone is lost
           | in the text so I will respond in good faith.
           | 
           | > I hope you don't have any UX design responsibilies.
           | 
           | I don't. We are safe. :)
           | 
           | > For an app to work offline, you need to be able to at least
           | cache the app itself.
           | 
           | You can still do it, for a limited time. Your mission
           | critical app will work offline if you are not planning to
           | isolate your device from the internet forever. I know this
           | doesn't solve the issue but I believe it is the lesser evil.
           | 
           | > What about the "implicit consent" that bandwidth is being
           | consumed?
           | 
           | This always bugged me as well. This is unexplored territory
           | for all browsers if I am not mistaken.
           | 
           | > Imagine being prompted to import your data every time you
           | launch it.
           | 
           | I don't have to. I use draw.io excessively and it prompts me
           | every single time. I actually appreciate the experience but I
           | am a sample size of 1.
           | 
           | > More like constantly reminding the user that their valuable
           | progress gets wiped after seven days, should they make the
           | poor choice to run the app offline.
           | 
           | If it is valuable, maybe browser is not the best medium for
           | it. Here, Apple's anti-consumer practice with its App Store
           | becomes more relevant than Safari's localStorage algorithms.
           | 
           | > "I'm sorry, we made a decision to write an app with
           | technology that, in hindsight, we shouldn't have used.
           | Therefore, your user experience will now be more annoying.
           | Thanks for choosing sticking with us while we're rewriting
           | the app!"
           | 
           | "In order for 'Remember Me' to work as you expect, please
           | visit us every once in while <3"
        
             | gridlockd wrote:
             | > If it is valuable, maybe browser is not the best medium
             | for it.
             | 
             | Progressive web apps are not "the browser". It's a platform
             | to ship apps using web technology that integrate into the
             | operating system pretty like any other app, at least from
             | the user's perspective. It works well enough on Android.
             | 
             | If you have to explain to your users all the caveats that
             | such an app has on their platform, it just becomes
             | pointless. If it becomes pointless on iOS, then it becomes
             | pointless in general. You might as well go with a Web View
             | app then.
             | 
             | Of course Apple has never been all that enthusiastic about
             | PWAs, giving half-assed support at best. It was never a
             | great platform to begin with, but now it's effectively dead
             | in the water, at least for apps that are expected to work
             | offline.
        
       | cmsj wrote:
       | > deleting all local storage (including Indexed DB, etc.) after 7
       | days effectively blocks any future decentralised apps using the
       | browser (client side) as a trusted replication node in a peer-to-
       | peer network
       | 
       | Sounds good to me, I don't want websites turning my browser into
       | a p2p node :)
        
       | thosakwe wrote:
       | I don't understand why the title was changed - the focus of the
       | article isn't just on the fact that WebKit is changing how it
       | handles local storage, but also a criticism of Apple's
       | motivations for this decision.
        
         | zeveb wrote:
         | _And_ the new title no longer has any relationship to the title
         | of the post. And no admin (from what I can see) even bothered
         | to let us know why he censored this.
         | 
         | edit: 17 minutes after posting this comment critical of
         | moderation, I am unable to submit a new story. Coincidence?
        
       | jwiley wrote:
       | Is there anything to stop an application from touching the cache
       | periodically (in the Unix sense of updating modification
       | timestamps without changing values) on load?
       | 
       | If so, assuming the application is used more than once every 7
       | days, this seems like less of an issue.
        
       | meesterdude wrote:
       | webkit is open source - can't this be changed (be it by fork, or
       | a commit proposal?)
        
         | The_rationalist wrote:
         | The PlayStation(s) browser is using webkit BTW (they are a
         | decade late to switching to chromium..)
        
         | matkalaukku wrote:
         | Sure it can be forked, but the problem is the millions of
         | devices running Apple's version of Safari/WebKit on iOS without
         | any say in it except switching to Android.
        
         | abrowne wrote:
         | Sure, so maybe WebKitGTK will (if this applies to that
         | version). But why would Apple choose to include this fork over
         | their own version in their OSes? If they don't how do you plan
         | on using it with any Apple OS?
        
       | starbugs wrote:
       | Is this really that big of a problem? You had to be expecting
       | that local storage is deleted without any notice anyway, in every
       | web app.
        
         | MatthewPhillips wrote:
         | I absolutely don't have that expectation. I built a comic
         | reader app that I use on my Android tablet, which saves files
         | to IndexedDB. I've been using this for over a year and no files
         | have ever been deleted, even after I stopped using the app for
         | a month or so.
         | 
         | If Apple provided an alternative this would be ok. An
         | alternative such as the native file access API (still a WIP).
         | Or a prompt so that the user can allow long-term storage. Or
         | supporting the web app manifest so that users confirm they want
         | to "install" a web app, granting it greater permissions.
         | 
         | But they've offered no alternatives here, that I can see.
         | They've determined that client-side web apps are simply not
         | important.
        
         | IvanK_net wrote:
         | I have many useful files in my computer, which I don't want to
         | be deleted. You are saying, that it is ok, if the OS deletes
         | all files in my computer from time to time.
         | 
         | A local storage is the only way webapps can store any data in
         | your computer (other than asking you to manually load / save
         | some configuration file). Not all webapps can afford cloud
         | storage for all user.
        
           | starbugs wrote:
           | I am not saying that it is OK to delete all your files. I am
           | saying it has always been like that in the case of a
           | browser's local storage.
           | 
           | As I said, that use case was out of the window long before.
           | From the start, as far as I know.
           | 
           | No browser has ever given you any definite promise on whether
           | your local storage data will be kept. That's also true for
           | IndexedDB. So you need a mechanism to restore that data, be
           | it cloud storage or something else.
           | 
           | If you wanted to support Safari private browsing, you even
           | had to deal with local storage not being available _at all_.
        
             | IvanK_net wrote:
             | I disagree. The IndexedDB was introduced as a permanent way
             | to store data (which is not deleted after closing a
             | website). As it is the only available standard for
             | permanent storeage, I think it should be deleted only if
             | the user asks to delete it (the same way you delete any
             | other file in your computer).
             | 
             | Of course, browsers are free to do whatever they want. But
             | the user can (and will) switch to the software, which does
             | what he or she wants.
        
               | starbugs wrote:
               | You disagree with the status quo implemented in browsers
               | or you disagree with the decisions that were made years
               | ago (by browser vendors), because you basically cannot
               | guarantee for that (disk full, privacy settings, private
               | browsing, etc.)?
        
               | nicoburns wrote:
               | It's different if there is a technical limitation (disk
               | full - computer tend to barely function in this state
               | anyway), or the user has opted in to ephemeral storage.
               | But to not give users the choice to store things
               | permanently is quite a severe restriction.
        
             | vbezhenar wrote:
             | Browsers keep IndexedDB data indefinitely, they don't
             | delete it.
        
               | starbugs wrote:
               | There is no guarantee that the data will be persisted
               | permanently. Users can erase it by mistake easily using
               | privacy settings. There's also quite ambivalent size
               | restrictions. And last but not least, Incognito mode,
               | which also is implemented in a number of different ways
               | in practice, depending on the browser.
               | 
               | Basically, you cannot be sure that you can use it to
               | persist data at all.
        
               | vbezhenar wrote:
               | Size restriction will cause error at write time, it won't
               | silently delete data. User error is user error, that's
               | it. I know user who was deleting files in his Windows
               | directory to free some space. Incognito mode is not
               | intended for web apps usage, it's more for porn and
               | things like that, I don't think that it's very relevant.
               | 
               | It works for majority of standard cases and when it does
               | not work, user will receive error message, so he'll be
               | aware. Not the case for Apple devices anymore.
        
             | silon42 wrote:
             | I'd love for browsers to have an opt-in mechanism to
             | preserve that data (also snapshot/restore/import/export
             | it).
        
               | starbugs wrote:
               | I bet there's tickets in both Google's and Apple's bug
               | trackers from 2012 asking for that.
        
       | andrewrothman wrote:
       | This is a serious problem for modern web experiences.
       | 
       | "After seven days of Safari use without the user interacting with
       | a webpage on website.example, all of website.example's non-cookie
       | website data is deleted."
       | (https://webkit.org/blog/9521/intelligent-tracking-prevention...)
       | 
       | Granted, this could turn out really well if the industry adopts
       | another standard which requires user permission, overcomes this
       | limitation, overcomes the existing limitation of LocalStorage on
       | iOS getting automatically cleared when a device is low on
       | storage, and overcomes the problem of sites being able to use up
       | a lot of storage on users' devices without their knowledge.
       | 
       | I'd be very welcoming of such a standard. These could be good
       | future replacements if the industry can adopt them:
       | 
       | https://chromestatus.com/feature/6428344899862528
       | 
       | https://wicg.github.io/kv-storage/
       | 
       | https://chromestatus.com/feature/5715811364765696
       | 
       | https://storage.spec.whatwg.org/
        
       | floatingatoll wrote:
       | Perhaps the author doesn't realize that WebKit is open source.
       | They could have used their screed to propose to the WebKit team
       | that a first-party page loaded from a file:/// URI not have its
       | client-side storage subject to the 7-day purge, by setting the
       | "firstPartyWebsiteDataRemovalMode" network connection property to
       | "none" -- patch included! But they did not, which is quite
       | disappointing.
       | 
       | The new change to ITP is here:
       | https://github.com/WebKit/webkit/commit/4db42c1571d821572ea9...
       | 
       | The cookie filtering logic specifically is located here:
       | https://github.com/WebKit/webkit/search?q=filtercookies
       | 
       | The file:/// handler is implemented here:
       | https://github.com/WebKit/webkit/blob/master/Source/WebCore/...
       | 
       | (I don't have anything to do with Apple or WebKit.)
        
         | DiabloD3 wrote:
         | Apple does not use _that_ Webkit branch, however. They maintain
         | their own branch internally that cherry picks from upstream.
         | Webkit could very well accept a patch, and then Safari never
         | ships that patch because they disagreed with it for use in
         | Safari.
         | 
         | Also, unrelated fun fact: Did you know Webkit still uses svn?
         | That Github repo you linked to is a clone of Webkit's own git
         | repo (git.webkit.org), which is a mirror of their actual repo
         | (svn.webkit.org).
        
       | soapdog wrote:
       | OP here, I just posted an update section on the post that touches
       | some of the comments I've been seeing here. English is not my
       | first language so I think that sometimes I don't make my ideas
       | clear enough or well explained enough.
        
       | IvanK_net wrote:
       | It is related only to WebKit (Safari). So I think people will
       | just switch to other browsers.
        
         | diggan wrote:
         | Except for iPhones/iPads where you don't really have a choice.
         | Also most people don't give a shit which browser they use, they
         | just use whatever browser is available when they get their
         | device, which makes sense. But those users might soon have
         | their data removed without really understanding why.
        
           | IvanK_net wrote:
           | So I guess more people will switch from iOS to other devices.
           | 
           | I am the creator of a photo editor www.Photopea.com and I
           | see, that more and more people care about their browsers.
           | They spend a lot of time discussing the issues of their
           | browser with me, because they need to do a serious work in
           | it.
        
             | foepys wrote:
             | You can install other browser frontends on iOS. People just
             | don't know that the backend is still Safari.
        
       | est31 wrote:
       | Offline web apps are direct competitors to apps from the Google
       | play store and Apple app store. You can't expect Apple to be fair
       | to them if they are missing out of their 30% for every USD of
       | revenue on those web apps.
        
       | gfodor wrote:
       | We use local storage for features in hubs.mozilla.com when most
       | sites would use a database, because we want to minimize storage
       | of data in our servers to increase privacy. This basically will
       | now force us to store this data in our database for safari users,
       | eroding their privacy.
        
       | p2detar wrote:
       | Why 7 days though? Why not 30 or 3? What are Apple basing this
       | number on?
        
       | franga2000 wrote:
       | Not on the main topic, but since OP mentioned CORS being a pain:
       | is there a reason the browser doesn't let sites do cross-origin
       | requests, but just without any cookies etc.? Either through a
       | separate API or just the default behavior in the absence of CORS
       | headers, is there a reason for that not being a thing? I can't
       | imagine nobody has thought of it?
        
       | talkingtab wrote:
       | A previous HN discussion about PWA's replacing native apps:
       | https://news.ycombinator.com/item?id=22554745
        
       | sidhanthp wrote:
       | I think this is a good idea. Developers should not be able to
       | store something on my computer indefinitely without my consent.
       | This doesn't apply to applications users add to their home
       | screen.
       | 
       | This doesn't "destroy" the PWA ecosystem. Just makes a user's
       | intention explicit when they save a PWA to their home screen,
       | rather than continuing to use it within the browser.
       | 
       | From the WebKit Blog (https://webkit.org/blog/10218/full-third-
       | party-cookie-blocki...) "Web applications added to the home
       | screen are not part of Safari and thus have their own counter of
       | days of use."
        
         | duxup wrote:
         | Your browser is already caching a whole lot of stuff that you
         | don't know about just by visiting a site.
         | 
         | A little LocalStorage isn't going to hurt you.
         | 
         | Cookies I get, but I don't know of any dark patterns with
         | localstorage / the benefits are pretty great.
        
           | judge2020 wrote:
           | I asked about the dark patterns above and got answers
           | confirming it https://news.ycombinator.com/item?id=22687214
        
             | duxup wrote:
             | I'm not convinced that actually confirms much.
             | 
             | One of the pages linked there just says local storage is
             | used to store stuff... yeah? It's still not as wide open as
             | cookies.
             | 
             | You could use local storage while doing other things, but
             | i'm not convinced it's a serious issue with tracking or
             | etc. ... and if ANY storage is considered an issue I think
             | we're in for a big snowball effect on what we should or
             | shouldn't allow from ... anything, including native apps,
             | etc.
        
       | briandear wrote:
       | What's wrong with a "normal" app? No server required and data
       | stays only on the device. The argument that the author is
       | building a PWA because other people abuse privacy (with apps)
       | doesn't make much sense. Why not build the app, respect privacy,
       | and be done with it?
       | 
       | LocalStorage is not a substitute for an actual database, it's a
       | cache. The problem with the author's technique is that privacy
       | minded users clear their browsers from time to time, so they
       | would be inadvertently clearing data they actually wanted to keep
       | because who uses LocalStorage as a persistent data store? Sure it
       | could be used like that as an "off label" use, but generally it's
       | used to cache what is persistently stored elsewhere or used as a
       | means to avoid multiple network calls in the process of doing
       | something (such as saving calculations, the results of which
       | would be eventually persisted.) Local Storage should be used as
       | if it were a session store rather than something persistent.
        
         | sj4nz wrote:
         | The problem with a "normal" app is now you are beholden to the
         | rules/regulations/evaluations of a third party that can easily
         | decide without recourse that your "app" should not be in their
         | store. Even if your app "is fine" every update and upgrade
         | incurs a delay through the third party's reviewing process
         | before your users receive it.
         | 
         | If the web browsers would provide _some API_ for persistent
         | storage without yanking the carpet out from underneath
         | developers this wouldn't be such a huge problem. There _used_
         | to be a file-access API but it was removed.
         | 
         | Personally, I think web browsers are too large a surface area
         | to secure/keep secure and the world is probably going to swing
         | the opposite direction to native, downloadable applications
         | without the interference of a third-party store.
        
           | danans wrote:
           | > Personally, I think web browsers are too large a surface
           | area to secure/keep secure and the world is probably going to
           | swing the opposite direction to native, downloadable
           | applications without the interference of a third-party store.
           | 
           | Wait, you think downloadable native apps without any
           | intermediary to validate them is more secure? What you're
           | describing is basically the old shareware system, which was
           | riddled with security issues.
        
           | The_rationalist wrote:
           | Here's the api: https://developer.mozilla.org/en-
           | US/docs/Web/API/StorageMana...
        
         | SahAssar wrote:
         | A normal app requires a separate build process, users to
         | install it, manual review for each update, perhaps the platform
         | owner will just deny it without reason, and for Mac/iOS it also
         | requires actually owning or "borrowing" (using another
         | persons/companies) build machine and software.
         | 
         | I don't understand why an installed PWA should not be able to
         | keep their storage just as a "normal" app can. It would clearly
         | be better for both developers and users. There are so many apps
         | & websites that could be more privacy friendly if they could
         | just trust localstorage to actually be "storage".
        
           | alkonaut wrote:
           | Those sound like problems for the developer, and not the end
           | user.
        
             | SahAssar wrote:
             | I don't think you understand what "users to install it"
             | means for actual users.
             | 
             | Most users are asked to install multiple apps for the
             | normal sites they visit (like news sites, social media,
             | imagehosting and more). They usually don't, and that's
             | good. Those apps should not be apps, they should be
             | websites. Most of those apps can be a simple website. If
             | the users want/need more functionality that can be within a
             | installed PWA.
             | 
             | I think this is more people and developers fetishizing what
             | it means to be in the app store or to be "native". If we
             | can run it all in probably the best sandbox we have
             | available without having vendor specific builds or vendor
             | specific prompts why would we as users _or_ developers want
             | anything else?
             | 
             | Some apps should be native. But the majority of them would
             | be better as webapps rather than android/iOS apps.
             | 
             | EDIT: Also I'd argue a lot of those problems are
             | artificially created by the platforms, not the developers.
        
       | _pius wrote:
       | This headline rewrite does a disservice.
       | 
       | It editorializes away the point of the post, which is that,
       | according to the author, "Apple just killed offline web apps
       | while purporting to protect your privacy [by forcing WebKit to
       | delete all local storage after 7 days]."
        
       | things wrote:
       | It's not super clear but, if I'm reading it correctly, the 7 days
       | are 7 days of use. So if you don't open the site for 3 days, the
       | counter is still at 0.
        
       | awinter-py wrote:
       | push messaging also doesn't work for PWAs on ios
       | 
       | (it does on android)
       | 
       | I get that controlling the walled garden is apple's mobile
       | strategy now, but this is costing developers so much blood sweat
       | & tears.
       | 
       | Both xcode and android studio are heavy + horrible compared to
       | web, and the fact that you have to use _both_ tools to release at
       | scale makes them worse. Shopify wrote a dev post a few months ago
       | saying  'we're react native as much as possible now' and claiming
       | it makes life easier, but react native is worse than PWA because
       | you still have to build for mobile 2x and deal w/ app store
       | nonsense.
       | 
       | If PWAs supported push on ios, with or without cookie expiration,
       | they'd be the preferred launch strategy for most non-game apps.
        
         | p1necone wrote:
         | Hasn't aggressively controlling the walled garden _always_ been
         | Apples strategy? I don 't see them changing any time soon. iOS
         | didn't even _have_ an app store initially, and it took a lot of
         | pushing for that to happen (they realized Android was going to
         | eat their lunch if they didn 't).
        
       | goofballlogic wrote:
       | While I agree with the concerns regarding arbitrary
       | implementation of standard APIs, there are still a bunch of
       | useful applications of PWA technology to enable temporary offline
       | operation.
       | 
       | The more we use these, the more likely the APIs are to be fully
       | implemented (and hopefully have features added to them).
        
       | simion314 wrote:
       | Will this affect all browsers that in iOS are forced to use same
       | engine?
        
       | chrisshroba wrote:
       | Does this also mean you'll have to re-login to websites every 7
       | days? (Sorry, not very familiar with web tech!)
        
         | [deleted]
        
         | icebraining wrote:
         | No, you'll have to re-login only if you haven't been to the
         | site in the last 7 days.
        
       | pier25 wrote:
       | Is this also going to affect web views?
       | 
       | For the past couple of years I worked on an education app where
       | users are 90% of the time offline. Users can remain offline for
       | weeks. There the is no reliable internet in most of the schools
       | in Mexico.
       | 
       | I don't work on that company anymore but this is going to be a
       | massive headache.
        
       | pgt wrote:
       | When suppliers do this, they put customers back into a buying
       | position. Instead of defaulting to buying another iPhone, I'm
       | back in a buying position. So let me ask: what is a good
       | alternative to an iPhone Xs on the market? I was also super close
       | to buying an Apple Watch, but now I'll defer that purchase.
       | 
       | I have already stopped building native apps because the App Store
       | process is so painful.
        
       | thehappypm wrote:
       | Maybe I'm being cynical here -- I'm not a web developer but have
       | lots of experiencing managing web-based products -- but if you
       | want to have state you should store it in the cloud, because
       | local devices are volatile. Xbox Live, for example, uses a fairly
       | simple service for cloud saves for games; local saves still
       | happen but any developer has the option to push saves to the
       | cloud. The author definitely raises good points about how it's
       | easier for developers to not have to worry about it, but cloud
       | saves have some hefty benefits, like multi device support, user
       | getting a new device, etc.
        
         | duxup wrote:
         | The problem is (at least for me) offline apps, or for customers
         | who have poor or intermittent / unpredictable internet access.
         | 
         | They threw LocalStorage and etc out with the bathwater that are
         | cookies.
        
         | deedubaya wrote:
         | Yes, you're correct, but have you ever used an app that worked
         | offline or performed well with a poor network connection? Or a
         | website maybe provided wicked fast data access despite only
         | having a 2G connection?
         | 
         | These technologies can be leveraged to improve usability.
         | Unfortunately, advertisers and 3rd party trackers make it so we
         | can't have nice things.
        
       | z3t4 wrote:
       | Apps added to the shelf should keep their data
        
       | coffeefirst wrote:
       | Great... So all those "consent to cookie/GDPR/etc/subscribe to
       | our newsletter" popups will now reappear every time you go 7 days
       | without visiting a site.
       | 
       | I'm 100% on team privacy but this isn't the right way to do it.
        
       | stwrong wrote:
       | Does this consider hybrid apps like ionic or Cordova to be part
       | of this?
        
       | jchw wrote:
       | Actually, Apple has crippled non-PWA apps. I agree that Apple
       | does seem to not want PWAs to succeed based on my experiences
       | with them on my iPhone, but on the other hand this effectively
       | does not apply to PWAs that are added to the user's home screen
       | since the counter only runs every day Safari runs but homescreen
       | sites have their own counters.
       | 
       | I worry that 7 days is too short of a period even then, but I do
       | agree indefinite local storage does not make sense in most cases.
        
       | mattl wrote:
       | > By now, most people are aware of the amount of surveillance and
       | tracking that their web usage is subject to on a daily basis and
       | how this data can be used in ways that do not match their own
       | personal values.
       | 
       | Sorry, but no way.
        
         | szc wrote:
         | The data for "Local Storage" is stored in
         | ~/Library/Safari/Databases -- you will need to give Terminal
         | access to the Safari directory as the current Sandboxing works
         | both ways, Safari stores security config info in this directory
         | and scripted malware could / can exfiltrate data and change
         | values in this location.
         | 
         | To violate privacy (aka enable tracking) a sub-iFrame could be
         | set up that uses "local storage" with a parent page security
         | policy that allows communication across the iFrame boundary.
         | Sorry, yes, I am being a bit vague.
         | 
         | Who cleans up ~/Library/Safari/Databases? I personally see crud
         | in this directory from 2011 that has been migrated from older
         | systems.
         | 
         | Almost not relevant now, but Flash also had a "local storage"
         | system that was shared across all Flash Apps. It also allowed
         | (before sandboxing) local apps to proxy and communicate (via
         | shared memory) with any standalone Flash App on the system
         | through any page that used the Flash plugin -- i.e any running
         | web browser, violating all attempts to have web
         | compartmentalization rules.
        
           | szc wrote:
           | I think some threads have been merged. I am now seeing some
           | posts that confirm what I say above, but were made earlier in
           | time that I had not seen. My experience and perspective is
           | from security and privacy defense, rather than "find the
           | loophole". [edited for clarity]
        
       | [deleted]
        
       | dennisy wrote:
       | This "feature" also invalidates the use case for WebCrypto API,
       | since a user's keys would be stored in IndexDB, which now means
       | keys cannot be safely persisted.
        
         | synfonaut wrote:
         | Exactly this. Most "non-custodial" web wallets will die as a
         | result of this change (some may even lose money/assets). Very
         | unfortunate Apple!
        
       | diminish wrote:
       | Apple is at war against the open web and tries to kill it at all
       | cost.
       | 
       | Most apple apps are privacy hogs which don't have any way to turn
       | off tracking. In apps, Apple created a prison which noone can
       | question and everyone will allow them to do all abuse. Look at
       | Apple News.
        
       | sebringj wrote:
       | That is terrible if you are working on a pwa game to cache assets
       | offline. There should be some opt-in approach similar to location
       | tracking in the background like some apps do. That seems way
       | worse than simply having local data be relied upon. Not cool.
        
         | icebraining wrote:
         | What's the problem with the client having to re-download those
         | assets if they don't play for a week? Seems long enough that
         | I'd expect a patch download on a typical gaming platform, for
         | example.
        
           | bdefore wrote:
           | Offline iPad kiosks
        
       | pier25 wrote:
       | This won't accomplish much in the long term. Ads networks will
       | simply start introducing server side SDKs. Websites that rely on
       | ads will gladly use those to keep their revenue even if that
       | means more load on their server.
        
       | Jach wrote:
       | Workaround: encode your app's state into window.location.hash
        
         | icebraining wrote:
         | That works as long as the user keeps the tab open, but if they
         | use a bookmark (or just remember the domain), the hash part
         | will be lost.
        
           | Jach wrote:
           | The hash part is not lost to bookmarks, unless Apple broke
           | that too. If it was, no one's MEGA bookmarks would work.
        
             | icebraining wrote:
             | I mean, sure, the bookmark would save a snapshot, but the
             | user would have to manually replace it every time.
             | 
             | Might be simpler to just give them a file to save / load.
        
         | withinboredom wrote:
         | I've seen this before on an ecommerce site :sigh:
         | 
         | Wife: Hey, check out this! [link with embedded state]
         | 
         | Me: Wow, I'm logged in as you and can even see your payment
         | information! Let's not buy from this site!
         | 
         | Let's not do this. Ever.
        
           | recursive wrote:
           | Not all data is sensitive data.
        
       | stcredzero wrote:
       | _Many web developers are turning to Electron in these cases but
       | IMHO this is a waste of resources as the Electron runtime is not
       | shared among the different apps running and there is only so many
       | browser engines your computer can run before it has impact on its
       | performance_
       | 
       | Why? Why isn't the case that the code which runs Electron, and
       | library code JIT-ted by Electron can't be reused by other
       | processes on the same system?
        
         | The_rationalist wrote:
         | It can be reused, it's just that nobody actually care enough
         | about contributing to upstream electron. There are unofficial
         | solutions like electron-shared. Ionic and Carlo also use only
         | one chromium for every instance.
        
       | burtonator wrote:
       | I ported Polar (https://getpolarized.io/) over to a PWA about a
       | year ago.
       | 
       | It's kind of a nightmare due to both Google and Apple messing
       | things up.
       | 
       | PWAs could be an amazing platform but both companies are really
       | messing it up.
       | 
       | Apple is trying to kill them by giving plausible explanations as
       | to why they can't have PWAs. Security this, blah blah blah.
       | There's no reason they can't have PWAs work well in Safari other
       | than they want you to port your app to the App Store and get
       | locked into their native APIs.
       | 
       | Google's problem is, well, they're Google. Meaning things are
       | somewhat incoherent, docs are all over the place, they start new
       | initiatives then abandon them half way, etc.
       | 
       | Consumers are another problem. They have no understanding of PWAs
       | and they go to the app store, don't find us, and then complain we
       | don't have an app..
       | 
       | The plan now is to use Google TWAs and port our PWA to Android.
       | 
       | We're going to do the same thing to Apple after we do the Android
       | release BUT I think there's a 50% chance that apple will just
       | flat out block us.
       | 
       | I think we might have a chance of getting around it if we use
       | mobile gestures properly, use platform specific APIs like the
       | camera, audio, and GPS that aren't on web and try to really
       | integrate into the platform properly.
       | 
       | For example, they have an API to detect dark mode now. IF that's
       | on we're just going to magically enable our dark mode in our app.
        
         | Razengan wrote:
         | You blame Apple, Google and your consumers, instead of just
         | making native apps. Why?
        
         | vosper wrote:
         | > There's no reason they can't have PWAs work well in Safari
         | other than they want you to port your app to the App Store and
         | get locked into their native APIs.
         | 
         | Is it possible they also want you to port your app to the App
         | Store to prevent an explosion of garbage and malware that could
         | happen if PWAs really took off?
        
           | jamiesonbecker wrote:
           | > to prevent an explosion of garbage and malware that could
           | happen if PWAs really took off?
           | 
           | You mean, like the Internet. The App Store is a nice, safe
           | walled garden, like AOL.
        
           | franga2000 wrote:
           | I seriously doubt that. It's a lot more difficult to do
           | horrible things with PWAs than it is with native apps. Apple
           | has a history of doing everything they can to keep people
           | inside their walled garden and this is just another instance
           | of that.
        
         | b1tr0t wrote:
         | Hi there, I'm the product manager for PWAs on the Chrome team.
         | 
         | Very interested in hearing about pain points you've had
         | building out PWAs, especially if there's features you were keen
         | on that haven't been released. Easiest way to reach me is on
         | Twitter: https://twitter.com/b1tr0t
         | 
         | Fully agree with you that docs are all over the place. We've
         | started to consolidate docs under web.dev, and the PWA section
         | launched recently (https://web.dev/progressive-web-apps).
         | Consolidating and adding docs is an active area of investment,
         | and our goal is to create a well lit path for developers to
         | succeed with PWAs.
        
       | arendtio wrote:
       | What did we expect? I mean how long is it now that Apple refuses
       | to implement the Push API properly (which in turn is a basic
       | requirement for many PWA use-cases). They clearly try to use
       | their influence to defend their App Store revenue. And to make it
       | look good, they do it in the name of privacy.
        
       | KarlKemp wrote:
       | I don't remember ever seeing this usage pattern in the wild? As
       | far as I understand, it would always have resulted in data loss
       | whenever users chose to clear browsing data. There also wouldn't
       | have been any natural way for backups or synchronization.
       | 
       | A browser plugin might be one way to achieve something like this.
       | Personally, I really don't care about the data my feed reader
       | has, so I wouldn't mind even public data storage backends, like
       | gist. Or steganographically encoding my list of feeds and
       | uploading it to porn sites :)
        
       | endorphone wrote:
       | Posts like these are much more convincing when they simply make a
       | case for some allowance or some functionality, or point out the
       | downsides. The moment they go into whataboutism or grander claims
       | of conspiracies or ill intentions they fall apart.
       | 
       | Rational readers click back and move on. You end up just
       | preaching to the choir.
       | 
       | This particular complaint is paradoxical because Apple birthed
       | web apps, and has done more than anyone to make them a reality.
       | Unfortunately they remain a _very_ rare beast -- extraordinarily
       | rare -- and are dwarfed by the privacy concerns of people using
       | iOS just to browse. So the team dealt with that. Seems a fairly
       | obvious pros and cons analysis.
       | 
       | Maybe they'll add an exception for installed to desktop webapps.
        
       | Animats wrote:
       | _What are private client-side PWAs anyway?_
       | 
       | Good question. The definition of a "progressive web app" is
       | vague. What they seem to mean is a web page which, once you visit
       | it, is cached locally, and thereafter runs locally. The web page
       | accesses various servers, not necessarily ones from the same
       | domain as the web page. Persistent state, if any, is stored
       | locally. The page gets its own icon on the home screen somehow,
       | so it sort of looks like an "app".
       | 
       | Apparently "progressive web apps" are supposed to have a browser
       | service worker so they can get notifications pushed to them from
       | somewhere, although it's not clear why that's essential. That
       | would seem to depend on whether the function performed requires
       | being notified of something happening elsewhere.
       | 
       | Apple apparently dislikes this because they don't get to force
       | people to use their store, with their big cut of the revenue.
       | 
       | Is that about right?
       | 
       | Does this only apply to pages read through Apple's browser, or
       | does it impact Firefox, too?
        
         | judah wrote:
         | > Is that about right?
         | 
         | Progressive Web Apps are strictly defined:
         | 
         | 1. The app has an app manifest describing metadata about the
         | web app, enabling it to be treated like an app (e.g. it can be
         | installed)
         | 
         | 2. The app has a service worker, enabling it to work offline
         | like a native app.
         | 
         | 3. It's served over HTTPS.
         | 
         | Those are the 3 technical requirements of a PWA.
         | 
         | There's also the philosophical direction of Progressive Web
         | Apps: they're progressive, meaning they offer the app's
         | essential experience no matter the device, but enhance
         | progressively based on the device they're running on. That is,
         | more capable devices let the app offer more functionality
         | without blocking out users on lower-end devices.
        
         | JumpCrisscross wrote:
         | > _Apple apparently dislikes this because they don 't get to
         | force people to use their store_
         | 
         | This is part of the motivation. The other is advertisers using
         | persistent local storage to track users [1].
         | 
         | [1] https://clearcode.cc/blog/alternatives-to-cookie-tracking/
        
           | oblio wrote:
           | Do they block native apps that track users?
        
             | frenchy wrote:
             | Only if you fail to use the Apple advertising ID. Tracking
             | users is fine as long as Apple holds the keys.
        
         | soapdog wrote:
         | > Does this only apply to pages read through Apple's browser,
         | or does it impact Firefox, too?
         | 
         | This applies to WebKit, but if that decision sticks Mozilla
         | might follow. Who knows... I hope not. Also be aware that
         | Firefox on iOS is WebKit.
        
       | PunksATawnyFill wrote:
       | What is a "PWA?"
       | 
       | Would be good to include in the title.
        
       | robenkleene wrote:
       | I'm guessing that Apple will start hindering web apps because the
       | new mouse support in iPadOS is going to be such a boon to web
       | apps. Because of sandboxing, web apps are the only cross-platform
       | apps that can run in their full versions on iPadOS. I wrote a
       | quick summary of the situation[0].
       | 
       | Therefore, since native apps are more of a platform
       | differentiator than web apps, moving forward we can expect Apple
       | to start systemically hindering web apps, especially on ones that
       | are good on iPadOS, in order to boost native apps.
       | 
       | (I'm not saying this necessarily the start of this, but I am
       | saying I'm not surprised. This is exactly the type change,
       | targeting the exact type of app I'd expect to be targeted.)
       | 
       | [0]: https://blog.robenkleene.com/2020/03/20/ipadoss-new-mouse-
       | su...
        
         | saagarjha wrote:
         | The people who work on making websites function better on iPad
         | are literally a 20 second walk away from the people who work in
         | Intelligent Tracking Prevention-do you really think that they'd
         | seek to undermine each other in this way?
        
           | LocalPCGuy wrote:
           | Absolutely, do you have evidence they are talking and
           | consulting with each other? Obviously lack of evidence isn't
           | evidence either, but departments do things all the time that
           | are at odds with each other in companies like Apple.
        
         | cageface wrote:
         | _moving forward we can expect Apple to start systemically
         | hindering web apps_
         | 
         | They have been doing this for quite some time now. Always
         | ostensibly to protect users but always also conveniently
         | putting webapps at a permanent disadvantage to native apps.
         | 
         | For my part I'm not interested in being a user of a platform so
         | hostile to the web that it disallows any third party browsers.
        
           | tomp wrote:
           | Technically it's disallowing third-party JITs / executable
           | data. Which is a good thing all-in-all.
        
             | saagarjha wrote:
             | Eh, I'm not completely sold on that.
        
             | madeofpalk wrote:
             | Actually the guidelines specifically ban non-webkit
             | rendering engines.
             | 
             | > 2.5.6 Apps that browse the web must use the appropriate
             | WebKit framework and WebKit Javascript.
        
               | tyree731 wrote:
               | At a minimum we can be thankful that Apple's rules force
               | web developers to care about one additional browser.
        
           | TheKarateKid wrote:
           | > _Always ostensibly to protect users but always also
           | conveniently putting webapps at a permanent disadvantage to
           | native apps._
           | 
           | This isn't always a bad thing though. For example, Safari has
           | prohibited some obnoxious behavior that Chrome has allowed:
           | Autoplaying videos, tab suspension, push notifications. These
           | hog CPU and destroy battery life, worsening the user
           | experience.
           | 
           | Remember, making _everything_ a web app is Google 's agenda
           | because _they_ benefit most from it.
        
             | estreeper wrote:
             | I would just point out there are very valid use cases for
             | these things, i.e. push notifications are very useful to me
             | (from certain apps). The problem is one of consent.
        
             | dzhiurgis wrote:
             | MacOS Safari autoplays YouTube videos with now way to
             | disable...
        
               | Gaelan wrote:
               | Interesting. I can tell Safari to not autoplay videos on
               | YouTube in its preferences, but that doesn't seem to do
               | anything. Seems more like a bug on Safari's part and/or
               | workaround on Google's part than anything deliberate.
        
           | wildduck wrote:
           | One can always rely on cordova/phonegap type of app with a
           | C++ plugin to address this issue.
           | 
           | Personally, not having web app storing large amount of data
           | is a good thing.
        
           | fpoling wrote:
           | Apple disallows third-party web rendering engines. Google
           | Chrome on iOS uses own networking stack.
           | 
           | It is still a significant restriction, but it is rather
           | understandable. Without it it could be just Blink everywhere
           | at this point.
        
             | lern_too_spel wrote:
             | > Without it it could be just Blink everywhere at this
             | point.
             | 
             | In what reality-distortioned universe is that worse than
             | having a crippled web?
        
               | saagarjha wrote:
               | Please don't call anything that's not Blink "a crippled
               | web".
        
               | jamiesonbecker wrote:
               | I believe that OP is saying it would be preferable to
               | have blink-everywhere than to have a deliberately-
               | crippled Apple web browser with all other choices banned.
        
             | cageface wrote:
             | So it's not about what's best for the user but what's best
             | for Apple? I wouldn't call that "understandable". All this
             | is doing is contributing to webkit monoculture.
        
               | Spivak wrote:
               | There's some irony that Apple forcing the use of Safari
               | on iOS is creating a monoculture when, were the
               | restriction lifted, everyone would be using Chrome.
        
               | cageface wrote:
               | If so it would be because users chose it and it would
               | also help keep Firefox in the game which important to the
               | long term health of the web.
        
               | zimpenfish wrote:
               | > everyone would be using Chrome.
               | 
               | I'd be amazed if there were more than a tiny fraction of
               | iOS/iPadOS users (of which there are hundreds of
               | millions) who weren't perfectly ok with Mobile Safari for
               | their everyday usage.
               | 
               | [I'm probably the "target market" for Chrome (backend,
               | occasionally frontend developer) and there's no way I'd
               | have it on my phone. I only suffer the GMail app because
               | they've made IMAP usage of gmail unreliable.]
        
               | kitsunesoba wrote:
               | It doesn't matter what users choose, devs would badger
               | users into using Chrome for their own convenience. It'd
               | be the return of the "viewed best in" badges from the
               | late 90s and early 00s.
        
               | TheKarateKid wrote:
               | Remember, making everything a web app is Google's agenda
               | because they benefit most from it.
        
         | ChrisMarshallNY wrote:
         | As a native app developer, I can live with this.
        
           | OzzyB wrote:
           | As long as you start refering to the "i" in "iPhone" as
           | _Intranet_ and not ~Internet~ then we 're cool.
        
             | 72deluxe wrote:
             | My iPod Classic has no intranet or internet.
             | 
             | What does the "i" mean in that case???
        
             | ChrisMarshallNY wrote:
             | I have nothing against hybrid apps. In many use cases, they
             | are the best approach, and I have often declined business,
             | in recommending them to others, as opposed to what I can
             | do.
             | 
             | My post was not an attack on anyone or anything, and it was
             | not being snarky. All I said was that I develop native
             | apps, and that this policy does not affect me.
             | 
             | I like developing native apps. I've been writing native
             | Apple software for 34 years. It's not really difficult;
             | just different. I have also been developing "Internet"
             | software, of all kinds (full stack), since before the WWW.
             | Using Apple stuff. It certainly can be done.
        
         | Veen wrote:
         | If this were true, how would you explain the recent
         | improvements to Safari on the iPad that make it as capable as
         | desktop Safari. Until last year Google Docs did not work in
         | Safari on the iPad. Now it works very well indeed. The same is
         | true of most web apps.
        
           | diggan wrote:
           | This particular move takes something that is possible in web
           | applications today and makes it not possible in the future
           | (offline capable frontend-only applications), making the gap
           | between native applications and browser applications further,
           | so developers who need to build apps that works offline on
           | iPhone, will only be able to use Apples own technologies for
           | doing so, in a non-cross-platform way. Which in general, is
           | what Apple always been favoring.
           | 
           | Google Docs doesn't really work offline, so it's not impacted
           | by this change. Could also be a change of heart from Apple,
           | since their stance on web applications have changed before.
        
             | Veen wrote:
             | It could also be exactly what they say it is: a way to
             | prevent the abuse of local storage for tracking.
        
               | diggan wrote:
               | People who want to track users will always find a way to
               | do so, it's a endless cat-and-mouse game. Now they will
               | just use cookies instead... The only way to win this is
               | to legislate away the freedom to track users by using
               | privacy-invasive methods. That's the only way that will
               | work long-term. But that'll make half of the internet
               | industry disappear, along with it's shareholders, so it's
               | unlikely to happen.
        
               | smnthermes wrote:
               | Arbitrary government rules are never the solution for
               | issues.
        
               | diggan wrote:
               | Now I'm not a native English speaker, but seems
               | "arbitrary" means "determined by chance, whim, or
               | impulse, and not by necessity, reason, or principle".
               | Introducing a law to protect peoples privacy would not be
               | arbitrary, especially since most countries have a due
               | process for introducing laws.
        
               | cwzwarich wrote:
               | > People who want to track users will always find a way
               | to do so, it's a endless cat-and-mouse game. Now they
               | will just use cookies instead...
               | 
               | Isn't the new policy for local storage being copied from
               | an existing policy for cookies? How can they switch to
               | cookies?
        
               | Touche wrote:
               | It's both.
               | 
               | They could restrict these APIs to "installed" web apps
               | via the web app manifest file, if they were to adopt
               | that. Maybe they will in the future, but for now they've
               | just made web apps far less powerful.
        
           | robenkleene wrote:
           | This is a great point with a simple explanation: How good
           | Safari was on iPad was irrelevant before mouse support.
           | Before mouse support, we had apps made with UIKit, which is a
           | touch-first app framework, competing with web apps, which are
           | keyboard-and-mouse first. So UIKit apps won, because UIKit
           | apps are better for touch. With mouse support, that situation
           | becomes exactly inverted: In UIKit apps, the keyboard and
           | mouse are secondary, so web apps have the advantage in being
           | keyboard-and-mouse first.
           | 
           | So now that web apps have the advantage, at least when a
           | keyboard and mouse are attached to the iPad, Apple is going
           | to be seeking to tip the scales back in native apps favor.
        
             | saagarjha wrote:
             | > In UIKit apps, the keyboard and mouse are secondary
             | 
             | Apple _just_ added new APIs to support these.
        
             | Veen wrote:
             | We're all speculating about Apple's motivation, but none of
             | us really knows why Apple made its decision. Perhaps it's
             | best to focus on the trade-offs--privacy vs. functionality
             | --and not the speculative Kremlinology.
        
               | robenkleene wrote:
               | Respectfully, no. Learning software is a big investment
               | in time and effort. Since I'm on Apple's platforms,
               | because I think they're the best compromise for running
               | the software I want to run, I am going to continue to
               | speculate their reasoning to try to predict which
               | software will be successful on their platforms in the
               | future, because that's how I choose where to invest my
               | time and effort.
               | 
               | I respect you have some other motivations here, but I'm
               | not doing this for fun. I'm doing this because it's
               | important to how I spend my most important resources: my
               | time and effort. So no, I'm not going to stop
               | speculating, the mere idea is laughable. Like buying an
               | individual stock while having no opinion of what
               | direction the company might take in the future.
        
               | Veen wrote:
               | Of course you are free to speculate, but my point was
               | that we lack evidence of Apple's motivations that would
               | help us to make predictions of any value. All we can do
               | is tell a plausible story, and without evidence your
               | story is no more likely to be true than mine.
        
         | brundolf wrote:
         | Which is strange, because they're already under scrutiny for
         | being anti-competitive WRT their app ecosystem. Having good
         | support for web apps could've softened that case a little bit.
        
         | madeofpalk wrote:
         | > I'm guessing that Apple will start hindering web apps because
         | the new mouse support in iPadOS is going to be such a boon to
         | web apps.
         | 
         | As a _web developer_ , I've never believed Apple has hindered
         | web development on their platform, purposefully or not. They
         | just don't spend their resources adding in WebBluetooth or
         | whatever new API-of-the-day Google has decided to come up with.
         | 
         | As I see it, their focus is on the _user_ , which is why
         | they've been slow to adopt APIs that are privacy concerns, or
         | drain battery, or have other negative implications.
        
           | gear54rus wrote:
           | > As I see it, their focus is on the user,
           | 
           | Oh and let me guess, they know better than me that I don't
           | need this or that.
           | 
           | Let them suffocate inside their poisonous wall garden as the
           | web gets richer and richer.
        
           | untog wrote:
           | That's a very rosy way of looking at it. iOS has had bugs
           | with its "add to home screen" webapps that kicked around
           | literally for _years_. If they were being "user first" they'd
           | support it fully or not support it at all. Instead they
           | implemented then neglected it.
        
             | machello13 wrote:
             | How many users even know or care about that feature?
        
               | untog wrote:
               | How is that relevant to the conversation? If it is so
               | little-used as to be irrelevant then the user-first thing
               | to do would be to remove the functionality but Apple
               | haven't.
               | 
               | I can speak from personal experience that users do use it
               | when you include specific instructions on how to use it.
               | And it's used in a number of corporate settings for
               | installing webapps on an iPad.
        
               | [deleted]
        
               | dirkgently wrote:
               | Once you take your head out of that iAss, you may see how
               | defensive and idiotic your comment is.
        
             | akmarinov wrote:
             | To be fair, they've had bugs in iOS they've kicked around
             | for years...
        
             | fcarraldo wrote:
             | What bugs exactly? Been using this feature for years and
             | have never had issues with it.
        
               | saagarjha wrote:
               | Until a recent iOS release they had a number of
               | undesirable features that made them a bit inconvenient to
               | use: they used UIWebView (instead of the faster
               | WKWebView), they "restarted" if you ever left them, and
               | generally had a number of other quirks.
        
             | jedieaston wrote:
             | Probably because Apple giving a crap about web apps was
             | depreciated with the release of iPhone OS 2.0 and the App
             | Store over a decade ago. I'd bet few users even use the
             | "add to home screen" button outside of corporate
             | environments that want to add a shortcut to internal sites.
        
               | dzhiurgis wrote:
               | Facebook messenger is good use case for web app, but zuck
               | want's to track you so you need to install app instead...
        
             | madeofpalk wrote:
             | All parts of Apple's platform has had bugs that have kicked
             | around for literally _years_. Their native SDK is
             | infamously under documented and has all sorts of bugs
             | https://twitter.com/caseyliss/status/1171778706878160897
             | 
             | The bugs in Apple's software, whether in web or native or
             | in documentation are not part of some nefarious plot, its
             | just a part of Apple's mismanagement and relatively minimal
             | resources.
        
               | MFLoon wrote:
               | > relatively minimal resources
               | 
               | Uh, they're the most well capitalized corporation in the
               | world (or hovering in the top 3 plus or minus a few
               | quarters). They _have_ the resources to make it work if
               | they wanted. There are undoubtedly thousands of
               | engineers, hundreds of managers, and at least a handful
               | of execs, working for Apple, lurking in this HN thread
               | today, not because they 're unaware of their ongoing
               | sabotage of web standards on iOS, but because they're
               | completely aware of it and want to take the temperature
               | on how their latest kick to the shins of PWAs is going
               | over.
        
       | wubin wrote:
       | The source clarifies that this only applies to websites run
       | within the Safari browser.[1] PWAs added to the home screen
       | aren't affected.
       | 
       |  _> 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._
       | 
       | [1] https://webkit.org/blog/10218/full-third-party-cookie-
       | blocki...
        
         | iameli wrote:
         | "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."
         | 
         | But said timer... does nothing? Why does it exist?
        
           | gridlockd wrote:
           | I suppose it would still affect any sites you visit from
           | within the PWA, for example through an iframe.
           | 
           | Also, it's simpler to have a timer that effectively does
           | nothing than having extra logic to suppress it.
        
           | eyelidlessness wrote:
           | Presumably because WebView is available to other applications
           | besides Safari and pinned sites, and they want to offer the
           | same privacy guarantees to users for WebViews in apps as for
           | Safari. Adding an exception for pinned apps is unnecessary
           | because it's impossible to meet the criteria for deletion.
        
         | osrec wrote:
         | That's a relief. We've built our business on our PWA, which
         | also has an offline mode. It would be annoying if we had to
         | adjust it for (yet another) Safari quirk.
        
         | gridlockd wrote:
         | > _" 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."_
         | 
         | What exactly does that mean? So you use the app for seven
         | (perhaps non-consecutive) days, and now all third parties that
         | haven't been, uh, interacted with, get their data wiped - but
         | not the the first party, because that _has_ been interacted
         | with, by virtue of the PWA being launched in the first place?
         | 
         | I guess that solves the problem?
        
         | pcdoodle wrote:
         | Thank you for the clarification.
        
         | pier25 wrote:
         | Ok but OTOH Apple is not helping PWAs by hiding the "Add to
         | home screen" in submenus and not having an official API to show
         | a banner like Chrome has on Android.
         | 
         | Edit:
         | 
         | Also what about desktop?
        
         | untog wrote:
         | I don't think that's actually what it clarifies. Or at the very
         | least it's very confusing.
         | 
         |  _> have their own counter of days of use. Their days of use
         | will match actual use of the web application which resets the
         | timer._
         | 
         | This makes it sound very much like homescreen apps will have
         | their data wiped after 7 days of non-use.
         | 
         |  _> We do not expect the first-party in such a web application
         | to have its website data deleted._
         | 
         | And this does not. It's a very confusing word salad.
        
           | gridlockd wrote:
           | Yes, it's confusing.
           | 
           | It's not 7 days of _non-use_ , it's seven days of application
           | _use_ without visiting the site.
           | 
           | Safari is one application, the homescreen app is a separate
           | application. Presumably, all the alt browsers or WebView apps
           | are separate applications as well.
           | 
           | Since you can't _use_ a homescreen app _without_ visiting the
           | site, the 7 days of not visiting the site can 't happen.
        
             | emmelaich wrote:
             | But .. if you don't use Safari for seven days, what
             | happens?
        
               | eyelidlessness wrote:
               | From their description, nothing. Seven days of use
               | without visiting triggers deletion. Failing to satisfy
               | either of those conditions (either by disuse of Safari,
               | or by visiting the site within seven days) doesn't.
        
               | [deleted]
        
             | untog wrote:
             | Ah OK that makes sense. They should really copy and paste
             | what you just said into their post!
        
             | rhizome wrote:
             | So this is a requirement that all webapps phone home,
             | moreover that they have a home to phone?
        
               | untog wrote:
               | No, this is all internal to the browser, no requirement
               | to send a remote request.
        
             | [deleted]
        
             | pier25 wrote:
             | will it be "7 days of non-use" for regular websites that
             | use localStorage?
             | 
             | You can't really have "seven days of application use
             | without visiting the site".
        
           | PunksATawnyFill wrote:
           | It's beyond confusing. It's meaningless, and even
           | grammatically nonsensical.
        
         | btown wrote:
         | If there is, as they say, a dedicated counter on those home
         | screen applications, what is the threshold? Will home page PWA
         | apps not used often (say, for infrequent uses like travel) have
         | first party data deleted after the icon isn't clicked for some
         | time? This is highly unclear and confusing.
        
           | eyelidlessness wrote:
           | The deletion occurs if you use the app for seven days and
           | don't visit the site. Pinned sites cannot meet those criteria
           | and will not trigger deletion.
        
       | finaliteration wrote:
       | I'm a little confused by this and maybe I'm missing something.
       | Wasn't localStorage always intended to be treated as a volatile
       | storage mechanism for non-critical data and caching? The advice
       | I've seen for several years says to avoid storing sensitive or
       | critical data there.
       | 
       | Can PWAs not switch to using IndexedDB which seems like it's more
       | purpose-built for this use case?
       | 
       | No snark intended. I'm legitimately curious what the situation is
       | and where any blockers are.
        
         | nicoburns wrote:
         | > Can PWAs not switch to using IndexedDB which seems like it's
         | more purpose-built for this use case?
         | 
         | IndexedDB is also subject to the 7 day limit. Leaving no
         | persistent storage for web apps at all.
        
           | finaliteration wrote:
           | Ah, I missed that in the original documentation and most of
           | the discussion I've seen has been around localStorage. Thank
           | you!
        
             | capableweb wrote:
             | It's a bit confusing because there are two similar terms
             | being used to describe this. First is "local storage" which
             | refers to any of the storage, as long as it's on the local
             | device. Second (which you used) is "localStorage", which
             | refers to specifically the window.localStorage API (which
             | you are right about, has been described as a volatile
             | short-term memory for apps).
        
         | judah wrote:
         | In the original post from Apple[0] announcing these measures,
         | they've listed all script-writable locations are subject to
         | cache clearing:
         | 
         | - Indexed DB
         | 
         | - LocalStorage
         | 
         | - Media keys
         | 
         | - SessionStorage
         | 
         | - Service Worker registrations (I guess this means service
         | worker caches)
         | 
         | [0]: https://webkit.org/blog/10218/full-third-party-cookie-
         | blocki...
        
           | finaliteration wrote:
           | Thank you for outlining that! I missed the impact on Indexed
           | DB in my original read of the issue. It makes more sense,
           | now.
        
       | phkahler wrote:
       | IMHO adding more local storage via browsers was a huge step in
       | the wrong direction from the users point of view.
        
       | andrewrothman wrote:
       | I commented about this in a different thread about the same topic
       | earlier today, but I'll post here as well.
       | 
       | I can understand Apple's decision to do this, as there's a lot
       | that can be improved about offline storage on the web:
       | 
       | * asking for user permission (i've seen demos try to exhaust the
       | users' storage, and trackers can use this to invade privacy) *
       | async writes and reads
       | 
       | However, making a change like this with no suitable alternative
       | leaves PWA developers stuck in a hard place. I'm not sure what
       | can be done in the short term here.
       | 
       | There's a few web specs that address these issues. I'd love to
       | see them come further along, and maybe improve things for
       | developers and users in the long run. If anyone knows, is there
       | anything that members of the community can do to support these
       | efforts?
       | 
       | https://chromestatus.com/feature/6428344899862528
       | 
       | https://wicg.github.io/kv-storage/
       | 
       | https://chromestatus.com/feature/5715811364765696
       | 
       | https://storage.spec.whatwg.org/
        
       | throaway9aaaapp wrote:
       | Our company has started shaming iOS. We tell users that because
       | of a commercial policy aiming to increase their revenue from
       | their App Store, iPhones and Ipads "do not support the Web 2.0
       | technology enabling powerful experiences for web sites and web
       | applications, while Android and Windows devices have been
       | supporting this technology since 201x". We briefly explain in one
       | sentence that it would not be the best use of our resources to
       | try to bypass Apple's technological decisions but that they
       | should contact Apple for further information.
       | 
       | We then link them to a $30-$50 Android device that they can buy
       | on Amazon and use as a second device to use our services "if they
       | are interested in a more powerful web experience". We provide a
       | basic version to all users, but put a shamewall for advanced
       | features. Best use of our time and resources.
       | 
       | It is time to push back, stop making Apple's problems your
       | problems. Educate people without ranting and offer them
       | solutions, developers have the bad habit of trying to cover up
       | this kind of non-sense and taking the blame while really Apple
       | are the ones who should be ashamed. If people love your
       | product/service getting a $30 phone to be power users and make
       | their life easier and their experience richer will not be a big
       | deal for them. It's all about educating them the right way.
        
         | spzb wrote:
         | Obviously I have no idea what your product is but if I got that
         | message I'd just likely go to one of your competitors (assuming
         | they exist). I wouldn't go and buy another device unless it was
         | for an absolutely critical application.
        
           | theNarrative24 wrote:
           | It's a win win.
           | 
           | OP doesn't need to spend excessive money on developing for a
           | Evil company, and those who buy their products can go to a
           | competitor with a more expensive product.
           | 
           | Nearly everyone has at least one non apple product, so it
           | seems like it would be a problem for a limited number of
           | users.
           | 
           | OP, you are doing God's work.
        
           | shadowgovt wrote:
           | > assuming they exist
           | 
           | And that's the real nature of the market, isn't it? If enough
           | third-parties aren't willing to play by Apple's rules, Apple
           | will have to modify the rules.
           | 
           | They're a stubborn company, but it's happened before. They've
           | also been burned trying to own a standard when a common
           | consensus exists they can't control before.
        
           | freehunter wrote:
           | Exactly. It sounds to me like websites that refuse to load in
           | GDPR countries. Good, if you can't support me I don't need to
           | support you.
           | 
           | 90% of software engineering (or engineering in general) is
           | finding solutions for difficult problems. Throwing up your
           | hands and saying you refuse to support one of the most
           | popular computing platforms is certainly a decision that any
           | business is free to make, but then again as a consumer I'm
           | free to make my own decisions as well.
        
         | staplers wrote:
         | Sounds extremely condescending and off-putting. I'd be annoyed
         | if a company said this to me.
         | 
         | There is a lot to love about Apple products outside of a few
         | safari restrictions. They're not perfect but better than a lot
         | of alternatives.
        
           | jeffhuys wrote:
           | > Our company has started shaming iOS
           | 
           | Why isn't our product taking off?!
        
         | Hackbraten wrote:
         | Are you aware of the poor security a $30 phone has?
        
         | jbeam wrote:
         | I would have to REALLY love your service to want to carry
         | around an extra device to use it.
        
           | shadowgovt wrote:
           | ... or find it really necessary. Banks, for example, have the
           | clout to expect this kind of behavior. The built-up
           | reputation and long-term partnerships a company and a bank
           | build up can out-value all kinds of IT inconveniences.
        
             | uglycoyote wrote:
             | I don't know if you meant from the consumer perspective,
             | but if my bank started telling me what kind of a phone or
             | computer I needed to have to use their services I would
             | definitely find another bank! I'm not sure if clout is the
             | right word for what what banks have, it's more like a kind
             | of lock-in because of having to sign a million pieces of
             | paper to change banks, that makes people put up with a
             | certain amount of IT inconvenience, coupled with the fact
             | that usually the competition is equally inconvenient.
        
               | shadowgovt wrote:
               | You might, but there's a long history of bank websites
               | only working in Internet Explorer, and it was only in
               | recent years that this changed.
        
             | oefrha wrote:
             | My bank logs me out after ten minutes of idling, not seven
             | days. Not sure what kind of crazy bank allows you to
             | persist login session / personal data indefinitely.
        
               | shadowgovt wrote:
               | I was responding specifically to the question "I would
               | have to REALLY love your service to want to carry around
               | an extra device to use it." Some people's banks require
               | their users to carry around a rotating 2FA key dongle,
               | for example.
        
               | jamil7 wrote:
               | Which is included in the cost of opening an account with
               | the bank, you're not told to go buy this device off
               | Amazon.
        
         | [deleted]
        
         | SifJar wrote:
         | In addition to what others have said, I think the effectiveness
         | of this likely depends heavily on the target audience - to a
         | non-technical user, this will probably come across as lazy.
         | From their perspective, everything else works fine on Apple, so
         | you must be complaining about nothing.
         | 
         | Of course, if everyone did the same, people would start to
         | realise the problem might be with Apple, but the chances of all
         | (or most, or even many) big web services deciding to alienate
         | such a large portion of their (potential) customers seem slim.
        
           | shadowgovt wrote:
           | It very much depends on the market.
           | 
           | In the general case, almost all websites and web apps don't
           | need offline storage at all.
           | 
           | But the ones that do often need it for very business-
           | enterprise reasons, and here Apple is taking a bit of a risk.
           | I've watched companies hang onto old versions of Flash well
           | past the sell-by date because for quite some time, it was the
           | most practical platform to build a cross-platform
           | videoconferencing client in. And once it's built, the
           | opportunity cost to throw it away and switch to
           | [OTHER_TECHNOLOGY_X] matters.
        
         | jamil7 wrote:
         | > If people love your product/service getting a $30 phone to be
         | power users and make their life easier and their experience
         | richer will not be a big deal for them.
         | 
         | So you're suggesting shifting the development costs of you
         | building a native / cross platform app directly to your
         | customers? Does this work?
        
         | untog wrote:
         | What technologies does Safari not support that you need?
         | 
         | That's a genuine question by the way. I've been frustrated by
         | Apple's reluctance in the past but since they implemented
         | Service Workers things have gotten better. I still really wish
         | they had Web Push but I do understand at least conceptually why
         | they'd be hesitant.
        
           | tarkin2 wrote:
           | Web recording api. Only works in safari under a flag - they
           | won't release the feature to chrome/firefox.
        
       | judah wrote:
       | On one hand, I don't like this direction from Apple because it's
       | meant to boost Apple's proprietary app store business -- which
       | directly competes with the open web -- but masquerades as a
       | privacy issue.
       | 
       | On the other hand, this direction keeps web devs honest: local
       | storage, service worker, cookies and other script-writable areas
       | are meant to be temporary.
        
         | fomojola wrote:
         | I see nothing in any of the specs that implies local storage
         | was intended to be temporary? You could argue cookies, maybe,
         | but even that I'd dispute: it is a user-agent, I should be able
         | to tell it "don't delete my stuff". I already have browser
         | controls over my local storage: I can go into settings in every
         | reasonable browser and flush that down the tubes.
        
       | mr_toad wrote:
       | It's _always_ been impossible to rely on local storage for long-
       | term use.
       | 
       | Users clear their caches. They swap browsers. They swap machines.
       | They use their phone instead of their desktop. They use private
       | mode, or sand boxing. They re-install their OS. They buy a new
       | machine.
       | 
       | Don't be lazy. Using local storage without a backup is not
       | acceptable.
       | 
       | And what kind of 'progressive' web app expects all the features
       | in every client? Have we forgotten what progressive means?
       | 
       | Don't be entitled. You are not more important than your users.
        
         | lnanek2 wrote:
         | Based on the blog, it sounds like he wants to downloaded RSS
         | feeds to the user's device, and not store them on his server to
         | speed up development (all those complaints about FAANG being
         | able to develop at web scale and him not wanting to run a
         | backend).
         | 
         | Then, if the user clears cache or changes computers, they lose
         | the stuff they were following and have to wait for new items,
         | but it's not the end of the world. They might even expect it if
         | you name/describe the app a certain way.
         | 
         | E.g. if you download an app called "Podcast Downloader" that
         | says it just downloads any new podcasts from feeds you follow
         | for your later offline consumption on your current device - you
         | might not expect a podcast on your phone to magically jump to
         | your desktop without a re-download from the original site.
         | 
         | Seems like it could be a valid trade off if it lets a front end
         | only web dev publish apps he couldn't publish otherwise because
         | he can't/won't do backend. Storing user media on the backend is
         | not cheap. The company I'm at has spent months of developer
         | time moving over from Google to Amazon, for example, just for
         | infra cost improvements that come from serving terrabytes of
         | data off one instead of the other.
        
       | sandstrom wrote:
       | How would static "single-page" apps (HTML/JS/CSS) that store
       | session tokens in localStorage avoid 7-day auto-logout?
       | 
       | Perhaps using something like this:
       | https://developer.mozilla.org/en-US/docs/Web/API/Credential_...
       | 
       | Anyone know of other Web APIs that could be used?
        
         | aurbano wrote:
         | Cookies are a lot safer for authentication than localStorage.
         | The only problem with this change is persisting data for
         | offline use, not authenticating the user.
        
         | jdxcode wrote:
         | might have to use cookies
        
       | saagarjha wrote:
       | Related discussion from earlier today:
       | https://news.ycombinator.com/item?id=22683535
       | 
       | WebKit blog post from yesterday:
       | https://news.ycombinator.com/item?id=22677605
        
         | dang wrote:
         | I think we'll merge today's threads. Any reason not to? Edit:
         | merged.
        
           | saagarjha wrote:
           | I can't think of any, they're all the same topic as far as I
           | can see. The WebKit blog post has a little bit about third-
           | party cookies being blocked but everyone quickly moved
           | discussion to the script-writable storage cap.
        
       | restoreddev wrote:
       | I guess this means Safari won't support persistent storage
       | anytime soon. I was looking forward to it becoming a standard
       | API. https://developer.mozilla.org/en-
       | US/docs/Web/API/StorageMana...
        
         | OJFord wrote:
         | Based on the table there it seems Edge had but removed support
         | anyway?
        
       | heynk wrote:
       | I'm an engineer at a platform that makes it easier to build
       | privacy-friendly apps. This means that all apps on our platform
       | have app-specific private keys stored on the client side (in
       | localStorage), and they never touch a server.
       | 
       | With this change, you're essentially "logged out" after 7 days of
       | inactivity.
       | 
       | This is pretty a bad user experience. I honestly am not sure how
       | to mitigate this. MacOS Safari might not be a massive market, but
       | iOS Safari is.
       | 
       | Any thoughts about how we should address this change?
        
         | oefrha wrote:
         | Being logged out after 7 days of inactivity could be a little
         | bit annoying but I can live with that, as long as I can log in
         | again.
         | 
         | I could be misinterpreting your comment but are you saying your
         | keys are simply destroyed upon this "log out"? Then I'm not
         | really sure why your platform was considered working in the
         | first place, if it's tied to a specific browser of a specific
         | device and won't survive a clearing of storage which any user
         | can do at any time for a variety of reasons?
        
           | pier25 wrote:
           | What if you don't have connectivity when localstorage is
           | deleted and can't log in?
           | 
           | Eg: in a classroom.
        
             | oefrha wrote:
             | What if someone accidentally erases everything because
             | that's what they're told when something doesn't work right?
             | Answer: it's volatile storage in the first place, and a
             | tiny one at that. Heck some browsers can be configured to
             | erase everything when closed (when operating in non-
             | incognito/private mode).
        
               | pier25 wrote:
               | > _What if someone accidentally erases everything because
               | that's what they're told when something doesn't work
               | right?_
               | 
               | The difference is that one situation is controlled by the
               | user and the other is not.
        
           | heynk wrote:
           | No, it's not tied to a specific device. You can of course log
           | back in, and keys are not "destroyed". We ask users to store
           | a 12-word seed phrase, from which all other keys are derived
           | from.
        
             | oefrha wrote:
             | Okay, I personally wouldn't hate logging in to a seldom
             | used app once a week too much.
        
       | true_religion wrote:
       | From the article...
       | 
       | > Heck, they could even go further and ban apps from corporations
       | like Facebook, Inc., and Alphabet, Inc., that have violating your
       | privacy as the core tenet of their business model.
       | 
       | If Apple were to ban the Gmail app (and obviously block web
       | access via iOS too because that would be a loophole otherwise), I
       | would throw away my iPhone, swear off business with Apple, and
       | search dearly for a way to sue them.
       | 
       | I don't love the walled garden iOS represents, I merely live with
       | it in exchange for great hardware and UX. If the bargain changes
       | to be more restrictive, I would turn against it in a heartbeat.
       | 
       | Thinking about that, is no surprise Apple is striking out early
       | to make web apps useless. If they wait too long, they will become
       | entrenched, and people will feel like they have lost something if
       | access is restricted. Apple really wants to jealously protect its
       | control, and more importantly ability to take 30% tax of every
       | transaction that they can perceive.
        
       | dang wrote:
       | Thread about the webkit.org post from yesterday:
       | https://news.ycombinator.com/item?id=22677605
        
       | sneak wrote:
       | A bit offtopic, but the following is my basis for interpreting
       | privacy-related claims from Apple.
       | 
       | I noticed a text editor I bought from the Mac App Store, iA
       | Writer, includes silent spyware that transmits your activity back
       | to the developer without notice or consent (thank you, Little
       | Snitch). Apparently, I "consented" to this in the Mac App Store
       | ToS (right).
       | 
       | When I left a negative review on the app, their response was "we
       | aren't doing anything not permitted by Apple in the App Store".
       | 
       | I don't use App Store apps any longer, and I take most of what
       | Apple says about privacy with a huge grain of salt.
       | 
       | PS: OSX phones home to Apple in about a dozen different ways even
       | with iCloud _entirely_ disabled and _all_ reporting
       | /telemetry/feedback options turned off during the OOBE/setup. Try
       | doing booting a fresh install of macOS with Little Snitch, but
       | _disable the Apple /OS exemption_ in Little Snitch's rules. I was
       | _astounded_. _Dozens_ of things.
       | 
       | I wonder if there's any major, widespread GUI OS in a default
       | configuration that does not transmit to your ISP and third
       | parties (including government snoops) when you open a local text
       | file to write. I block all of these requests; most do not.
       | 
       | I am reminded of Winston Smith's paper journal.
        
       | aazaa wrote:
       | The article doesn't exactly cut to the chase. Here it is:
       | 
       | > "...But deleting all local storage (including Indexed DB, etc.)
       | after 7 days..."
       | 
       | From the Apple announcement:
       | 
       | > Now ITP [Intelligent Tracking Prevention] 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. ...
       | 
       | https://webkit.org/blog/10218/full-third-party-cookie-blocki...
        
       | matlin wrote:
       | What we really need is a way for users to store their own data
       | that has the simplicity of local storage but the convenience of
       | storing data in the cloud.
       | 
       | It does seem that Apple intends to cripple web technologies in
       | order to move developers to their native platform but this will
       | likely do more damage to privacy than anything. All of the
       | alternatives to local storage for simple mobile apps typically
       | involve moving data to a third parties like Firebase, AWS, etc.
       | 
       | Simple apps that didn't need a server and could just keep data or
       | user-preferences locally would now need to either create their
       | own data service or pay for a BaaS which means moving your data
       | out of your control.
       | 
       | This behavior leads to companies like Under Armour to house data
       | they shouldn't have and puts everyone (150M people) at risk.[0]
       | 
       | [0] https://www.wired.com/story/under-armour-myfitnesspal-
       | hack-p...
        
         | [deleted]
        
       | booleanbetrayal wrote:
       | I can't seem to find whether or not these policies and storage
       | caps are implemented in a WkWebView context. Any idea?
        
       | judge2020 wrote:
       | Is there any evidence that local storage is being used as a
       | pseudo-cookie way of tracking users? If so, keeping local storage
       | saved while regular cookies are being deleted would defeat the
       | purpose of deleting cookies for anti-tracking reasons.
        
         | majormajor wrote:
         | I was in the adtech world about ten years ago, and localstorage
         | was definitely one of the things used for "supercookie" stuff
         | (along with Flash, etags, and probably other stuff I'm
         | forgetting).
        
         | hosteur wrote:
         | This is exactly what it is about. I welcome the move from
         | Apple. Web devs can store state server side. They cry because
         | tracking will be harder now.
        
           | soapdog wrote:
           | I'm the OP and I'm crying because I'm working on apps that
           | don't have backend so that your data is yours and never leave
           | your computer. This is now impossible for WebKit users.
        
             | vbezhenar wrote:
             | So you have to track Apple users now if you would implement
             | backend storage. How ironic.
        
               | chickenpotpie wrote:
               | Exactly. Now I'm working on PWA that stores address data
               | locally and now I have to have a backend db just for
               | Apple users.
        
         | JumpCrisscross wrote:
         | > _Is there any evidence that local storage is being used as a
         | pseudo-cookie way of tracking users?_
         | 
         | Yes [1].
         | 
         | [1] https://clearcode.cc/blog/alternatives-to-cookie-tracking/
        
       | jrs95 wrote:
       | Given that PWAs don't work particularly well with iOS anyways
       | even if you have a PWA you're probably better off deploying it to
       | the App Store via Cordova and prompting users to install it from
       | there.
        
       | bradgessler wrote:
       | Do any lawyers out there know if Apple's sabotage of PWA's by
       | their inaction or "features" like this could be considered anti-
       | competitive behavior for an anti-trust lawsuit?
        
         | yaktubi wrote:
         | Not a lawyer but probably not. There's many ways to make an App
         | for their platforms. Just because people want to use web
         | technologies is an implementors decision.
        
       | osrec wrote:
       | My comment from a similar article:
       | 
       | Rather than wiping local storage/indexed DB data after 7 days,
       | could you not just make it an opt in thing, like the camera or
       | mic? For example, ask users "Allow myapp.com to store app related
       | data on your computer?". If they allow it, then give access to
       | local storage APIs, otherwise don't. That way users can still
       | have fully local PWAs if they wish.
       | 
       | As an ardent PWA developer, this change annoys me immensely.
        
       | alkonaut wrote:
       | Did PWA's take off? What are some famous/big PWA's now? I can't
       | remember ever "installing" anything in a browser as an app, or
       | even being asked if I wanted to do it. Am I misunderstanding what
       | they are?
        
         | Macha wrote:
         | devdocs.io is the most successful example I'm aware of. I've
         | never "installed" it as an app, as I don't use a browser that
         | supports that (basically Edge, Safari or Android Chrome), but
         | I've certainly relied on its ability to load without an
         | internet connection for train/plane journeys.
        
         | judah wrote:
         | Microsoft will be releasing PWA versions of the Office suite.
         | 
         | Twitter, Instagram, Starbucks, Pinterest and more have PWAs as
         | well.
        
           | tsimionescu wrote:
           | Given that the OneNote web and Windows 10 apps don't
           | implement Find&Replace (just Find), 5-10 years after their
           | first release, I wouldn't hold my breath for usable Office
           | PWAs.
           | 
           | Edit: the official help page on how to do Find&Replace reads
           | like a joke until you realize it is very real:
           | 
           | https://support.microsoft.com/en-us/office/find-and-
           | replace-...
        
         | theturtletalks wrote:
         | https://appsco.pe/ has popular PWAs. They don't need to be
         | installed, they just look and work like an app on the browser.
        
           | lucasmontano wrote:
           | they really "look" like an app
        
             | arendtio wrote:
             | The look depends on how much effort the developer invests.
             | If you take Bootstrap, the resulting PWA looks like a
             | website. If you take Framework7 the resulting PWA looks
             | more like a native App (including animations and the like).
        
         | shawnz wrote:
         | The key is the 'P': Progressive. A PWA is just a web app, but
         | one that takes advantage of features you'd typically see in a
         | locally installed application like local storage,
         | notifications, etc. This might mean it has metadata to make it
         | "installable" in browsers that support that, but I wouldn't say
         | that's a requirement to be considered a PWA.
        
         | soapdog wrote:
         | I'm the OP, I use a lot of PWAs. My main machine is a Surface
         | Pro X and I don't have native apps (as in native aarch64
         | binaries) for many of the things I'd like to use. So, I'm using
         | PWAs for Instagram, Twitter, Kindle, Pinafore (mastodon
         | client), Spotify, and some of my own.
         | 
         | I was developing a feed reader that was supposed to be a
         | client-side-only PWA but that's tricky.
        
           | xingyzt wrote:
           | Do you know a PWA for Kindle? Their browser-based reader
           | hasn't been updated for quite a while.
        
             | soapdog wrote:
             | Their Kindle Cloud Reader is better than the native windows
             | app IMO. I don't know when it was last updated, I first
             | used it this year.
        
           | andrewrothman wrote:
           | Off topic, but how is this experience using the Surface Pro X
           | as a PWA machine? Does Windows / PWAs work well in tablet
           | form? I was thinking of switching to a similar setup and
           | using it essentially as you describe. Seems like it could be
           | a really lightweight and simple computing environment similar
           | to Chromebooks but still allows you to run traditional
           | Windows apps as well if you need.
        
             | soapdog wrote:
             | I really like it but I wish Microsoft would support FOSS
             | developers better and provide more support and incentive
             | for them to port more developer tools. There are almost no
             | native aarch64 programming languages for Windows 10. If you
             | keep yourself inside WSL then you're good to go because
             | Linux under aarch64 is quite complete. On the windows side
             | of things you'll probably running a lot of 32bits x86 apps.
             | 
             | Which is one of the reasons I like PWAs, they are ISA
             | independent and are working pretty well here. Unfortunately
             | Firefox doesn't support an add to homescreen feature on the
             | desktop, so I used Edge to do it for the apps I want to
             | have a nice icon for (such as spotify).
             | 
             | If you're going to use it much like a chromebook then it
             | might be a tad too expensive to be justifiable. I don't
             | regret buying mine at all, I really like it, but I'm sure
             | they'll release cheaper ARM64 Surfaces soon, I'm betting on
             | a Surface Go with ARM64 at some point.
        
           | alkonaut wrote:
           | What is spotify pwa offering that is an improvement over
           | their regular web app? Is it offline streaming (downloaded
           | playlists)?
        
             | soapdog wrote:
             | Their regular web app is a pwa... thats the beauty of it.
             | PWAs are not different offer, they are just enhancement on
             | top of web apps. Good PWAs are invisible.
        
         | koonsolo wrote:
         | Twitter client is a PWA.
        
           | alkonaut wrote:
           | Ok I think I'll have to rephrase the question: are there many
           | widely used PWAs that actually go one step further than being
           | a web app using a few of these APIs (spotify, twitter), and
           | actually try to "mimic" desktop apps more (installation,
           | icons, fully offline etc)?
        
         | seanabrahams wrote:
         | PWAs haven't taken off because Apple won't implement full Push
         | API support in Safari thus forcing you to go through the App
         | Store if your web site or application needs push notifications.
         | The App Store then complains if you try to publish an app that
         | just wraps your web site so that you can have push
         | notifications. It's... infuriating.
        
           | asadlionpk wrote:
           | Seeing all the "enable notifications" popups on every site I
           | visit, I am happy that Apple doesn't allow this for websites.
        
             | seanabrahams wrote:
             | Sites could easily only prompt this after you've added them
             | to the home screen. Browsers could, do?, also allow users
             | to set a default of deny all notification requests.
             | 
             | The problem is that developers have to spend a significant
             | amount of time and money to get on iPhones because of
             | Apple's policy here. If browsers and devices fully
             | supported PWAs developers could "write once, run
             | everywhere". Instead we have to build separate apps and
             | deal with separate release processes. It's a huge
             | productivity cost.
        
             | p1necone wrote:
             | https://www.ghacks.net/2016/02/19/disable-show-
             | notifications...
             | 
             | https://support.mozilla.org/en-US/questions/1208251
        
           | seanabrahams wrote:
           | Further, if Apple were truly concerned with the quality of
           | the apps in their store they would free developers from
           | having to submit apps just to support push notifications.
           | Less time reviewing and rejecting apps, less "low quality"
           | apps in the store, happier developers, happier users.
        
           | pgt wrote:
           | The only long-term solution I can think of is to build a
           | competing hardware company, and that's really hard. But I'm
           | willing to do it.
        
         | StephenCanis wrote:
         | PWAs are also useful where you want visitors to be able to
         | access a portion of a website while offline. I run a site that
         | hosts audio tours[1] for museums and walking tours. I use PWAs
         | to allow visitors to quickly download the tour onto their phone
         | in case they don't have a data plan or a portion of the tour
         | will not have cell service.
         | 
         | Apple definitely makes it difficult to use them effectively.
         | For example you need to use Safari on iOS in order to download
         | the PWA - it won't work if you're on chrome or another third
         | party browser.
         | 
         | [1]https://www.youraudiotour.com
        
         | arendtio wrote:
         | How should PWA take off, when Apple with a high mobile market
         | share refuses to implement basic APIs like the Push API and
         | other browsers can't run their own engine on iOS? It is
         | abusive, but who cares.
        
         | untog wrote:
         | There's a chicken/egg issue here. Apple's support for
         | progressive web apps has been subpar, so it's difficult to
         | justify the extra effort in making a PWA when a major platform
         | doesn't fully support it. Which, in turn, means people turn
         | around and say "why should Apple support PWAs? No-one uses
         | them!"
        
         | woodson wrote:
         | Twitter's web client is a PWA
        
       | jagged-chisel wrote:
       | I'm confused, or seeing confusion, over some things in the
       | comments here. "We don't use Safari in our app..." We're talking
       | web apps: you know, web sites with functionality. You don't
       | exactly have control over which browser your users use. And in
       | iOS, everyone is using 'Safari' even if it's Firefox or Chrome
       | wrapped around the rendering control. This means you have to
       | assume that the policy affects any visitor from any web browser
       | on iOS. Technically, the other browser vendors can siphon the
       | data into other storage to their users' benefit, but I don't know
       | how likely they are to do that, nor whether Apple would approve
       | them with such changes.
       | 
       | Do you mean that you deploy a 'native' app that's really just a
       | wrapper around a web view that would also be just Safari? Same
       | policy applies, but now, you have the option, in native code, to
       | siphon off data and put it into Real Storage.
        
       ___________________________________________________________________
       (page generated 2020-03-25 23:00 UTC)