Safari/Webkit Team and Developer Communication

One of the primary issues with web-development and dealing with Apple/Safari compared to dealing with the Microsoft Edge and Google Chrome teams is that it feels difficult for developers to have voice in Safari development.

Requests on bugs.webkit.org go unanswered and critical features which are essential too many developers are never placed in the pipeline.

From an outsiders perspective there seems to be several major issues:

  1. The Safari team is underfunded and needs more engineers and a much higher budget

  2. There is the perception that a significant number of critical features do not get developed because Apple does not want competition with the AppStore and by not developing those features it forces developers to use the App Store instead.

  3. Developers are not given an opportunity to communicate with Apple

Having worked with Safari development since 2003 when it was one of the best, most feature rich advanced browsers, it's really disappointing for Safari to be the limiting factor in every single app we develop. Apple has the financing and the engineering talent to fix this.

How can we open these lines of communication and make Safari one of the best browsers for developers once again?

Hi, thank you for your feedback. We hear you!

There are many channels for communication today. The Apple Developer Forums is one such channel which you've used, and bugs.webkit.org as you mentioned.

There is also Apple Feedback Assistant for providing bugs, feedback, and ideas to the Safari and WebKit teams. There's even more ways to stay in touch with the WebKit team. We're also active on Twitter monitoring feedback directed to @WebKit on Twitter, and our web technologies evangelists are also available on Twitter (@jonathandavis and @jensimmons). Feel free to say hello and give us your comments to share with the teams.

We are open to your ideas or suggestions for how we can continue to improve communication. Thanks for your willingness to engage with us.

As a place to start, I'd love for you to expound on this comment with more details:

Having worked with Safari development since 2003 when it was one of the best, most feature rich advanced browsers, it's really disappointing for Safari to be the limiting factor in every single app we develop.

What specific functionality is lacking or missing in Safari that limits the apps your team is trying to build?

The single biggest feature that is missing that I and other developers need is Notifications (i.e. push notifications). It's essential for a huge range of apps including chat / social media / workflow, business apps / games. Notifications have been available for native since 2009 via APNS.

Features

As a collective list (from a number of developers):

  1. Notifications
  2. Install Prompts/Banners (would go along way to reducing friction for installing web apps.)
  3. Pinned App Settings (in Settings Main Page and Settings > Notifications)
  4. Service Worker Navigation Preloads (to speed stuff up)
  5. Web Share Target with Files (So you can airdrop files to other people)
  6. Deep Links to Home-screen apps (from a clicking a url)
  7. Badges on Home-screen apps (i.e. unread chat count)
  8. Background Sync (To make sure the user has latest data when they load the app)
  9. Bluetooth
  10. NFC

In terms of privacy/protections for the user if pinned home-screen/apps simply appeared as an App in the Settings > apps menu and in Settings > Notifications that would provide users the same control over notifications and other privacy settings (location etc).

Another one specifically our team (as a case example) is being able to access bluetooth devices. We are currently constrained in buying large volumes high end thermal printers for all our customers, because there's no way for us to use significantly cheaper bluetooth enabled ones. We prefer to use iPads for their performance, quality and reliability for all our kiosk/POS style devices, but we also want to use web-apps instead of native apps so we can maintain a single codebase between mobile and desktop devices (mac or windows).

Our group of developers have a range of other requirements/issues for their specific apps, some work on video conferencing, some work with WebGL but universally notifications is what comes up as the biggest missing feature in Safari iOS.  

Safari's Staffing and Budget

Through many conversations, we've heard that for a first class browser Apple has a very small (but talented) team. Given the large number of different specifications and the importance of the web as the only truly open development platform there should be conversations between your VP/SVPs/Senior Directors about greatly increasing budget and staffing. It won't be possible with Apple's current staffing level to keep up development with all the various APIs. 

Apple Legal often uses Web-Apps as a defense against AppStore anti-trust/monopoly investigations but this defense is only realistic if there's a significant investment in Apple's web-platform and is seen to a least be trying to keep it competitive with native apps. This alone should be a good enough reason for the higher ups to give the team the budget they need.  

We also appreciate that many decisions including budget and what does and does not get funded (i.e. developed) comes from people further up and that the Safari team themselves have limited control, however it's critical that the importance of maintaining a competitive and first class browser in the eyes of developers gets to the highest levels. Once web-developers had decided that IE was horrible to develop for, this opinion eventually spread to the wider public until IE's reputation became impossible to salvage eventually forcing Microsoft to scrap the brand all-together. It's important that Safari does not develop the reputation as the new IE among developers as these negative opinions will spread to the wider public and negatively affect Apple's brand. We're not at that stage yet but I worry that if iOS Safari continues to be significantly (or strategically) underfunded that they will not keep up with the expected feature set of a mobile browser (a moving target).

Communication

In terms of communication the webkit.org/status is missing most of the key features listed above https://webkit.org/status/#?search=notifications https://webkit.org/status/#?search=bluetooth

If you look at bluetooth it just says "Not Considering", there's no conversation or reasoning provided. A link to discussion thread where Apple can explain their reasoning and the specific blockers (i.e. can't do this because of these very specific privacy reasons) and developers can respond with suggestions would be a great step forward.

The list should be greatly expanded to include all of the (major) features requested by developers and/or w3c specs. 

Many of us as members of the web-development community would are willing to contribute our expertise, time and effort. We're passionate about the open web and have most of us have been fans and advocates of Apple and Safari long before the wider public.

Thank-you and Looking forward to your reply.

15

I’m a web engineer who has had a similar experience with Safari. There was a time I was enthusiastic about Safari and WebKit, but after reading WHATWG discussions where Apple engineers do not seem able to compromise and in at least one instance, outright refused to implement specification, I have become less than optimistic about Safari’s future.

