← Все статьи

PWA вместо мобильного приложения: когда сайту достаточно вести себя как апп

11.09.20267 мин чтения
Готовил · Проверил и отредактировал

Вам советуют сделать мобильное приложение. Клиенты сидят в телефонах, конкуренты что-то выпустили, а пользователи привыкли к иконкам на главном экране. Проблема одна: нормальное приложение стоит дорого, требует поддержки сразу на iOS и Android и совсем не гарантирует, что его установят. Большинство приложений малого бизнеса удаляют в первую неделю.

Есть промежуточный путь — PWA. Это не отдельная программа, а надстройка над сайтом, которая даёт пользователю почти то же самое: иконку на экране, работу без интернета и push-уведомления. Без магазина приложений, без двух разных команд разработчиков и без двойного бюджета на поддержку.

Что такое PWA простыми словами

PWA расшифровывается как Progressive Web App — прогрессивное веб-приложение. За этим названием стоит конкретная технология: обычный сайт, к которому добавили несколько файлов, позволяющих браузеру «установить» его на телефон почти как настоящее приложение.

Когда пользователь заходит на такой сайт с мобильного, браузер предлагает добавить его на главный экран. После этого появляется иконка — как у обычного приложения. Сайт открывается в отдельном окне без адресной строки, часть страниц работает без интернета, и можно получать push-уведомления.

С технической стороны PWA держится на трёх компонентах. Файл манифеста: JSON-описание приложения с названием, иконками и цветовой темой. Сервис-воркер: фоновый JavaScript-скрипт, который кеширует страницы и управляет уведомлениями. И HTTPS: без защищённого соединения сервис-воркер не запустится.

Принципиально важно: всё это существует поверх вашего сайта, а не вместо него. Пользователь, который заходит с компьютера, ничего особенного не замечает. Тот, кто заходит с телефона, получает предложение «установить приложение». Одна кодовая база, один проект, два способа доступа.

Что умеет PWA — и чего не умеет

Список возможностей уже достаточно широк для большинства задач малого бизнеса.

  • Иконка на главном экране. Пользователь нажимает на неё, как на любое другое приложение. Браузерная строка не показывается.
  • Полноэкранный режим. Интерфейс занимает весь экран — нет вкладок, кнопок назад браузера и других навигационных элементов браузера. Выглядит как нативное приложение.
  • Офлайн-режим. Сервис-воркер кеширует страницы при первом посещении. Если интернет пропал, пользователь видит закешированную версию, а не белый экран с ошибкой.
  • Push-уведомления. На Android работают полноценно. На iOS поддержка появилась в версии 16.4 для установленных PWA, с рядом ограничений по сравнению с нативными приложениями.
  • Быстрая загрузка при повторном открытии. Закешированные ресурсы отдаются мгновенно, не дожидаясь сети.

Ограничения тоже есть, и их стоит знать заранее.

  • Отсутствие в магазинах приложений. PWA нет в App Store и Google Play по умолчанию. Пользователи не найдут вас через поиск в магазине.
  • Ограниченный доступ к устройству. Нет фоновой геолокации, ограниченная работа с Bluetooth и NFC, нет полного доступа к файловой системе.
  • Разные возможности на iOS и Android. Chrome на Android поддерживает PWA полнее, чем Safari на iPhone. На iOS некоторые функции появились позже и работают с нюансами.
ВозможностьPWAНативное приложениеМобильный сайт
Иконка на главном экранеДа, через браузерДа, через магазинНет
Офлайн-режимДаДаНет
Push-уведомленияДа (iOS: с ограничениями)Да, полноценныеНет
Поиск в магазине приложенийНетДаНет
Доступ к камере, геолокацииЧастичныйПолныйБазовый
Разработка для iOS и AndroidОдна кодовая базаДва отдельных проектаОдна кодовая база

Кому подходит PWA

PWA хорошо работает там, где клиенты возвращаются. Логика простая: установку на экран нужно заслужить — пользователь соглашается на неё только если видит смысл держать ваш сервис «под рукой» постоянно.

Доставка и повторные заказы

