🔥

Тред (Алексей Родионов)


Вообще, если вы следите за новостями веба, то могли заметить, что вокруг PWA кипят настоящие страсти. 👇

Самое интересное, на мой взгляд, происходит вокруг инициативы под названием Web Capabilities (кодовое название — Project Fugu 🐡): chromium.org/teams/web-capa…

Это инициатива проекта Chromium по сокращению разрыва между возможностями, которые доступны нативным приложениям и которые доступны веб-приложениями. Project Fugu поддерживают многие компании, включая Google, Microsoft, Intel, Samsung и др.

Safari и Firefox могли бы организовать подобные инициативы, но не стали этого делать. С Apple всё более-менее понятно.

Кажется, что команда браузера Safari и движка WebKit намеренно не улучшает поддержку прогрессивных веб-приложений, так как PWA представляют конкуренцию App Store, который приносит значительный доход Apple.

Так, например, в ходе WWDC 2020 компания Apple объявила, что не будет реализовывать в Safari поддержку целых 16 Web API для создания прогрессивных веб-приложений, сославшись на проблемы с конфиденциальностью пользователей: digitalinformationworld.com/2020/06/apple-…

Я считаю, что проблемы нужно решать, а не бежать от них. Тем более, что у Apple есть на это ресурсы.

It looks like Apple has used the term PWA for the first time, in the evidence to the Australian Competition and Consumer Commission (ACCC). 👀 accc.gov.au/system/files/A… /cc @firt @slightlylate #PWA #ProgressiveWebApps pic.twitter.com/BSyyvYmm6J
На фоне этого особенно иронично смотрится предложение Apple обходить правила App Store при помощи PWA: twitter.com/alexey_rodiono…

Ситуация обостряется ещё и тем, что на iOS, согласно требованиям всё того же App Store, все браузеры без исключения, включая Google Chrome, Mozilla Firefox и др., вынуждены использовать движок WebKit вместо своего собственного движка — Blink, Gecko и др.

Примечательно также и то, что это первый раз, когда Apple использовала термин PWA с момента его появления.

Fifty-one minutes in 2020 with a browser team and not one mention to PWAs. In the end, "home screen web apps" are discussed with a definition from 10 years ago (bookmarking your favorite sites). Safari team: it's so childish to act as if the term PWA does not exist. Really. twitter.com/firt/status/12…
До этого Apple всячески избегала этого термина, называя прогрессивные веб-приложения либо просто "web apps" — веб-приложениями, либо "home screen web apps" — веб-приложениями, которые можно добавить на главный экран: twitter.com/firt/status/12…

А вот с Firefox интереснее. Буквально через несколько дней после заявления Apple команда Firefox объявила, что тоже не будет реализовывать эти Web API.

Всё это приводит к расколу и фрагментации веба как платформы.

Именно Firefox ещё до появления термина PWA заложил многие концепции и прототипы Web API, например, для работы с аппаратными возможностями устройств в Firefox OS, где все приложения являлись по сути веб-приложениями: medium.com/@bfrancis/the-…

Всё намного прозаичнее: habr.ru/p/521248 habr.ru/p/515534

Но не стоит думать, что Google и Microsoft такие белые и пушистые. У каждой компании свои собственные цели и мотивы.

В отличие от Apple, большая часть бизнеса Google строится так и иначе вокруг веба (Поиск, Gmail, YouTube, ChromeOS и т.д.). И Google просто вынуждена инвестировать в развитие веб-платформы.

С Microsoft всё тоже более-менее понятно. Её платформа Windows Phone умерла. Никто не хотел писать приложения под эту платформу, когда есть Android и iOS. Нужно что-то кроссплатформенное.

После того, как Microsoft Edge переехал на Chromium, Chromium получил доминирующее положение в вебе. Почему это плохо: medium.com/samsung-intern…

Пользуясь доминантным положением, Google ни раз была замечена в пропихивании стандартов в вебе.

То есть, по сути, у пользователя есть выбор между Safari и Safari.

С одной стороны, если выйти на улицу и спросить первого встречного, нужно ли ему, например, Web USB API или Web HID API в вебе, он, скорее всего, ответит, что нет.

С другой стороны, Chromium заявляет, что не добавляет никакие API просто так от нечего делать (это, на самом деле, очень дорого!), на каждое API им поступают просьбы от пользователей, и в зависимости от количества таких просьб, они приоритезируют их: fugu-tracker.web.app

Разгадка кроется в том, кого понимать под "пользователями".

Кто эти пользователи, которые просят Web API? Разработчики! Конечным пользователям и бизнесу в целом всё равно, что под капотом у приложения, на каких технологиях оно написано. Им главное, чтобы оно хорошо работало, выполняло свою функцию, будь то нативное приложение или PWA.

PWA — это вообще про разработчиков и developer experience (DX).

Подумайте сами: основные идеи PWA были заложены инженерами, термин PWA был придуман инженером, PWA продвигаются DevRel'ами (от англ. Developer Relations — взаимодействие с разработчиками). Конечными пользователями технологии являются разработчики.

Это мы, как разработчики, хотим писать на веб-технологиях и иметь все эти API, как у других платформ, в веб-платформе. PWA — это инструмент разработчика.

Это объясняет различия в политике команд Google Chrome, Microsoft Edge и Samsung Internet, у которых есть целая армия DevRel'ов, которая собирает обратную связь и запросы от разработчиков, и команды Safari, которая больше сфокусирована на обычных конечных пользователях.

При этом нельзя отрицать пользу Project Fugu для конечных пользователей. Во время пандемии многие пользовались видеозвонками в браузере, но мало кто задумывался, что изначально веб представлял из себя набор отформатированных страничек и не имел доступа к камере и микрофону.

Так в чём же принципиальная разница между Web API для доступа к камере и микрофону и Web API для других аппаратных возможностей устройств (Bluetooth, USB, HID, NFC и т.д.)?