It is important to note, that in Apple's case the problem is made worse by the fact that on iOS there are no ways to install the app bypassing the appstore.
That makes Apple's cooperation with dictators and authocrats so much worse for their users. You know, the people Apple claims to care about and 'protect'.
They also care so much about the environment that they release almost identical phones each year with no ability to change batteries, plus make it as hard as possible to replace batteries. Any corporation which promises social Justice is a farce exploiting issues as pawns.
Apple itself is pretty much an autocratic company that believes it knows best what its customers should and should not be able to do with their products. So this is not really surprising.
To be pedantic, Apple does allow Progressive Web Apps which can bypass the App Store. (The Xbox cloud gaming app is a big one that goes down this path)
Note that I don’t support at all this decision to cooperate with an autocrat.
The option to install a PWA as an app is quite hidden, compared to Chrome.
They refuse to implement push notifications.
In general, Safari is dragging their feet in supporting any web standards that would allow PWAs to compete with apps installed from the App store, while at the same time being the only browser allowed on iOS.
getUserMedia is now supported in WebViews, so one can build, for instance, a FaceTime competitor that runs on Chrome on iOS, where it wasn't possible a few months ago. But the Fullscreen API still isn't supported, a blow to the web-based FT competitor.
Push notifications are impossible on iOS PWAs. Basically takes out a big chunk of possible apps you could build on this, no one wants e.g. a messenger that can't notify you when you get a message.
> no one wants e.g. a messenger that can't notify you when you get a message.
I deliberately disable push notifications in all messengers to avoids distractions, even though I'm actively using the messengers _when_ I want to sync with people.
The claim was "no one wants x", the reply "I want x", your counter "others don't want x" as an attempt to dismiss the reply. That is unfair, the original claim that no one wants it was wrong and it was correct to point out that it was wrong.
The idea of PWAs is that you make them once and they'll work on all platforms. The reality doesn't quite live up to that idea as this thread shows, but to me the idea to have single-platform PWAs still seems so odd that I would not interpret it that way. Still, if that was what was meant, then sure, I think I agree.
Not a feature per se, but being in the process of building a PWA for iOS with access to the camera, the fact that the authorization dialog pops up every time the app is opened (meaning that the permission is not saved even if the PWA has not been modified) looks like a deliberate attempt to make this technology not truly viable, because it really provides terrible UX.
That "workaround" is only available for store apps, not PWAs. Apple would love if every web developer had to submit to their app store just to add features like geolocation and camera and notifications. And that's exactly what happens today.
Specifically, could you list features that would be relevant to a PWA that takes your electoral division as input and returns information on who to vote for?
Honestly I'm confused that if a PWA is a viable solution, why this isn't just a website?
Such PWA is easy to block because the government can block a website with it.
A native app can use push notifications (which are encrypted) to receive data and the only way to block such an app would be to block access to Apple's servers completely.
> Such PWA is easy to block because the government can block a website with it.
They can also block whichever server is hosting the API native apps connect to. Doesn't seem much of a win for native on that front, unless the data is stored permanently on device.
The app in question ("Navalny app") has a blog and voting recommendations. You can distribute information with app updates or use push notifications to transmit data (for example, new API server IP address and public key).
For example, when government tried to block Telegram, it used push notifications to send addresses of new (not yet blocked) servers to the app (of course, you can send different addresses to different devices). It helped Telegram to evade blocking and it worked.
As I understand, you cannot do it with PWA, especially if the browser doesn't encrypt DNS requests.
So with native apps the only way to block them is either block App Store completely or push on Apple to remove the app.
If the browser supports encrypted DNS and hiding SNI (which needs TLS >= 1.3) then there are chances to evade blocking with PWA. But as I understand, Safari doesn't use encrypted DNS by default (I wonder why).
The government might have only pretended that it really tried to block Telegram. The app was never removed from stores, and since both G and A did comply with such requests before abd after, I suspect that such request was never sent in the first place.
> Honestly I'm confused that if a PWA is a viable solution, why this isn't just a website?
PWA was touted in the comments as a possible alternative, but PWA on iOS is not a very viable alternative to a native app in my view.
Just because a native app could be a PWA which in turn could be a website doesn't really say much about which of these it actually should be. Most apps I use on a daily basis could technically be websites, but that misses the point of why we like using platform-native apps in the first place.
> Just because a native app could be a PWA which in turn could be a website doesn't really say much about which of these it actually should be.
It's worth mentioning that Navalny's team is funded via donations, and they could poll whether PWA is a viable option for communicating with their audience.
As I understand, PWAs are easy to block - you just need to block access to a web server. And native apps have more possibilities to evade blocking: they can use non-standard protocols, P2P protocols, receive data via pushes. So to block a native app one would have to block access to App Store.
PWAs are a market failure [1], and the deployment/utilization of them approximates 0%, including on Android where, the many comments tell us, it's a high power panacea.
[1] - Though it is astonishing how well the cloud gaming options work as PWAs. The one place where they've made any headway.
That makes Apple's cooperation with dictators and authocrats so much worse for their users. You know, the people Apple claims to care about and 'protect'.