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

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

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

История

Идея наделения веб-страниц возможностями настольных и мобильных приложений существовала задолго до появления термина PWA. В 2008 году Mozilla продвигала концепцию «Open Web Apps», а стандарт Service Workers, ставший техническим фундаментом PWA, начал разрабатываться в 2013 году в рамках проекта Chrome. В июне 2015 года на конференции Google I/O термин «Progressive Web App» был официально представлен как маркетинговое обозначение для сайтов, использующих новый набор веб-технологий. Ключевым событием стало появление манифеста веб-приложения (Web App Manifest) и стандарта Service Workers, которые позволили браузерам кэшировать ресурсы и управлять фоновой работой приложения.

Технологическая основа

PWA строится на нескольких ключевых стандартах:

  • Web App Manifest — JSON-файл, описывающий свойства приложения: имя, иконки, цветовую тему, режим отображения (полноэкранный, автономный, стандартный). Именно он определяет, как приложение будет выглядеть после установки на рабочий стол.
  • Service Workers — скрипты, работающие в фоновом потоке браузера, отдельно от основного потока страницы. Они перехватывают сетевые запросы, позволяют кэшировать ресурсы и обслуживать запросы из кэша при отсутствии соединения.
  • HTTPS — все PWA обязаны работать по защищённому протоколу, что является обязательным требованием для использования Service Workers.
  • Web Push API — механизм отправки push-уведомлений от сервера приложения к пользователю, даже когда приложение закрыто.

Ключевые свойства

PWA характеризуются рядом прогрессивных свойств (отсюда и название «прогрессивное»):

  1. Установаемость — пользователь может добавить приложение на рабочий стол или в меню «Пуск» без посещения магазина приложений.
  2. Работа офлайн — за счёт кэширования ресурсов приложение функционирует при отсутствии сети.
  3. Адаптивность — интерфейс подстраивается под любой размер экрана.
  4. Безопасность — обязательное использование HTTPS.
  5. Автономность — приложение запускается как отдельная программа, без адресной строки браузера.

Поддержка браузерами

Наиболее полно PWA поддерживают браузеры на движке Chromium: Google Chrome, Microsoft Edge, Opera, Samsung Internet. В браузере Safari поддержка появилась постепенно: начиная с iOS 11.3 стала доступна установка PWA на устройства Apple, однако функциональность (push-уведомления, работа в фоне) была ограничена. В браузере Firefox поддержка Service Workers реализована, но установка приложений на десктопе долгое время отсутствовала и была добавлена позже.

Примеры использования

PWA активно применяются крупными компаниями. Среди известных примеров:

  • Twitter Lite — облегчённая версия Twitter, созданная как PWA для рынков с нестабильным интернетом.
  • Pinterest — перешёл на PWA в 2017 году, увеличив время сессии и количество регистраций.
  • Starbucks — разработала PWA для заказа кофе, которая работает офлайн.
  • Telegram Web — веб-версия мессенджера, устанавливаемая как приложение.
  • Яндекс.Браузер и Сбербанк — российские компании также внедряли PWA-решения.

Преимущества и ограничения

К достоинствам PWA относятся: отсутствие необходимости публикации в магазинах приложений, единая кодовая база для всех платформ, быстрое обновление, меньший объём по сравнению с нативными приложениями (что критично для рынков с ограниченным интернетом).

Ограничения включают: меньший доступ к системным API по сравнению с нативной разработкой (камера, Bluetooth, NFC работают не на всех платформах), отсутствие в каталогах App Store и Google Play (хотя Google в 2020 году запустил программу Google Play Store для PWA), а также неравномерную поддержку со стороны Apple. На iOS push-уведомления для PWA стали доступны только с iOS 16.4 в 2023 году.

Роль в России

В российской веб-разработке PWA получили распространение в условиях санкционных ограничений и оттока зарубежных сервисов. После ухода ряда иностранных компаний в 2022 году российские разработчики активно создавали PWA-аналоги зарубежных приложений, поскольку такой подход позволяет быстро вывести продукт на обе мобильные платформы без затрат на публикацию в магазинах.

Источники:

  • Фрэнсис Беррман, Google Developers Blog: «Progressive Web Apps: Escaping the Tabs without Losing Our Soul» (2015)
  • MDN Web Docs, Mozilla: разделы о Service Workers и Web App Manifest
  • W3C: спецификация Web Application Manifest
  • Google Developers: руководство по Progressive Web Apps
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru