Начать проект

Обсудим проект?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

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

PWA: веб-приложение, установленное на домашний экран телефона

«Сделайте нам PWA, это же дешевле приложения» — просьба, за которой стоит верное наблюдение и неверное ожидание. Дешевле действительно бывает, но набор возможностей на iPhone и на Android разный, и решение принимается не по цене, а по сценариям. Мы в Code Pilots делаем веб-продукты и кабинеты, в том числе как замену десктопным программам, — и обычно разговор начинается с того, что именно должно работать без интернета.

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

Главное отличие от приложения — не технология, а дистрибуция: обновления выходят мгновенно, публикация в сторах не нужна, установка происходит с вашего сайта.

Что такое PWA

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

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

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

Что даёт технически

Возможность Android iOS
Установка на домашний экран Да, с автоматическим предложением Да, но только вручную через меню браузера
Push-уведомления Да Да, начиная с iOS 16.4 и только для установленной версии
Работа офлайн Да Да, но кэш может быть вытеснен при нехватке места
Камера, галерея, файлы Да Да, с ограничениями по форматам
Геолокация в активном режиме Да Да
Фоновая синхронизация Да Нет
Публикация в магазине приложений Да, через доверенную связь с сайтом Нет
Доступ к Bluetooth, NFC, датчикам Частично Практически нет

Из таблицы следует практический вывод: сценарии, которым нужны фоновые процессы, работа с оборудованием или гарантированное хранение данных на устройстве, на iOS упираются в потолок. Всё остальное — каталог, кабинет, заказы, запись, внутренние инструменты — работает.

Возможности PWA: установка на экран, push-уведомления, работа офлайн, доступ к камере

iOS: что работает

Отдельная глава, потому что именно здесь разбиваются ожидания.

Push-уведомления есть. С версии 16.4 веб-приложение может присылать уведомления — но только если пользователь добавил его на домашний экран. Открытая вкладка браузера уведомления не получает, даже если разрешение выдано.

Установка только вручную. Автоматического предложения «установить приложение», как на Android, нет: пользователь должен нажать «Поделиться» и выбрать «На экран „Домой“». Это заметно снижает долю установок, поэтому подсказку рисуют внутри интерфейса.

Кэш могут вытеснить. Safari очищает данные редко используемых сайтов, когда на устройстве заканчивается место. Есть механизм запроса постоянного хранения, но опираться на него как на гарантию нельзя: критичные данные должны переживать очистку и восстанавливаться с сервера.

Фоновой синхронизации нет. Отложить отправку данных и дождаться сети «в фоне» не получится — синхронизация произойдёт, когда пользователь снова откроет приложение.

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

Разница между Android и iOS в PWA — это не мелкий нюанс, а половина вашей аудитории, которая увидит другой продукт.

Дистрибуция без сторов

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

Установка по ссылке. Пользователь заходит на сайт и добавляет приложение на экран. Нет модерации, нет ожидания ревью, нет требований магазина к содержанию.

Обновления мгновенные. Новая версия появляется у всех при следующем открытии. Не нужно ждать, пока пользователи обновятся, и поддерживать три версии одновременно.

Нет комиссии магазина на продажу цифровых товаров, потому что оплата идёт обычными веб-платежами.

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

Для российских компаний добавляется ещё один аргумент: дистрибуция не зависит от политики магазинов и от того, доступно ли приложение конкретному пользователю в его сторе. Ссылка работает всегда.

Офлайн и кэш

«Работает офлайн» — обещание, за которым стоит конкретная инженерная работа, и её объём зависит от сценария.

Кэш оболочки. Интерфейс и статика сохраняются при первом визите — приложение открывается мгновенно и без сети показывает каркас. Самый дешёвый уровень.

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

Офлайн-ввод с синхронизацией. Самый дорогой уровень: действия сохраняются на устройстве и отправляются при появлении сети, с разрешением конфликтов. Нужен складу, полевым сотрудникам, приёмке.

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

Где PWA выигрывает

Есть сценарии, где такой формат объективно удобнее приложения.

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

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

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

Внутренние инструменты. Об этом — отдельно ниже.

Продукты, где важна ссылка. Всё, что распространяется через рассылки, QR-коды, чаты и рекламу: переход открывает сразу нужный экран, а не карточку в магазине.

Корпоративные сценарии

Самая недооценённая зона: там, где ограничения iOS не мешают, а отсутствие магазинов помогает.

Замена десктопной программе. Инструмент для сотрудников, который открывается в браузере на любой машине и не требует установки и обновления на каждом рабочем месте. Для нас это стандартный ответ на запрос «нужна программа под Windows»: веб-продукт с офлайн-режимом решает ту же задачу дешевле и обновляется централизованно.

Склад и полевые сотрудники. Приёмка, инвентаризация, отгрузка, наряды. Сканирование штрихкодов работает через камеру, данные сохраняются локально и отправляются при появлении сети. Для тяжёлых складских сценариев с промышленными терминалами всё же берут нативное приложение, но для магазинов, кафе и небольших складов PWA закрывает задачу.

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

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

Соберём инструмент, который ставится по ссылке

Работа офлайн, сканирование через камеру, синхронизация при появлении сети и обновления без релизов — на любом устройстве сотрудника.

Обсудить проект

Когда PWA не подходит

Честный список, чтобы не пришлось переделывать через полгода.

Фоновая работа. Отслеживание маршрута курьера, постоянный сбор геолокации, работа с уведомлениями при закрытом приложении на iOS.

Оборудование. Bluetooth-принтеры и весы, NFC-метки, промышленные терминалы сбора данных, специфические датчики.

Тяжёлая графика и вычисления. Игры, 3D-визуализация, обработка видео на устройстве.

