DEV Community

Cover image for Apple is killing PWA?
Maxim Saplin
Maxim Saplin

Posted on • Edited on

Apple is killing PWA?

The recent news about Apple killing home screen web apps in the EU made me think about why PWA never became a thing and how there's an analogy with Jobs pushing back Flash.

The early days: Jobs vs Adobe, HTML5 vs Flash

When iPhone and iOS were launched in 2007 there was a term - RIA (Rich Internet Applications). If someone wanted a web application to have snappy and interactive UI with advanced features, such as vector graphics, animations, audio, and video - the only way was to rely on browser plugins, such as Flash.

Internet Explorer supported ActiveX components for quite a while already which allowed hosting desktop UI inside the browser. Even in those days the tech was dated, and insecure, and nobody liked it. Macromedia (later acquired by Adobe) introduced its Flash technology in 2000. The term "Shockwave Flash" still pops up in my head when I hear the mention of Flash. SWF even became a part of a cultural phenomenon in 2001 - the Masyana cartoon series went viral in post-soviet countries and was distributed as ".swf" files.

Image description

Flash Player became a widely adopted browser plugin used for running 2D games or web applications with complex logic and animations. By 2007 it worked on Windows, OS X, Windows Mobile, Blackberry, and PlamOS (later Android). Adobe invested a lot of development effort with new features and components added (Flex, AIR, etc). Seeing the success of the tech Microsoft attempted to compete with Flash introducing their Silverlight in 2007.

At the time the iPhone was released the only way to have video on the websites was through the use of Flash - it was a de-facto standard. E.g. in 2009, Flash was installed on 99% of internet-connected desktop PCs. YouTube kept using Flash Player up until 2017 announcing the transition to HTML5 video player in 2015.

It was a big surprise and a hot discussion about why there's no iOS version of Flash and Apple actively pushes back its' implementation - "No Flash means that the iPhone browser is incapable of displaying a large portion of the internet." Mass media criticized Apple, and accused Jobs of not being frank in the reasons for "why" and having own agenda.

The pressure from the public was so immense that in 2010 Steve Jobs had to respond with an open letter - "Thoughts on Flash". He explained that there's no conspiracy or bias towards Adobe of Flash. The reasons were purely practical and technical. Flash was a closed platform, buggy, power-hungry tech that Apple couldn't accommodate without compromising the quality of products running on iOS devices.

Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low-power devices, touch interfaces, and open web standards – all areas where Flash falls short.

He also reiterates Apple's stake in Web standards:

New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.

The hostility between Apple and Adobe was at its peak, in this video from the same year Steve Jobs even touches upon a smear campaign run by Adobe.

Back in 2009, I had a chance to participate in a project that used Flash (Adobe AIR, ActionScript) for a web application mimicking vector graphics editor in a browser. At the time the "Flesh/Flex Developer" vacancies looked cool and offered good salaries. The tech was modern and shiny, but the demise of the stack was not yet perceived... Adobe Flash saw a steep demise very soon.

Flash usage stats

Was it Apple killing Flash, and would it be still relevant should Apple allow the Flash plugin into its iOS Safari browser? Hard to tell. Yet Apple and Jobs played their role in dethroning Adobe in rich internet applications and promoting HTML5 and CSS3.

Progressive Web Apps

I have tried many programming tools for building UI in the apps: Delphi, Visual C++/MFC, Windows Forms, WPF, ASP.NET WebForms/MVC, jQuery, React, Next.js, Streamlit, Xamarin, and Flutter.

It is my conviction that the Web Stack is the most capable, mature, accessible, and performant way of building and running UIs. It is the sheer amount of effort spent by millions of people around the globe that makes it the best UI stack for the vast majority of use cases. Some say that the browser nowadays is the most complex piece of software that few organizations can make. And it has been a while since Chrome super optimized runtimes are capable of running JavaScript at near-native speeds and the WebKit rendering engine is more than ready to generate each frame in under 8ms achieving 120 FPS.

As a creator of a table widget for Flutter, I can tell that complex large tables are well faster when rendered using HTML in the browser rather than natively in an app. I also had a chance to observe a few projects with Web clients and native Android and iOS clients developed side by side. In most cases, I had the perception that the web part was always easier and faster to do...

I was very much excited about PWA from the early days of the technology. It promised the highest developer productivity with access to the richest web ecosystem... While closing the gap between native apps installed from the stores and web apps accessed via browser.

In the 2010s Web standards (HTML5, CSS3, JS/ECMAScript) have been progressing quickly introducing new features traditionally available only to native apps. Web apps running in the browser received access to Bluetooth, location, sensors, and more. Yet there was always a clear boundary between an app installed from the store and all the rest. PWA focused on introducing deeper integrations into the operating system. Things that make native apps stand out are:

  • Launching from OS home screen
  • Full-screen mode with no address bar
  • Notifications
  • Off-line mode
  • Access to file system
  • Ability to share via standard OS popup
  • Responding to deep links (opening an app from a click on a link, i.e. viewing Instagram posts in the app)
  • Unified way to discover and install apps - via app stores (e.g. Google Play, Apple App Store, Microsoft Store, Amazon Appstore)

