Why do I hate Safari so much right now?

Why do I hate Safari so much right now?

If there is one thing that developers hate the most, then IE is definitely the first one. The reason is actually very simple, because IE's design is seriously outdated and cannot support various cutting-edge Web APIs and technologies commonly used in modern websites and Web applications. But now, IE has become a thing of the past, and Microsoft has come up with a newer and more advanced browser alternative Edge.

After IE retired, the title of the most annoying browser was immediately taken over by another browser - Apple Safari.

Similarly, Safari has always lagged behind other competitors in terms of support for modern Web APIs and features, which directly makes it difficult for our engineers to achieve a unified product experience on various mainstream browsers (Chrome, Edge, Firefox and Safari).

I saw this article this morning. The programming module was ranked first on Reddit. The author Perry Sun is a product marketing manager of a startup company. His views may not be correct, but I hope it can give you some inspiration.

In addition, there is a very lively discussion on Reddit, you can go and take a look.

Now we have explored how to achieve a highly unified application experience on the browser with the native application.

All of this is made possible by so-called Progressive Web Apps (PWAs), a set of modern browser technologies that allow developers to build web apps on websites that look, feel, and perform like native apps on smartphones, tablets, or desktops.

Progressive Web Apps are really cool, and they can even implement the following features that were previously exclusive to native applications:

  • Run in full screen (without showing any browser UI)
  • OS-level notifications and alerts
  • Ability to continue running the app while offline
  • Local data storage and retrieval
  • Add an app icon to your smartphone's home screen
  • Access various hardware functions, such as camera, microphone, USB port, etc.

Progressive Web Apps do not need to be compiled or submitted to the app store for approval. Today, mainstream apps such as Starbucks, Twitter, and Uber have chosen Progressive Web Apps as their carrier.

Apple has its own reasons for being slow to support progressive web apps in Safari, as they have been strictly limiting the functionality of progressive web apps, such as prohibiting such apps from posting system notifications or adding shortcut icons to the home screen.

There's more to it than that. The only web rendering engine supported by iOS is Apple's own WebKit. Any third-party iOS browser (including Chrome) can only use WebKit and cannot match any other engine (this is not limited on Windows, Android or MacOS). And WebKit is the source of the management function of progressive web applications on the iOS system.

Why does Apple want to restrict the Web API of progressive web applications? The high-sounding reason is of course user privacy, but I'm afraid we can only believe half of it.

Many friends should be able to imagine that once fully functional progressive web applications are fully supported, the iOS App Store will face huge competition. And only for applications officially listed on the App Store, Apple can take 30% of all application purchases or in-app purchases.

Until recently, the controversy over Apple's reluctance to support Progressive Web Apps was largely confined to the Web developer community, but now, as the antitrust lawsuit between Epic and Apple heats up, the issue has finally been exposed to the public.

Ultimately, Apple may be forced to fully expand its support for progressive web apps or open the door to other third-party iOS browsers, but we can only wait and see what the outcome of the lawsuit will be.

Using the "delay" tactic to deal with WebRTC

Web developers and engineers have long complained that Safari does not support important Web API and CSS features as well as other browsers.

As one Reddit user once complained, "…Apple doesn't give a shit about any modern APIs. Progressive Web Apps? Streaming apps? Screw it. But, Apple, we really need all of this."

Take WebRTC as an example. It is mainly used to support video and audio communications on the Web, and is also commonly used to send files and share screen content.

It took Apple several years to actually bring WebRTC support to Safari, far behind Chrome and Firefox, which made Safari a joke among developers and even industry observers.

Although support is finally here, it’s no secret that WebRTC doesn’t work nearly as well on Safari for desktop as it does on other browsers, and developers have found WebRTC support on iOS to be even more messy, if not hopeless.

Previously, Safari was criticized for not supporting the VP9 video encoder or the WebP image compression format. But the good news is that until the end of 2020, the relevant support was finally launched. But the old problem remains - the launch time is too lagging compared to other major browsers.

Now, a new challenge is once again placed before Apple - whether to unite all forces to support the AV1 video codec and the related AVIF image format. But this is also difficult because Apple itself can obtain royalties from the competing codec HEVC and is also a strong supporter of the HEIC image format.

Frequent bugs and untimely updates

Many developers have complained on forums about the numerous bugs in Safari's implementation of Web API and CSS functions, and Apple has been quite slow in resolving them.

"Isn't Apple one of the richest companies in the world? Take some money and solve the problem!" complained a user on Reddit.

Even more frustrating is that, unlike Chrome or Firefox, Safari doesn't have a regular update cycle at all. It updates at the same frequency as the underlying operating system, which is ridiculously long for a web browser.

Even Microsoft has adopted automatic updates for Edge browser, Apple, what about you?

Maybe everything will change

Don’t get me wrong, Safari is an excellent web browser with powerful performance and solid privacy features.

But at the same time, the poor support for core Web technologies and APIs is both confusing and infuriating.

The huge popularity of iOS, coupled with Apple's constant use of various means to hinder developers from creating a unified and excellent web experience on multiple platforms, is even more infuriating.

We can understand the reason behind this. After all, Apple has decided to bet its fate on service revenue, so the commission on app/in-app purchases generated by the App Store will be crucial.

Apple has always compromised in the face of public pressure. Therefore, in the foreseeable future, I believe that Apple will refer to user opinions and make some significant adjustments to Safari's design. I look forward to Apple's actions.

<<:  iPhone can still be tracked even after it is turned off! Netizens: Don’t worry if your phone is lost

>>:  Google will no longer support Google services on Android 2.3.7 and below

Recommend

The latest App Store review standards for 2015 are announced

Introduction: Apple recently updated the relevant...

Who is the suitable group for Wenchang Tower?

Friends who have read the previous introduction t...

Why do humans have to wipe their butts, but animals don't?

One day, you rushed to the bathroom and suddenly ...

Why didn't archaea evolve into organisms more advanced than humans?

In most people's eyes, bacteria are bad thing...

Popular Science | How to choose socks? Beware of carcinogens!

According to a report by CCTV Finance Channel on ...

Since the green ivy is so easy to grow, why doesn’t it bloom?

As one of the most successful indoor cultivated p...

The master teaches you how to play with Excel and gain efficient life lessons

Different from the boring traditional teaching me...

Introduce Gradle dependencies in Android projects like npm

[[206604]] 1. Introduction As an Android develope...