Over the last few years I have been increasingly enthusiastic about Web Components, but find it frustrating that WebKit has opted not to implement parts of the Web Components set of specifications: namely customized built-in elements which are now available in every other mainstream evergreen browser. Form-associated custom elements do not seem to be prioritized. I find this specification to be fairly useful but can’t use it in Safari without a polyfill. Using polyfills with Web Components diminish their use value over framework-based components and Apple’s reluctance to implement the full specification only hurts the overall developer community. Declarative Shadow DOM has shipped in Chrome, promises to make custom elements server-side renderable with hydration, but there’s no signal from WebKit if it will ever be implemented. As a web engineer I care deeply about performance, but can’t deliver a performant solution with custom elements in Safari if the browser has to load polyfills.

In my opinion, Apple has done an excellent job protecting customer privacy and implementing stellar UX, but WebKit has gotten so far behind in terms of implementing specification it makes it extremely difficult for web engineers to support Safari, sometimes leading to websites not loading. Over the past year, I found at least two websites, one from a bank and another developed by the city I had to use Chrome instead of Safari because Safari wouldn’t render the page. It has become increasingly difficult for web developers to support Safari because of the lack of specification that is assumed to be implemented in Safari like it is in Chrome, Edge, and Firefox.

Please prioritize implementing specification as defined by the WHATWG and W3C. WebGL2 support is fantastic, but there are many more practical specifications that web engineers could use to build rich web-based experiences in Safari.

We are developing advanced communications environments. Our technology is used by many, many people. We are developing web-apps (PWAs) mainly because of faster update cycles and we only have to maintain one source. Our Safari users are already disadvantaged, because we can't send push notifications to them, we can't use background updates and more. So we are recommending Chrome whenever those issues comes up - though this of course only works on Macs and not on phones. I don't know why Apple doesn't put more effort into bringing Safari into sync with other browser engines and frankly, as a developer, I don't care.

What I don't understand though: Why not allow "real" Chrome or Firefox onto your iOS platform? Why not let users decide which browser they want to use? Surely you must consider Safari to be top-notch or you would otherwise put more work into it. So - why not make it a fair competition across all of your platforms?

While PWAs have a number of problems on iOS safari, Notifications are the killer feature that is missing.

Although opening the iPhone/iPad up to third party browsers would provide some competition to the safari and could only improve the user web experience, some of these problems like notifications for PWAs and adding notification settings (like normal apps have) can only be done with updates to iOS.

If Apple could:

  1. Indicate to developers that they are working on this
  2. Give a rough timeline of when they think it will be available
  3. Publicly state what the blockers are and solicit feedback and suggestions from developers on resolving them

The benefits of this change would be huge. There are tens of thousands of business applications that could then work seamlessly on iOS, Mac, Windows and Android with a single code base. Having to write and maintain multiple versions of the same app simply makes development and maintenance of many of these too expensive to be worth doing.

I am certain that Apple has both the budget and talent to make this happen if they put their mind to it.

As the ecosystem works together for better or worse, the App Store policies are being pressured by too many native apps that should actually be PWAs on Safari, either because of their limited functionality, ephemeral use or the small scope of their target audience. Working towards push notifications on Safari would improve the App Store catalogue by liberating if of the need to support web experiences that depend on that killer feature.

As a web developer, I would love to see Safari implement the features addressed above, primarily first-class support for progressive web apps (including on the App Store) and notifications. If Safari implemented these features and nothing else changed, the Apple platform millions know and love would become significantly more powerful and let developers deliver consistent experiences for our collective customers.

That said, I would also like to add my voice for allowing other browsers on the Apple mobile ecosystem rather than re-skins of Webkit. While mobile Safari is an amazing technology, increased competition is better for users and drives innovation, compromise and collaboration in the standards process that I believe would benefit everyone.

I am currently developing a iOS App for the App Store. I am not sure if you are familiar with PWAs (Progressive Web Apps), but it is still not possible in 2021 with iOS 14.5 to send Push Notifications to a PWA App on a iOS Device. This is really disappointing.
My App is called PWA Push Handler. The Idea is that you as developer can register your PWA at my Service and then add a Banner to your PWA that the User should download the Push Handler App to the iPhone and add the PWA (also with deep links if the app is already installed). With a Post Command you can send Push to your PWA and the App will Receive the Push Notifications and on click will redirect to the PWA.
Apple declined the App now multiple times because of the following Reason:

Guideline 4.2 - Design - Minimum Functionality
We found that the usefulness of your app is limited by the minimal amount of content or features it includes.

Next Steps

We encourage you to review your app concept and incorporate different content and features that are in compliance with the App Store Review Guidelines.

We understand that there are no hard and fast rules to define useful or entertaining, but Apple and Apple customers expect apps to provide a really great user experience. Apps should provide valuable utility or entertainment, draw people in by offering compelling capabilities or content, or enable people to do something they couldn't do before or in a way they couldn't do it before. 

There you can see that Apple is not really wanting to have a possibility to send Push Notifications for Users. I tried to talk with the Developer Team there but the only answer i can get is the message above.

I built a PWA chat app to assist people with conversational difficulties. I can offer Android users push notifications, but I cannot do the same for iOS users. Please enable web push notifications on Safari.

We need better support for PWAs, they're the future.

WWDC finished today and it’s very disappointing that we haven’t got a concrete response from Apple or the Safari team regarding the issues raised above.

I just hope that we can get some basic conversations going about core PWA features and that Apple and that they get prioritized for development. Without these there are so many apps we just can’t build.

Safari/Webkit Team and Developer Communication
 
 
Q