Unlike HTML5 or CSS3, which are now well-maintained and controlled standards, managed by appointed organizations (W3C, WHATWG), PWA doesn't have a managing body. The kind of integrations one can get depends on the browser and platform developers:

PWA combat, wiki, 2024

This Wikipedia screenshot shows that as of 2024 it is not uniform.

The situation reminds the state of HTML5 in around 2010. At the time the working HTML specification was approved by W3C as 4.01 released in 2000. HTML5's first draft was only released in 2007 and there was a perception that W3C might never conclude the spec. It took another 7 years to finalize and release HTML5 in 2014.

Yet in 2008 when the iPhone was released and there was a hot topic of playing video in browsers without Flash HTML5 <video> tag was already in use. Many companies, Apple and Google included, didn't want to wait for W3C to stop crawling and start running. Those were the old good days of cross-browser compatibility issues and differences in syntax and capabilities.

E.g. nowadays to blur an element via a CSS style you do something like this:



.blur {
  filter: blur(5px);
}


Enter fullscreen mode Exit fullscreen mode

In 2014 same result would be achieved with something like this:



.blur {
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}


Enter fullscreen mode Exit fullscreen mode

Kind of reminds me of PWA - isn't it? With HTML W3C eventually gave up and handed over the authority of developing and releasing HTML5 standards to WHATWG and now we live in a world where you don't have to spend as much time testing apps in different browsers and finding workarounds OR writing if statements checking which browser your JavaScript runs in.

This PWA app was created in 2019 to replace this native app built with Xamarin for iOS and Android. I was very much excited about the result our team achieved. The PWA variant was a smooth experience with better UI performance (e.g. better than Xamarin scrolling of lists, there were noticeable stutters), and better accessibility making it available on any device, not just smartphone. The dev journey is also much greater - faster development, fewer bugs, no hurdles with App Store approvals and publishing, no hard feeling about making changes to both front and back-end - in mobile apps in the back-end you always care about the vision of the client, there're no guarantees when certain users will get the updated client.

Yet it doesn't seem PWA will have the same kind of pivot - being generally accepted by the industry and standardized. It caught me recently that although I am a huge proponent of PWA... And see it as cool tech that breaks the jail or app stores, and lets app developers avoid the cut on in-app payments that Google and Apple can force you into... I don't use it. Somehow I always prefer installing an app from a store and there's currently just !!!ONE!!! PWA app on my Android phone that I use regularly.

A bit of Hypocrisy

In its fight with Adobe and Flash Apple always emphasized the importance of adopting open standards to ensure they can leverage the most up-to-date tech and build the best quality products. That's how HTML5 and CSS3 had a lot of support from the big tech.

For PWA it is not the case, platform owners don't want PWA to be as frictionless an experience as their app stores. And Apple gives the best example of how open standards and better tech become a hurdle to the business model.

iOS was always lagging behind other platforms in terms of feature support. Here's a compatibility list from 2021:

PWA Compat 2021

The recent news and about Apple degrading PWA support on IOS is yet another move in the opposite direction. EU regulations are a good excuse to drop the feature that can let users skip the App Store while reaching out for apps.

P.S. PWA popularity

Finding stats on PWA adoption is not easy. I have come across these 2 sources:

  • BuiltWith, number of sites from 1million sample

BuiltWith PWA

  • Chrome Platform Status that shows the number of pages using ServiceWorker which can signalise that the site supports PWA

Chrome Platform Status PWA

Top comments (15)

Collapse
 
link2twenty profile image
Andrew Bone

We're so back!

apple's retraction

Collapse
 
ben profile image
Ben Halpern

This makes sense. It was a weird alienating move without obvious benefit to them in the first place

Collapse
 
ben profile image
Ben Halpern

Isn't it interesting that early iPhone strategy made Apple super in on the web but then they figured out how much it paid to be super out on the web, and here we are.

There was a period where Apple was pushing the idea that: Web apps are sufficient for all third party apps and we need to obsessively improve Safari to make that vision possible.

They got pushed to open up the native ecosystem, stumbled into the App Store business model, and the rest is history.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

We get bogged down in lengthy "technical discussions" but at the end of the day, it's about who has the power.

The strong do what they can and the weak suffer what they must.
-- Thucydides, History of the Peloponnesian War

Collapse
 
ben profile image
Ben Halpern

For a while Google's power accumulation was generally aligned with the general blossoming of an open web and lots of new technology.

They've clearly moved to extraction mode as far as the web is concerned, they are quite well positioned to take part in a potential "authorship and copyright and reality doesn't matter much anymore" economy.

It's pretty unclear whose incentives are truly aligned with any of the good stuff we like.

Collapse
 
lexlohr profile image
Alex Lohr

There's a big difference between flash and PWAs. The former was a closed source product that became a battery drain and pain to support on mobile, the latter is solely based on open web standards and just allows people to create an app-like experiences on iOS without Apple being able to stop you.

Collapse
 
maximsaplin profile image
Maxim Saplin • Edited

Agree, Web and Flash are completely different philosophies of how platform is developed and distributed. Yet there's a clear resemblance of how Apple pushes back a tech already adopted and liked by many - this can be one of the factors of the PWA demise in 2020s, just like Apple influenced Flash in 2010s

Collapse
 
lexlohr profile image
Alex Lohr

While the decision not to support flash was certainly an important nail in its coffin, it's not like Apple single-handedly killed off flash. Without the important factor of web techniques gaining sufficient abilities to replace it, flash would not have died off.

As long as everyone but Apple will support PWAs, I wouldn't call it killed.

Collapse
 
eljayadobe profile image
Eljay-Adobe • Edited

Back in the day, no one could predict which web technology was going to win the web.

Would it be FutureWave/Macromedia/Adobe's Flash? First one to market that can establish a strong foothold has an excellent chance of dominating the market.

Would it be Sun/Oracle's Java-in-the-browser? With their "write once, debug everywhere" (cough) tech stack, and their deep pockets to push their solution to all the browers.

Would it be Microsoft's Silverlight? Late to the game, but never count Microsoft out β€” they have even deeper pockets, marketing chops, big brains, and the wherewithal to stay in the game to win big! (...or go home.)

We all know the answers. No. No. And... no.

None of the three big players won the internet. All of them had their fans, evangelists, and advocates. But no one β€” no one! β€” would have predicted that the internet's web applications would be won by the little engine that could: JavaScript.

JavaScript was developed under the codename Mocha, and briefly debuted under the name LiveScript before marketing rebranded it JavaScript. (After negotiating the name with Sun, to ride on Java's coattails. In hindsight, the irony.)

JavaScript was intended to be a programming language for non-programmers. In order to have small snippets of glue code embedded in the HTML to handle events, allowing for web pages to be more dynamic and interactive.

From that humble beginning, it eventually evolved into the language of the internet. The dark horse language that wasn't even competing with the big three Flash, Java, and Silverlight β€” yet still won the race. There are web apps that are 100+ KLOCs used by billions of people, every day. Incredible!

And I dare say, it's still just getting started, and we ain't seen nothin' yet!

Collapse
 
maximsaplin profile image
Maxim Saplin

IMO it is the [JS + CSS + HTML + WebKit] stack combined. JS alone has little value

Collapse
 
htho profile image
Hauke T.

I just read apples anouncement on the changes because of the EU regulations. The tone is "we are protecting our users/hardware/software, by controlling the App Store and the Browser engine."

The EU regulations are there to stop this monopoly: There should be a market. (Microsoft was forced to do this a looooong time ago - back in the XP Days)

Apple writes (highlights added by me):

Why don't users in the EU have access to Home Screen web apps?

[...]

The iOS system has traditionally provided support for Home Screen web apps by building directly on WebKit and its security architecture. That integration means Home Screen web apps are managed to align with the security and privacy model for native apps on iOS, including isolation of storage and enforcement of system prompts to access privacy impacting capabilities on a per-site basis.

Without this type of isolation and enforcement, malicious web apps could read data from other web apps and recapture their permissions to gain access to a user’s camera, microphone or location without a user’s consent. Browsers also could install web apps on the system without a user’s awareness and consent. Addressing the complex security and privacy concerns associated with web apps using alternative browser engines would require building an entirely new integration architecture that does not currently exist in iOS and was not practical to undertake given the other demands of the DMA and the very low user adoption of Home Screen web apps. And so, to comply with the DMA’s requirements, we had to remove the Home Screen web apps feature in the EU.

[...].

I don't think this was an easy decision. And I am not convinced it was a purely evil decision.

There are a lot of crappy apps on google Play. Android apps can degenerate the User Experience even of the best Android Phone. Apple tried to protect their users and their brand by disallowing content that might degenerate UX and their brands perception.

I am sure this is not the end of the story.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

There is nothing evil with disliking the effects of a given law, I think every company (and individuals) can relate to it.

Still, to have a working free market and a working democracy, the law must be above the preferences of any individual company.

Except of course when a company has so much market power that it can shapes profoundly which laws will affect it, when and how. And that's exactly how you know when the free market is broken and anti-trust need to intervene.

Collapse
 
justjordy profile image
Nicholas Jordan Andersen

PWA's are great tools. I hate to see apple warp a law that was meant to foster diversity in their ecosystem into a way for them to exert more control.

This will definitely be a blow to the future of PWA's. We'll just have to wait and see how large the damage will be.

Collapse
 
mandarbadve profile image
Mandar Badve

Excellent piece! It brings back memories of CSS compatibility challenges and transitioning from Flash/Silverlight to HTML5. It's been a remarkable journey, and I'm optimistic about what lies ahead.

Collapse
 
frankjonen profile image
Frank Jonen

Apple's resistance to Flash was long coming. I had Flash blockers installed on every browser long before Flash died. It was a massive pest that only did one thing good, ruin battery life and crash browsers. Today this would probably be called a poor carbon footprint.