Пиццерия, цветочный магазин, аптека, продуктовый — всё, куда заказывают снова и снова. Иконка на экране сокращает путь от «хочу» до «заказал» до двух тапов. Не надо искать сайт в браузере, не надо вспоминать адрес. Для повторного бизнеса это ощутимое преимущество.

Запись на услуги

Салон красоты, стоматология, автосервис, частная клиника. Клиент записался, получил push-напоминание накануне, пришёл вовремя. То же, что отдельное приложение для записи, но без затрат на разработку под две платформы. Если у вас уже есть онлайн-запись на сайте, PWA добавляет к ней уведомления и удобный доступ с телефона — без переписывания системы с нуля.

Интернет-магазины с постоянными покупателями

Если человек покупает у вас регулярно, иконка на главном экране — это фактически постоянное место в его жизни. Он открывает телефон и видит вас рядом с банком и мессенджером. Особенно ценно для нишевых магазинов, где аудитория лояльная и небольшая: удержание стоит дешевле привлечения, и PWA помогает его укрепить.

Сервисы с личным кабинетом

Фитнес-клубы, онлайн-школы, подписочные сервисы. Там, где пользователь возвращается за своим прогрессом, расписанием или учебным контентом, удобный доступ с телефона прямо влияет на вовлечённость. Напоминания о тренировке или новом уроке приходят как обычное уведомление — без необходимости заходить в почту или открывать браузер.

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

Сколько стоит по сравнению с нативным приложением

Нативное приложение — это два отдельных проекта. iOS-разработчик пишет один, Android-разработчик пишет другой. Потом оба нужно поддерживать: каждое обновление операционной системы может что-то сломать, каждая новая функция реализуется дважды. Прибавьте ежегодный взнос за аккаунт разработчика в каждом магазине и время на прохождение модерации при каждом обновлении.

PWA — надстройка над существующим сайтом. Если сайт уже есть и сделан нормально (HTTPS, адаптивная вёрстка, приемлемая скорость загрузки), добавить PWA-функциональность — это задача для одного разработчика. Манифест пишется один раз, сервис-воркер настраивается под ваши страницы, и готово.

Разница в затратах зависит от проекта, но принцип универсален: PWA не требует двух команд, двух кодовых баз и двух магазинных аккаунтов. Стоимость поддержки тоже принципиально ниже — изменения вносятся в один сайт и сразу отражаются у всех пользователей, включая тех, кто «установил» приложение.

Ещё одно практическое отличие: обновления нативного приложения должны пройти модерацию в магазине. Это занимает от нескольких часов до нескольких дней. PWA обновляется мгновенно — пользователь просто открывает его и получает новую версию без каких-либо действий с его стороны.

Когда PWA не заменит нативное приложение

Есть задачи, где нативное приложение незаменимо. Не потому что PWA плох, а потому что браузер просто не имеет доступа к нужным возможностям устройства.

Сложная работа с камерой

Браузер предоставляет базовый доступ к камере: сфотографировать, снять видео. Но AR-фильтры, сканирование документов с распознаванием текста в реальном времени, примерка товаров через дополненную реальность: всё это зона нативных SDK. Такие сценарии требуют глубокой работы с видеопотоком, и браузер здесь не справляется.

Фоновая геолокация

Если приложению нужно знать, где находится пользователь, когда он не смотрит в экран (трекинг маршрута курьера, навигация, мониторинг перемещений), PWA для этого не подходит. Браузер отдаёт координаты только когда страница активна и открыта на переднем плане. Для доставки с отслеживанием в реальном времени нужно нативное приложение.

Bluetooth и NFC

Управление умными устройствами, оплата через NFC, считывание карт лояльности: всё, что требует устойчивого фонового соединения через беспроводные интерфейсы. Веб-Bluetooth существует, но поддерживается не везде и с ограничениями. Там, где точная работа с такими технологиями критична, PWA ненадёжен.

Магазин как канал привлечения

Если значительная часть клиентов ищет приложения через поиск в App Store или Google Play, PWA там не появится. Существуют технические способы упаковать PWA в оболочку и опубликовать в магазине, но это усложняет проект и снижает часть преимуществ PWA. Если магазин является важным каналом для вашей аудитории, лучше заложить нативную разработку изначально.

iOS — отдельный разговор

Safari на iPhone поддерживает PWA с ограничениями: часть возможностей появилась позже, чем в Android-браузерах, и работает иначе. Push-уведомления для установленных PWA появились на iOS только в версии 16.4 — то есть часть аудитории со старыми версиями системы их не получит. Если ваша аудитория преимущественно iPhone и уведомления критически важны, этот момент стоит изучить до начала разработки.

С чего начать, если сайт уже есть

PWA-конверсия сайта — это технический проект, но несложный. Вот минимальный набор требований, без которых PWA не заработает.

Требования к сайту

  • HTTPS. Без шифрования сервис-воркер не запустится. Если сайт ещё работает по HTTP, это нужно исправить в первую очередь, причём независимо от PWA: без HTTPS сайт теряет позиции в поиске и получает пометку «небезопасно» в браузере.
  • Адаптивная вёрстка. Если сайт плохо выглядит на телефоне, браузер не предложит его установить. Сначала нужна мобильная версия сайта, потом PWA.
  • Приемлемая скорость загрузки. Сервис-воркер улучшает скорость повторных открытий, но первая загрузка зависит от оптимизации самого сайта. Если он грузится медленно, PWA это не исправит, только замаскирует при повторных заходах.

Что попросить у разработчика

  1. Написать web app manifest: название приложения, иконки разных размеров, цветовая тема, режим отображения (полноэкранный или с браузерными элементами управления).
  2. Добавить сервис-воркер с кешированием нужных страниц. Важно определить, что кешировать: главная, каталог, страница записи или вообще всё. Полное кеширование увеличивает объём хранилища на телефоне.
  3. Настроить стратегию кеширования: что работает офлайн из кеша, что всегда обновляется из сети. Для магазина это особенно важно: цены и наличие должны подтягиваться из сети, а не отдаваться из устаревшего кеша.
  4. Реализовать баннер «Добавить на экран» или подготовить инструкцию для пользователей iOS, где этот шаг нужно сделать вручную через меню браузера.
  5. Если нужны push-уведомления: настроить push-сервис (Web Push API), согласование с пользователем и триггеры отправки.

Простая проверка готовности вашего сайта: откройте его в Chrome на Android, нажмите «три точки» в правом верхнем углу и посмотрите, есть ли пункт «Добавить на главный экран». Если есть — базовые требования уже соблюдены, PWA можно начать строить поверх текущей версии. Если нет — нужно разобраться, чего не хватает, прежде чем двигаться дальше.

Тем, кто рассматривает PWA как одну из альтернатив и хочет сравнить с другими подходами, — посмотрите на  Telegram Mini Apps. Это другая логика: мини-приложение внутри мессенджера, где аудитория уже есть, но пользователь остаётся в Telegram, а не на вашем сайте. У каждого подхода своя аудитория и свои сценарии.

Для бизнеса, которому важно удерживать клиентов и напоминать о себе в нужный момент, PWA — рабочий инструмент. Не замена нативному приложению в каждом случае, но разумная альтернатива там, где полноценная разработка под две платформы избыточна.

Коротко о главном

  • PWA — это надстройка над существующим сайтом, которая даёт пользователю иконку на главном экране, частичный офлайн-режим и push-уведомления без магазина приложений.
  • Технически PWA держится на трёх вещах: файл манифеста, сервис-воркер и HTTPS. Без последнего ничего не запустится.
  • Хорошо работает там, где клиенты возвращаются: доставка, запись на услуги, интернет-магазины с постоянными покупателями, сервисы с личным кабинетом.
  • Дешевле нативного приложения, потому что одна кодовая база вместо двух, нет взносов за аккаунты разработчика, обновления выходят мгновенно без модерации.
  • Не заменит нативное приложение, если нужна фоновая геолокация, сложная работа с камерой, Bluetooth/NFC или магазин как основной канал привлечения клиентов.
  • Для старта нужны: HTTPS, адаптивная вёрстка и нормальная скорость загрузки. Всё остальное — манифест и сервис-воркер — пишет разработчик поверх текущего сайта.