It's kind of funny as a web developer because for the longest time Apple seemed to be the one pushing the mobile web forward but now that web apps are reaching for feature parity with native, Apple's initial momentum seems to be ancient history.
It seems Apple still thinks of the mobile web as a content delivery platform rather than an application platform. Their proprietary additions (mostly CSS) largely focused on making things prettier, their rationale for opting out of standard features (e.g. autoplay) often only work under the assumption that the only use for those features would be in the context of traditional content pages.
You want an app? Develop for our walled garden we tightly control to offer our users the best possible experience. If you want it on the web, stick to creating content our users can consume in Mobile Safari, our app for reading websites.
https://9to5mac.com/2011/10/21/jobs-original-vision-for-the-...
I remember Twitter.app had code to get the currently installed apps, to "better target ads." It's user hostile and we are paying with the multi gigabytes of data.
Apple wants in-app purchases. Why deliver full flexed apps in the web were people pays using PayPal or VISA if you can force people to use your store?
This is the reason Apple killed Flash and is the reason why they may kill any other web technology.
I'm sure there are a number of legitimate uses but as of now, every craptastic "news" website I visit now wants to pester the hell out of me with notifications when they post new clickbait.
The HTML5 version is compiled from the same source that the App that goes to the Apple App Store (https://itunes.apple.com/us/app/papa-pear-saga/id572542612?m...).
What's so different? It is literally the same code base (minus some platform specific code).
They later reversed that decision, of course. But the Flash decision was right at the beginning and had nothing to do with in-app purchases.
Note that Android never got Flash to work well on phones either. It just killed performance and battery life.
It should always be opt in, but it is a useful thing for many use cases.
Offline support? Only if you happen to live in the 99.99% of the world that doesn't have 24/7 perfect WiFi/4G coverage with unlimited data. If you've ever kept a page open in the background and wished the data would still be there when you come back, offline support could have helped with that.
The choice is not between a native and a web app. The choice is between a web app or no app. There are certainly apps that could cease developing platform specific native apps when PWAs are supported on iOS but the vast majority of apps that benefit from PWAs being supported universally are apps that simply would never be available as native apps (let alone native apps on more than one platform).
It's not like you're being force-fed notifications against your will. And it's not like offline content hurts you. Any inconvenience offline support causes to you pales in comparison to how much people benefit who actually need to be able to access content on spotty connections.
According to this, Facebook was 32 MBs 4 years ago. It's similar with Twitter.
It's their fault that they keep adding stuff to track you. And Facebook contains just about every library that has ever existed now.
If a normal website can't do the job, and the developer isn't willing to develop a native app, then maybe the product simply isn't necessary.
In Firefox, just open "about:config", search for dom.webnotifications.enabled, then double-click it.
If using other browsers, don't :)
(PS: I like desktop notifications for Slack, but since I'd prefer not to use Slack in the first place, I'm not sure I count)
>Sixth, the most important reason.
Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.
We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.
This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.
Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.
Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications. Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.
Technically Apple does support offline via the older manifests mechanism (and "Add to Home Screen" which invokes it remains prominent in the safari share sheet) though it's a lousy (and pretty buggy) experience.
Interestingly they don't support any sort of web notifications on iOS despite having added local notifications ( https://www.w3.org/TR/notifications/) in macOS 10.8 and remote Safari Push Notifications (built on APNS) in macOS 10.9.
Go to about:config, search for dom.webnotifications.enabled, set it to false.
But for notifications, even the only-once* prompt is an annoyance we never had to deal with before. It's like the European Cookies Law: great in essence, but when every website bugs you about it then the problem has been exacerbated, not solved. I don't care about receiving notifications for a website I visit once in a blue moon, and I especially don't care to be even asked. There should be an action that triggers the prompt, like some kind of opt-in.
Edit: same with "app banners"
*it never is, because cross platform, multiple devices, multiple browsers. A fucking pain.
> we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen.
Yes, that's what (you and) Apple want. But what developers really want is a simple cross platform framework to target all OSes and the widest user base possible with the least effort.
These applications can then enable custom features on macOS where they get a better experience if they have a need for that.
Remember OpenStep? Yellowbox? We want those tools; right now the web is an ok standin, and until there is something better, developers will keep demanding these features. It's about targeting the widest user base possible, not about making a single platform the most successful.
Twitter's native app is heavier than their web app because Twitter has historically filled the native app with junk (like a fullscreen video just for the login screen, "moments", "highlights", hijacking browser URLs, a bunch of ads and ad tracking, etc). Facebook does the same, to an almost silly degree - https://news.ycombinator.com/item?id=8162342
The Twitter client could easily be ~3MB on Android, for instance, if they just stripped the garbage out. And similarly, if you take a web app, and embed all that same junk into it, it will suddenly be a heavy download too.
My thing is: I visit a particular website to get the latest news on a topic but it's done with some kind of poorly coded implementation of offline cache. Despite my privileged, first-world, 4G-everywhere connection, it insists on loading stale data even though it looks exactly like a regular website. And this clashes with my vision of internet, which is, as others said, regular pages with hyperlinks, and a Refresh refreshes the page to get the newest version, even if it's stale. If things haven't changed, then they haven't and I instantly know nothing's new.
As I've said, pretty minor and I realize that Offline mode has much more pros than cons.
As long as Apple continues to sell more product that dynamic isn't going to change.
You are definitely right that Apple has a lot of leverage for now. I love my Apple products, as a user I have no intention of switching away from them (I stuck with them through their worst period, '96 - '00, because I was so excited for the coming of Unix). Again as a user I want them to succeed because I love the products.
As a developer though, I want my favorite tools and languages available. And I want to spend the least effort in targeting users...
That seems like circular logic. IMO, very few products are "necessary," and sure, right now developers have pretty much no choice but to support native walled gardens if they want to support the list of features PWA offers.
But what if users had a real choice? What if the web browser could offer an immersive user experience on par with native mobile apps? What if browser vendors actually put in effort to optimize for user preferences regarding PWA call-to-actions? What if PWAs were as widely promoted as native app stores?
A11y is also being taken seriously.
>The same goes for Electron-based apps.
When it comes to Electron apps I think any failing to provider a top notch user experience is on the developer and not on the technology. Visual Studio Code is based on Electron and it is hands down the best text editor/IDE-lite out there because the team behind it put the time in to make seem like the type of app you would get out established UI frameworks within the target environment.I only put up with it due to being the editor with the best support for Rust plugins.
The day I can have the same experience on Emacs for Rust, VSCode gets kicked out.
For instance, maybe instead of being an always online application, they can put in effort at caching for offline use instead of duplicating features across different platforms.
I did my senior project in Electron and there was no way we could have implemented as much as we did if we had to build a native solution for every platform.
I'd be OK with a small icon in the address bar to indicate push notifications are available on a site but even one pop up asking for permission is too many.
Yet those of us old enough to remember the 90s also recall how the openness of the web freed people from the monopolistic behavior of Microsoft. Sure, the web was bad for Microsoft, but great for users.
This whole argument is circular. Web capabilities lag because companies like Apple deliberately drag their feet. Then people like you cite all the advanced features of native development as a reason not to try and use the web. All of which suits Apple fine, since they get 30% of native, and 0% of the web. Apple hobbling PWA is the new "IE-only" website.
"It is difficult to get a man to understand something, when his salary depends on his not understanding it." - Upton Sinclair