Apple's Non-Standard Approach to WebApps: A Step Back from PWA Standardization
Tags: apple, pwa, webdev, wwdc23
Published: 2023-06-05 19:56:32

In their recent 2023 event, Apple made an announcement that users would be able to add any website to their dock and open it as a web app, without requiring the use of manifest.json and service workers. While this may sound like a convenient feature, it deviates from the standard approach of Progressive Web Apps (PWAs) and introduces potential problems due to non-standardization.

## Progressive Web Apps and Standardization
Progressive Web Apps have been a significant development in bridging the gap between native mobile apps and traditional web applications. They leverage modern web technologies to offer a seamless and app-like experience to users. One of the key elements of PWAs is the use of manifest.json and service workers.

> A progressive web app (PWA) is an app that's built using web platform technologies, but that provides a user experience like that of a platform-specific app.
> 
> Like a website, a PWA can run on multiple platforms and devices from a single codebase. Like a platform-specific app, it can be installed on the device, can operate while offline and in the background, and can integrate with the device and with other installed apps.
> Source: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps

### Manifest.json 
The manifest.json file provides a standardized way for developers to declare essential metadata about their web app. It includes information such as the app's name, icons, display mode, and other configuration options. This standardization ensures consistency across platforms and allows web apps to be easily discoverable and installable.

### Service Workers
Service workers are JavaScript files that run in the background and provide functionality like offline caching, push notifications, and background sync. They enable PWAs to work reliably, even in low or no network connectivity scenarios. Service workers play a crucial role in enhancing the user experience by enabling features commonly associated with native apps.

## Apple's Non-Standard Approach
Apple's decision to allow users to add any website to their dock and open it as a web app without manifest.json and service workers undermines the standardization efforts established by the PWA community. By bypassing these essential components, Apple creates a fragmented ecosystem, leading to potential problems.

1. **Inconsistent User Experience**: Without manifest.json, developers lose the ability to define the app's display mode, icons, and other crucial metadata. This results in inconsistent app-like experiences across different platforms and devices, as each implementation may interpret the website's appearance differently.

2. **Limited Functionality**: Service workers are fundamental for enabling advanced features like offline support, background synchronization, and push notifications. By not requiring service workers, Apple restricts the potential functionality that web apps can provide to users on their devices.

3. **Discoverability Challenges**: The standardized use of manifest.json allows platforms and app stores to recognize and index PWAs, making them more discoverable by users. Without this standardization, Apple's non-standard approach may hinder the discoverability of web apps, impacting the overall reach and adoption of such applications.

4. **Development Complexity**: Standardized practices simplify development by providing clear guidelines and tooling support. By deviating from these standards, developers now face the challenge of accommodating Apple's unique approach, potentially requiring additional development efforts and creating inconsistencies in their codebases.

## Conclusion
Apple's recent announcement to allow websites to be added to the dock as web apps without the requirement of manifest.json and service workers introduces problems due to non-standardization. Progressive Web Apps have already solved these challenges by providing a consistent user experience, advanced functionality, discoverability, and streamlined development practices. While Apple's approach may seem convenient initially, it risks fragmenting the web app ecosystem and hindering the progress made towards standardization and a unified web platform experience.