The launch of the iPhone was in some ways the high water mark of the Web. Apple’s long rumoured phone was launched as 3 devices in one “a mobile phone, a widescreen iPod with touch controls and an Internet communications device”.
There were no native apps, the way Apple expected developers to build apps for the new device was using web technologies. There was no AppStore-instead web sites and apps were how developers would deliver functionality for the device.
From around 2004, Apple had begun delivering a raft of new largely CSS features (that were almost invariably referred to as “HTML5”) including gradients, transitions and animations, transforms, as well as the actual HTML5 canvas, which really helped rejuvenate web design and development after years of stagnation.
Of course, not too long after this, with iOS 2.0, the iPhone gained those native apps–a day I referred to back in 2008 as a ‘great leap backwards‘–and Apple’s investment in web technologies started to wane.
It’s not unfair to say that the Web became over time somewhat of a second class citizen on the iPhone.
In particular, technologies that would allow web content to feel more app-like (the term Progressive Web App was termed by Alex Russell in 2015–incidentally at our Code conference, you can watch that video here–to describe these web based apps that integrate into platforms).
Features like like support for offline technologies such as ServiceWorker, interaction into the device file system, access to hardware capabilities like bluetooth and NFC, and importantly push notifications, were either slow in coming, poorly and partially implemented, or never implemented at all. Meanwhile Google with Chrome on Android (and the desktop), and Microsoft with Edge continued to implement these more app-like capabilities.
Apple’s approach was particularly impactful on the Web’s evolution, as while the iPhone might account for only 20-25% of global smart phone use, it accounts for an extremely high percentage of use in WEIRD economies (as many as 90% of American teenagers use iPhones).
Meanwhile, few people, even developers, know that on iOS there is effectively only one browser. Not because Safari is the default and people rarely change defaults, but because Chrome, Bing, Firefox, Brave, every single browser on iOS is required to use Apple’s WebKit engine.
Combine these two and Apple has had an extraordinary influence on what the web looks like. Because while the W3C can develop standards around Web technologies, if WebKit doesn’t support them, then they cannot come to iOS. And so they are far less likely to be adopted (developers and the organisations they work for have limited budgets and so a feature unsupported on one of thee largest and most lucrative platforms is fa less likely to be implemented).
In the last year or two, regulators in the EU, UK and Australia have started to take notice, not least because of the efforts of open web advocacy, a group of developers who have made representations to or appeared before a number of regulators. A disclosure, I’ve been involved a little with the group, and in my own capacity made a submission to the ACCC, (the Australian competition regulator) in response to the 2021 issues paper for their Digital Platforms services inquiry related to browser innovation and competition.
While Webkit continues to remain the sole browser engine on iOS, just today Apple announced some very significant, and very welcome new features in Safari iOS and iOS itself. These will allow web apps to integrate more fully into iOS.
Web Push for Web Apps added to the Home ScreenWeb Push for Web Apps on iOS and iPadOS
Now with iOS and iPadOS 16.4 beta 1, we are adding support for Web Push to Home Screen web apps. Web Push makes it possible for web developers to send push notifications to their users through the use of Push API, Notifications API, and Service Workers all working together.
Home Screen web apps on iOS and iPadOS 16.4 beta 1 now support the Badging API. Just like any app on iOS and iPadOS, web apps are now able to set their badge count. Both setAppBadge and clearAppBadge change the count while the user has the web app open in the foreground or while the web app is handling push events in the background — even before permission to display the count has been granted.
Third-party browser support for Add to Home Screen
In iOS and iPadOS 16.4 beta 1, third-party browsers can now offer their users the ability to add websites and web apps to the Home Screen from the Share menu.
New Web API for Web Apps
Besides Web Push, Badging API, and Manifest ID, many of the other new features in Webkit for iOS and iPadOS 16.4 beta 1 are of particular interest to web app developers focusing on Home Screen web apps. These include:
Screen Wake Lock API
Screen Orientation API
User Activation API
Web Codecs API video support
In short, it may be one of the most significant days in terms of support for modern web technologies on iOS in many years, and a really encouraging sign from Apple.
If integrating web apps on platforms like iOS and Android (and desktops as well–there’s some amazing things you can do there now) is important to you, we have lots of videos from past conferences focussed on this on Conffab, and it’s very much the sort of thing we cover at Web Directions Code–the next edition of which is coming up in June in Melbourne, with tickets on sale now.