But as a web dev community we need to stand firm and build PWAs regardless. If we treat pwas on iOS like we did Internet explorer (i.e. giving it special attention and hack solutions as opposed to just not developing for it) we will lose the fight.
I suggest you call out the issues with ios and put disclaimers on your app page saying what's not supported, or add taglines like "for the best experience, use <other broswer>".
Apple can afford the dev work to update Safari or work with the standards committee, but im sure with their new vr goggles they will take the proprietary route
We should just have the story that we are making better and better web apps and Apple isn't keeping up with others.
Yeah, your app does and 95% say "hell no"
For some types of apps, particularly social media ones, the only path forward is those 5% of users that like your app enough to “commit”. And I think that’s what PWAs offer on a practical level — a way to commit to a website and keep it remindable. To say the least your typing-over-tapping preference is not universal, but even so I think both mobile OSs have type-to-search integrated natively now. So I think you can see why it’s a nice reminder, for those people.Plus, “progressive web app” tells a (well informed) user “this website can use your camera and gyroscope and GPS and such”.
Plus plus, and I think this is the most important: it’s a fun community and a great resume term. It’s no fun to just be a “web developer”, you’ve gotta be a progressive, web3, 3D, local-first, no-js, all-js web developer ;)
A large portion of apps on the mobile app stores are already built using cross-platform technologies like React Native, Ionic or Flutter. In some instances it is very easy to tell, in other it's not. You can create quality experiences using cross-platform, you can create awful experiences using native tooling.
In many instances, I'd rather have the not totally native app that exists than the absolutely perfectly native app that does not exist.
As for PWAs, I am personally all for it. I have so many apps on my phone that don't need to be an app in the first place. Why not make a great PWA experience rather than a mediocre mobile app? In terms of capabilities, PWA are perfectly suitable for the majority of usecases.
If most applications are embedding a web browser, or at least part of a web browser (in case of RN), why not just have applications that... run in a browser? No need to install them, no need to update them, I can just open an URL and they work.
It is not fundamentally wrong to do custom stuff. I prefer native apps as well but this sound bite needs to go away.
In this case you’d need “use <other operating system>”. There’s no alternatives to Safari for PWAs on iOS.
Apple/Google will never voluntarily give up their stores. And it's also not reasonable to think that the US will regulate it. Those stores bring a lot of money from all around the world into the US. It would be crazy from an US perspective to stop them doing this. Those profits can be taxed without taking away any money from their citizens. So basically free tax money.
> "for the best experience, use <other browser>"
You just lost a customer.
It’s very obvious to me that I’m a second priority for Apple. Dark mode breaking in iOS 17 and still broken 5 months later. Updating the app is tricky, and making users update is even trickier. Haven’t even bothered to try push notifications.
One pro though is that when my brother wanted to use a PWA I had developed it worked flawlessly on his Android phone. Cross platform support is a big pro in my opinion.
Maybe Apple will fix dark mode with iOS 18, let’s hope they also fix it when using guided access (which was buggy in iOS 16).
https://www.macrumors.com/2024/02/08/ios-17-4-nerfs-web-apps...
I do feel they'll lose this battle eventually, even if it takes a few years. Cross platform apps without a required compile step or walled garden are almost certainly the end state I expect we'll reach within the next decade (probably sooner).
So fuck me I guess :(
https://9to5mac.com/2024/02/15/ios-17-4-web-apps-european-un...
This is exactly why they don't want it. Some will say it's because those are Apple's users and Apple wants to ensure a great user experience and doesn't want unapproved things running on their devices, and others will say it's because it skips Apple's 30% take and their gatekeeping process. My opinion is that both are true, and conveniently both are achieved the same way: by making PWAs enough of an annoyance to both developers and users that they will voluntarily steer away from them. Classic game theory
To the point that PWA support matches, and in some cases surpasses, Firefox with more on the way as we speak?
Doesn’t that run counter to this theory that Apple is purposefully making PWAs unviable to the benefit of their App Store? Why take away the biggest hurdles that PWAs had on iOS if that was the goal?
But every cross-platform framework has the same problem: platforms are different, and require work specific to them. As a result, cross-platform is "write once, debug everywhere".
If you don't know better, cross-platform frameworks systematically seem to "get to the same result faster". So many companies go for cross-platform frameworks. But in reality, the different platforms are so different that the only way to make a truly great app is to go native everywhere.
Not that there is not a place for PWAs: "cheaper but not as good" is clearly the trend everywhere. But I don't see PWAs replace "great native apps" anytime soon. If PWAs win, it will just mean that the users got worse apps because the companies spent less money on them.
If PWAs win, it will be because native apps failed. Android and MacOS both have an enormous community of open source native apps that are more private, functional and accountable than their commercial alternatives. So far, Apple hasn't opened the floodgate for that on iOS. As a result, the interest in sideloading things has been relegated to the most-open part of the OS; the browser. It's not surprising at all.
Apple could be enabling a Cambrian explosion of open iPhone apps and killing the case for dinky webapps overnight. Their motivation not to is rooted in a company-wide strategy to make more service revenue.
Or because the vast majority of people who "write code that runs on mobile phones" know web technologies and not the mobile ones. Web programming is simply more accessible.
The thing is, "more" is not always "better".
That's like saying if Linux on the desktop wins in 2024.
PWAs have been around for about a decade now. The excuses have run out.
If PWAs are limited competitively on the platform with the highest ROI for developers … that's a problem.
That's the perfect usecase for like... a website.
Let's see if a regulation like that can tame Apple, or if Apple keeps finding loop holes to not fully comply in the intended way (to liberate the European market from oligopolist gate keeping companies). If it works there might be a further revision that forces Apple to support PWAs. And on the long run I don't think they will limit those features just to the European market.
Once alternative browser engines and alternative app stores arrive, it might be possible to provide an app store that just wraps any known PWA into a native iOS app and runs them inside a Chromium browser. With full PWA support. Like the Microsoft store does. You can just register your PWA there and it will show up in the store, they even had the plan to scan the web for PWAs and put them in the store even if the author didn't register it. I don't know if they ever followed though with that plan.
One positive mention: I recently switched my PWAs on Windows to Edge, and it's the best PWA experience I've ever had on any platform. A good PWA feels 98% like a native application.
For example 2.5M installs/updates a year will cost you Total monthly fees $ 67,935
https://developer.apple.com/support/fee-calculator-for-apps-...
Edit: I really think that we will soon get an addendum to this law that will limit those fees. In a similar way mobile phone roaming fees got regulated.
There's a whole operating system dominating the mobile market that "supports PWAs properly". We've yet to se any significant number of these great beautiful useful usable PWAs
Since 2016 I've had the option for users to enable push notifications, with a big red disclaimer if the user is using iOS that it does not work on an iPhone. Still, I got so so many requests from user saying they had tried with Chrome(or whatever other browser) instead, and it's still not working, not understanding that all browsers on iOS is limited in the same way because of apple.
If there are any more problems with web push on iOS I'll clearly tell the user that Apple doesn't allow the user to use it, and that they will have to ask apple to enable it, and give them contact information. If the user bought the phone expecting web push to work then they can probably return it and buy an Android phone instead if the seller can't fix web push.
I think that developers need to choose technologies that work on the platform they want to support, instead of blaming the platform. It is totally valid for Apple to say "if you want to develop an iOS app, use the iOS native framework".
> If the user bought the phone expecting web push to work then they can probably return it and buy an Android phone instead if the seller can't fix web push.
Who sells an iPhone saying explicitly that web push works? I guess nobody (it would make no sense). If a user bought a phone expecting to be able to use it as a surfboard, they probably can NOT return it for that reason.
People's experience with hardware and physical objects matters. If you accept that, you should always want to be closer to the metal at the cost of convenience or portability.
Sure, theoretically, any PWA could possibly be developed as a better native app.
But in the real world people develop apps. If the iOS app developer and designer market declines, then even if theoretically a native app would be better, the best developers and designers will have little to no experience with native and so the best apps will likely be PWAs where the best developers and designers are.
Native only always win if you’re looking at the capability of the platform as the only constraint. In reality, the developer/designer market, money available to develop apps, money and resources available to maintain apps, etc are all additional constraints for real apps, and native apps have significant disadvantages in those other constraints.
That's a pretty huge "if". If the web developer market declines, then native will be better, too.
> In reality, the developer/designer market, money available to develop apps, money and resources available to maintain apps, etc are all additional constraints for real apps, and native apps have significant disadvantages in those other constraints.
In my experience, the reality is much more nuanced than that. There are plenty of mobile devs, and many will tell you that they are not slower writing two apps (iOS/Android) than writing one cross-platform one. I don't know a single mobile dev who likes a cross-platform framework better than the native experience, too.
No really, I think cross-platform seems cheaper if you are a manager (and don't really have experience with any of those frameworks) or if you are a web dev (and don't really have experience with mobile frameworks).
To add to your statistics: I am an Android user, and I mostly hate PWAs. I want native apps.
Still I don't think it's a reason to completely give up on the good ways.
I have no idea what you mean by this, can you give some justification? It sounds kind of nonsensical
> you should always want to be closer to the metal at the cost of convenience or portability.
Right but that isn't really a thing anymore. Even machine code is very abstract compared to the actual physical processes going on inside. Bare metal programming is an illusion for pipelined CPUs with speculative execution
"Wanting to be closer" does not mean "needing to be at the lowest theoretical level". In this case it just means that native mobile frameworks are one layer of abstraction lower than web frameworks, and it is better (not cheaper, not easier, but better).
> Now, when a user in Europe taps a web app icon, they will see a system message asking if they wish to open it in Safari or cancel. The message adds that the web app "will open in your default browser from now on." When opened in Safari, the web app opens like a bookmark, with no dedicated windowing, notifications, or long-term local storage. Users have seen issues with existing web apps such as data loss, since the Safari version can no longer access local data, as well as broken notifications.
[0] https://www.macrumors.com/2024/02/08/ios-17-4-nerfs-web-apps...
Of course, there are numerous ways this could be addressed, such as not changing anything at all if the user chose Safari as their default browser anyway. But it seems quite clear Apple is willing to drag everyone down with them in their malicious compliance of the DMA.
The DMA didn't come by surprise, but I guess they tried to play all their cards to get around it, or even get it pushed last minute. Maybe they were close to achieving that and in the end it didn't work out.
Like mentioned in another post there might be some alternative solutions via third party app stores, but my knowledge doesn't go deep enough into the iOS API and what options third party browsers are going to have.
I could imagine a "PWA Shell" app that can host multiple PWAs inside. The only limitation I see for now is that there will be only one app icon and it can only show up once in the task switcher on the iPhone. For the iPad multi-windows apps are possible.
Damn, is Apple doing these slight annoyances on purpose to degrade the user experience?
It's to degrade the developer experience to force you to native apps and the app stores for distribution
But I also consider Apple’s iron grip on the platform to be against the spirit of computing, and I think having a viable alternative is important. I think there is a segment of software that would benefit from a nice PWA, but where two native apps would not really be worth anyone’s time.
But the problem here is the App Store, right? Both native iOS apps and PWAs need access to the hardware, which is provided by Apple.
Really my understanding is that people push hard for PWAs either because they want to work around the App Store, or because they are web dev (and every dev tends to be imperialist with their favourite language, that's not only a web thing).
1. Apple will DELETE user's data without notice 2. Lot of apps will stop working and there will be no way to access them without update 3. Web Push will stop working; users expecting notifications will never get them 4. Apple breaks the Web platform
This was published in the document "Update on apps distributed in the European Union" https://developer.apple.com/support/dma-and-apps-in-the-eu/
I usually buy 2 year old high end iPhones. So this is very relevant for me. Also from an ecological perspective, smartphones should last at least 5 years.
> Last month [...]
> At the same time [...]
> That was over 6 months ago [...]
From when?!? What good is a relative timeline of events and your "current" thinking without a timestamp?
Digging though the source, it looks like this is from a few days ago.. "created_at":"2024-02-14T01:45:45.254Z"
/rant
Other browsers won't also have access to add (actual, not bookmark) PWAs. That is the main reason to not allow them.
If other browsers can add powerful PWAs then it competes with App Store.
This is exactly it. If they can't have full control over how PWAs work, they prefer to cut the feature out of iOS.
On iOS, apps can only run a single app instance. Which means that, if you want to run multiple PWAs in parallel, you’d need a separate browser app per PWA.
Isn't that essentially Capacitor?
When added, the app can work offline, doesn't have an address bar/back button/etc, gets the ability to access device sensors, can send push notifications, etc. A well-made PWA usually looks and feels just like a native app.
I'm not buying a mac or paying for an apple developer license, sorry.
Google Chrome has support and documentation on Android: https://support.google.com/chrome/answer/9658361?hl=en&co=GE...
Mozilla has documentation about PWAs across many platforms, including Android: https://developer.mozilla.org/en-US/docs/Web/Progressive_web...
Mozilla's docs are very clear in defining what makes a PWA special:
> One of the defining aspects of a PWA is that it can be promoted by the browser for installation on the device. Once installed, a PWA appears to users as a platform-specific app, a permanent feature of their device which they can launch directly from the operating system like any other app.
This is precisely what Apple is breaking for iPhone users in the EU.
- Installing a PWA from Firefox browser adds to home screen with Firefox engine
- beforeinstallprompt event https://developer.mozilla.org/en-US/docs/Web/API/Window/befo...
Probably the best part about PWAs on Android is that you install it more like an actual app. iOS still makes you "Add to Home Screen" which is very unintuitive.
E.g. no multi-month broken light/dark mode.
Am I confused, or can't you just have the client tell the server you are viewing the thread, and suppress the push at the server side? If everything is encrypted maybe it reveals a bit of extra metadata about what you are looking at at the time though.
They went with a 10 second delay or something, but just keeping track of the user's state could be easier (you might have connectivity gaps, requiring some keepalive logic too and then something like the delay to avoid spamming them with notifications they didn't need).
Browsers should only display documents, not apps. That's what operating systems are for.
Just give native apps what made the web popular in the first place:
• Ability to instantly launch any app just by typing its "name"
• No need to download or install anything
• Ability to revisit any part of an app just by copy/pasting some text and sharing it with anyone.
That's what ultimately matters to end users.
A progressive web application (PWA), or progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
It seems like it would solve most of the PWA issues. Although I vaguely recall reading that Apple is not too fond of apps that are basically just wrapped web views.
They do not allow Chrome to build too powerful apps outside of App Store.
The drawbacks in the article are good to know, but in my circles it's common knowledge that Apple is putting less than 0 effort into supporting them. Right now, they are absolutely not a drop-in replacement for a native app
But that says nothing about the future. In 10 years, why should we still be building separate apps per platform when we have an amazing and open web? The losers are the app stores, because it gets harder to take their cut. As PWAs get closer to feature parity, and once apple gives up their horrendous pushback, it will only make more and more sense to ditch the native app