Продажа цифрового контента. Подписки и внутренние покупки, которые по правилам магазинов должны проходить через их платёжные механизмы.

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

PWA перестаёт быть хорошей идеей ровно там, где начинается фоновая работа и оборудование. Всё остальное она закрывает.

Сравнение с приложением

Критерий PWA Кроссплатформа Нативное
Срок первой версии Недели 2–3 месяца От 3 месяцев на платформу
Стоимость Ниже Средняя Выше всего
Возможности устройства Ограничены, особенно на iOS Почти полные Полные
Дистрибуция Ссылка, без модерации Магазины приложений Магазины приложений
Обновления Мгновенные для всех Через магазин Через магазин
Ощущение приложения Близко на Android, слабее на iOS Неотличимо Эталон

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

Часто разумна связка: PWA как быстрый вход для всех и приложение для активной аудитории. Бэкенд при этом один, и это основная экономия.

PWA, кроссплатформенное и нативное приложение: срок первой версии, возможности устройства, дистрибуция и обновления

Скорость и поиск

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

Веб-версия индексируется поисковиками, на неё ведёт контекст и ссылки из соцсетей, ей можно поделиться в мессенджере одним касанием. Магазинное приложение живёт своей жизнью: продвигается через карточку и рекламу, а из поиска на него попасть нельзя.

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

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

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

Как устроен проект

Порядок работ отличается от обычного веб-проекта в трёх местах, и все три часто забывают заложить в план.

Аудит текущей версии. Если веб-продукт уже есть, начинают с проверки: скорость первой загрузки, структура запросов, что можно кэшировать. Часто на этом шаге выясняется, что половина эффекта даст обычная оптимизация, а не PWA.

Оболочка и кэш-стратегии. Манифест, иконки, стартовый экран, правила кэширования по типам данных: что берём из кэша сразу, что обновляем в фоне, что всегда запрашиваем с сервера.

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

Установка и подсказки. Экран или баннер, объясняющий, как добавить приложение на домашний экран, с разными инструкциями для Android и iOS.

Тестирование на устройствах. Реальные телефоны, разные версии систем, режим авиа, слабая сеть. Эмулятор поведение сервис-воркера и вытеснение кэша не воспроизводит.

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

Сколько стоит

Стоимость определяется не «форматом», а составом сценариев: офлайн-ввод с синхронизацией дороже, чем кэш каталога, а интеграции — дороже интерфейсов.

По нашим работам: PWA — от 1 млн ₽, в том числе как замена десктопной программе; веб-продукт с кабинетом — от 1 млн ₽; мобильное приложение на кроссплатформе — от 1,8 млн ₽; отдельная интеграция с учётной системой или оборудованием — от 150 тыс. до 1,5 млн ₽. Точная цифра зависит от сценариев и устройств: оценка проекта бесплатная.

Прикинуть бюджет можно заранее — бесплатный калькулятор оценки собирает вилку по составу работ за несколько минут.

Посчитаем ваш вариант

Опишите сценарии и устройства — вернём смету, срок и честный ответ, где хватит PWA, а где нужно полноценное приложение.

Получить консультацию

Ошибки

Обещают «как приложение» на iPhone. Ожидания рисуются по Android, а половина аудитории видит другую картину — с ручной установкой и без фоновой работы.

Не объясняют установку. Пользователь не знает, что сервис можно поставить на экран: без подсказки в интерфейсе доля установок остаётся близкой к нулю.

Считают офлайн бесплатным. Кэш оболочки делается за дни, полноценная офлайн-работа с синхронизацией — за недели, и это отдельная строка сметы.

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

Не проверяют на реальных устройствах. Поведение отличается между версиями систем и браузерами; эмулятор этого не показывает.

С чего начать

Первое — выписать сценарии и отметить, какие из них должны работать без сети и в фоне. Если фоновых нет, PWA почти наверняка подойдёт.

Второе — посмотреть на распределение аудитории по платформам. Если больше половины пользователей на iPhone и вам критичны уведомления, ожидания нужно корректировать сразу.

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

С чего начать: выписать сценарии и офлайн-требования, посмотреть распределение по платформам, проверить готовность веб-версии

Обсудим ваш продукт?

Разберём сценарии, платформы и офлайн-требования, оценим объём работ. Оценка бесплатная.

Обсудить проект

Часто задаваемые вопросы

Да, но с ограничениями. Приложение устанавливается на домашний экран вручную через меню «Поделиться», push-уведомления работают начиная с iOS 16.4 и только для установленной версии, фоновой синхронизации нет, а кэш может быть очищен при нехватке места на устройстве. Для каталогов, кабинетов, записи и внутренних инструментов этого достаточно; для сценариев с фоновой работой — нет.

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

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

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

От 1 млн ₽; итог зависит от числа сценариев, глубины офлайн-режима и количества интеграций. Если веб-версия продукта уже есть, доведение её до PWA — вопрос недель и заметно меньшей суммы. Оценка бесплатная.

Разработка с Code Pilots

Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты со сложной бизнес-логикой, интеграциями и высокими нагрузками. PWA для нас — рабочий инструмент в двух ситуациях: когда нужен быстрый мобильный доступ без установки и когда компании нужна замена десктопной программе для сотрудников.

Что делаем: веб-продукт с офлайн-режимом и синхронизацией, кабинеты и витрины, инструменты для склада и торгового зала, интеграции с учётными системами. Настольные приложения на Electron не разрабатываем — вместо них предлагаем PWA и объясняем, где проходит граница возможностей.

Внутри — аналитики, дизайнеры, frontend- и backend-разработчики, мобильная команда, QA и DevOps, middle+ и senior. Опишите сценарии и распределение аудитории по платформам — по ним сразу видно, хватит ли вам PWA. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success