Открыть сервис

Прогрессивные веб-приложения

Прогрессивные веб-приложения (англ. Progressive Web Apps, PWA) — это тип прикладного программного обеспечения, разрабатываемого с использованием стандартных веб-технологий (HTML, CSS, JavaScript), но способного функционировать и выглядеть как нативные (родные) мобильные или десктопные приложения. Ключевой особенностью PWA является их способность работать в автономном режиме (офлайн), отправлять push-уведомления и устанавливаться на устройство пользователя без обращения к магазинам приложений (App Store, Google Play). Технология сочетает в себе преимущества веба (доступность по ссылке, отсутствие необходимости в установке из магазина) с возможностями, ранее доступными только нативным приложениям (доступ к аппаратным функциям устройства, работа без интернета, полноэкранный режим).

История

Концепция PWA была впервые предложена инженером Google Алеком Расселом в 2015 году. В июне того же года он опубликовал статью, в которой описал идею «прогрессивных веб-приложений», способных постепенно улучшать пользовательский опыт в зависимости от возможностей браузера. В 2016 году Microsoft, Google и Mozilla начали активно поддерживать стандарты, лежащие в основе PWA (Service Workers, Web App Manifest). Первыми крупными сайтами, внедрившими PWA, стали Twitter (в 2017 году), Pinterest и AliExpress. К 2020 году поддержка PWA была реализована во всех основных браузерах (Chrome, Firefox, Safari, Edge), хотя в iOS (Safari) функциональность оставалась ограниченной (например, отсутствовала поддержка push-уведомлений до версии iOS 16.4, выпущенной в 2023 году). В 2022 году Google объявила, что PWA могут быть опубликованы в Google Play через Trusted Web Activity, а Microsoft Store начал автоматически индексировать PWA.

Технические основы

PWA базируются на трёх ключевых технологических компонентах:

Service Worker

Service Worker — это скрипт, который браузер запускает в фоновом режиме отдельно от веб-страницы. Он выполняет функции прокси-сервера между клиентом и сетью. Основные возможности:

Service Worker не имеет прямого доступа к DOM (объектной модели документа) и работает только через протокол HTTPS (для обеспечения безопасности).

Web App Manifest

Web App Manifest — это JSON-файл, который содержит метаданные приложения: название, иконки разных размеров, цвет темы, ориентацию экрана, начальный URL. Он позволяет браузеру отображать диалог «Добавить на главный экран» (Add to Home Screen), после чего приложение запускается в отдельном окне без адресной строки браузера.

HTTPS

Обязательным требованием для работы Service Worker является использование защищённого соединения (HTTPS). Это исключает возможность атак типа «человек посередине» и гарантирует целостность кэшируемых данных.

Отличия от нативных приложений

ХарактеристикаPWAНативное приложение
УстановкаЧерез браузер, без магазинаЧерез App Store / Google Play
РазмерНесколько мегабайт (кэш)Десятки-сотни мегабайт
Доступ к устройствуОграничен (камера, геолокация, акселерометр)Полный (Bluetooth, NFC, файловая система)
Работа офлайнДа (при кэшировании)Да (встроенные данные)
ОбновленияАвтоматически (через Service Worker)Через магазин приложений
ПлатформаКроссплатформенность (один код)Раздельная разработка под iOS и Android

Преимущества и недостатки

Преимущества

Недостатки

Классификация PWA

По типу решаемых задач PWA можно разделить на несколько категорий:

Примеры крупных PWA

Критика и ограничения

Основная критика PWA связана с их ограниченной функциональностью на платформе iOS. Компания Apple долгое время не поддерживала ключевые возможности PWA (push-уведомления, фоновую синхронизацию), что приводило к фрагментации пользовательского опыта. В 2023 году с выходом iOS 16.4 поддержка push-уведомлений была добавлена, но остались ограничения: отсутствие доступа к Bluetooth, NFC (кроме чтения), а также невозможность установки PWA как приложения по умолчанию для определённых типов файлов. Кроме того, PWA не могут использовать некоторые API, доступные нативным приложениям, такие как WebGPU (для высокопроизводительной графики) или WebHID (для работы с человеко-машинными интерфейсами). В России PWA не получили широкого распространения среди крупных государственных сервисов из-за требований к обязательной установке через магазины приложений для подтверждения подлинности.

Перспективы развития

Развитие PWA продолжается в направлении расширения доступа к аппаратным функциям. В 2024 году рабочая группа W3C (Консорциум Всемирной паутины) активно разрабатывает спецификации для:

Ожидается, что по мере внедрения этих API PWA смогут конкурировать с нативными приложениями в таких областях, как умный дом, медицинские устройства и промышленная автоматизация. В России интерес к PWA проявляют в основном стартапы и малые интернет-магазины, стремящиеся снизить затраты на разработку и поддержку мобильных версий.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →