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

Progressive Web Applications

Progressive Web Application (PWA) — это веб-приложение, использующее современные возможности браузеров для предоставления пользовательского опыта, близкого к нативным (установленным) мобильным и десктопным приложениям. PWA сочетают в себе гибкость и доступность веб-сайтов (доступ по URL, индексация поисковыми системами) с функциями, традиционно присущими только установленному программному обеспечению: работа в офлайн-режиме, отправка push-уведомлений, доступ к некоторым аппаратным возможностям устройства и возможность добавления значка на главный экран.

История

Концепция PWA возникла как ответ на ограничения как веб-сайтов, так и нативных приложений. В 2015 году инженер Google Алекс Рассел ввёл термин «Progressive Web App», описав набор технологий, позволяющих веб-сайтам работать как приложения. Ключевым стимулом стало развитие Service Worker — скрипта, работающего в фоновом режиме и позволяющего перехватывать сетевые запросы, кэшировать ресурсы и реализовывать офлайн-функциональность.

В 2016 году Google, Microsoft и Mozilla начали активно продвигать PWA. Крупные сервисы, такие как Twitter (X), Pinterest, Spotify и Telegram, выпустили PWA-версии, что подтвердило жизнеспособность подхода. В 2018 году поддержка PWA была добавлена в браузеры на базе Chromium (включая Microsoft Edge), а позже — в Safari от Apple, хотя с некоторыми ограничениями (например, отсутствие полноценной поддержки push-уведомлений на iOS до 2023 года). В России PWA активно используются рядом сервисов, включая онлайн-кинотеатры и интернет-магазины, для снижения затрат на разработку отдельных мобильных приложений.

Ключевые технологии

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

Service Worker

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

  • Кэширование ресурсов (HTML, CSS, JavaScript, изображения) для работы без интернета.
  • Перехват и обработка сетевых запросов (например, возврат кэшированной версии при отсутствии сети).
  • Получение push-уведомлений от сервера.
  • Фоновая синхронизация данных (например, отправка формы после восстановления соединения).

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

Манифест веб-приложения

Манифест (файл manifest.json) — это JSON-файл, который сообщает браузеру, как приложение должно выглядеть и вести себя при установке на устройство. Он содержит:

  • name и short_name — название приложения.
  • iconsмассив иконок разных размеров для отображения на главном экране.
  • start_url — URL, который открывается при запуске.
  • display — режим отображения (например, standalone — без строки браузера, fullscreen — полноэкранный режим).
  • background_color и theme_color — цвета для загрузочного экрана и панели инструментов.

HTTPS

Для работы Service Worker и других функций PWA требуется безопасное соединение. Это гарантирует, что скрипты не были подменены при передаче.

Характеристики и критерии

Чтобы веб-приложение считалось Progressive Web Application, оно должно соответствовать ряду критериев, определённых Google:

  • Прогрессивность — работает в любом браузере, независимо от версии (с использованием прогрессивного улучшения).
  • Адаптивность — корректно отображается на всех устройствах (мобильные, планшеты, десктопы).
  • Независимость от сети — базовый функционал доступен офлайн или при нестабильном соединении.
  • Устанавливаемость — пользователь может добавить значок на главный экран устройства.
  • Обновляемость — приложение обновляется автоматически через Service Worker.
  • Безопасностьпередача данных только по HTTPS.
  • Индексируемость — содержимое доступно для поисковых систем (SEO-оптимизация).
  • Вовлечениеподдержка push-уведомлений для повторного привлечения пользователей.

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

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

  • Низкая стоимость разработки и поддержки — одно приложение работает на всех платформах (Windows, macOS, Android, iOS), не требуя создания отдельных версий для каждой операционной системы.
  • Отсутствие необходимости в магазинах приложений — пользователь устанавливает PWA напрямую с сайта, минуя модерацию App Store или Google Play (что упрощает распространение и обновление).
  • Малый размер — PWA весят значительно меньше нативных приложений (обычно от 1 до 10 МБ против 50–200 МБ).
  • Автоматическое обновление — пользователь всегда использует последнюю версию, так как Service Worker загружает обновления в фоне.
  • Офлайн-доступ — возможность работы без интернета для кэшированного контента.

Недостатки

  • Ограниченный доступ к аппаратным возможностям — PWA не могут использовать Bluetooth, NFC, USB, камеру в полном объёме (например, для видеозвонков), датчики движения (акселерометр) и некоторые другие функции, доступные нативным приложениям.
  • Зависимость от браузера — функциональность PWA может отличаться в разных браузерах и операционных системах. На iOS (Safari) до 2023 года не было поддержки push-уведомлений, а установка возможна только через меню «Поделиться».
  • Меньшая производительность в сложных сценариях — для графически интенсивных приложений (игры, 3D-моделирование) PWA уступают нативным решениям.
  • Сложность с монетизацией — встроенные покупки и подписки через магазины приложений (App Store, Google Play) для PWA реализовать сложнее, хотя существуют обходные пути (например, через веб-платежи).

Применение

PWA нашли применение в различных сферах:

  • Интернет-магазины и e-commerce — например, AliExpress, Flipkart, Ozon (частично). PWA позволяют повысить конверсию за счёт быстрой загрузки и офлайн-доступа к каталогу.
  • Медиа и новости — The Washington Post, BBC, Forbes используют PWA для доставки контента при плохом соединении.
  • Социальные сети и мессенджеры — Twitter Lite (X), Telegram (PWA-версия), Pinterest.
  • Образование и справка — Wikipedia (PWA-версия), Khan Academy.
  • Финансовые сервисы — некоторые банки и платежные системы (например, Paytm) используют PWA для мобильного банкинга.

Примеры реализации

  • Twitter Lite — одно из первых крупных PWA, запущенное в 2017 году. Приложение занимает менее 5 МБ, работает офлайн и отправляет push-уведомления. По данным Twitter, PWA увеличило количество страниц, просмотренных за сессию, на 65% и сократило потребление трафика на 70%.
  • Pinterest — после перехода на PWA компания зафиксировала рост времени, проведённого пользователями в приложении, на 40% и увеличение рекламной выручки на 44%.
  • Telegram — PWA-версия мессенджера (Telegram Web) предоставляет практически полный функционал настольной версии, включая отправку файлов, звонки и уведомления.

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

Технология PWA продолжает развиваться. Основные направления:

  • Расширение доступа к API — группы разработчиков браузеров (W3C) работают над добавлением API для работы с Bluetooth, NFC, USB, а также над улучшением поддержки камеры и микрофона.
  • Улучшение поддержки на iOS — с 2023 года Apple начала добавлять push-уведомления для PWA в Safari, что устраняет одно из главных ограничений платформы.
  • Интеграция с магазинами приложений — Google Play и Microsoft Store уже поддерживают публикацию PWA (через Trusted Web Activity или PWABuilder). Apple пока не разрешает размещение PWA в App Store, но обсуждается возможность добавления.
  • Улучшение производительности — технологии WebAssembly и WebGPU позволяют PWA приближаться по производительности к нативным приложениям в задачах, требующих вычислений (например, обработка изображений или видео).

Критика

Основные критические замечания в адрес PWA связаны с их ограниченной функциональностью по сравнению с нативными приложениями. Критики отмечают, что для сложных приложений (например, графических редакторов, игр или программ для видеомонтажа) PWA остаются непригодными. Также высказываются опасения по поводу безопасности: Service Worker, при неправильной реализации, может стать вектором для атак (например, XSS). Кроме того, зависимость от браузера означает, что пользователь не может получить доступ к PWA, если браузер не поддерживает необходимые технологии (например, старые версии Internet Explorer).

Источники

  • Google Developers. «Progressive Web Apps».
  • MDN Web Docs (Mozilla). «Progressive web apps».
  • W3C. «Web App Manifest».
  • Статья Алекса Рассела «Progressive Web Apps: Escaping Tabs Without Losing Our Soul» (2015).
  • Официальная документация Microsoft Edge по PWA.
  • Статья Forbes «How Progressive Web Apps Are Changing Mobile Commerce» (2020).

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

На главную BFOmetr →