Короткий ответ: дерево выбора
Выбирайте PWA, когда важны мгновенный вход по ссылке, поиск, единая веб-версия и быстрые обновления; ключевой сценарий допускает браузерные ограничения и предсказуемо работает на целевых устройствах. Выбирайте мобильное приложение, когда ценность зависит от глубоких системных API, устойчивого платформенного UX, магазинной дистрибуции или фоновых режимов, которые веб не обещает.
Начните с действия, а не с технологии: что человек делает повторно, где он находится, какая сеть доступна, что случится при блокировке экрана и какой отказ недопустим. Один критичный запрет важнее длинного списка удобных функций. Если камера нужна лишь для фото документа, PWA может справиться. Если устройство должно непрерывно обмениваться данными по Bluetooth в фоне, слова «камера и Bluetooth поддерживаются» ничего не доказывают.
Три развилки
Ссылка важнее установки?
PWA получает преимущество.
Фон или hardware — ядро?
Проверяйте app первым.
Требуется и поиск, и глубокий app UX?
Рассмотрите связку.
Действие редкое?
Возможно, достаточно сайта.
Что PWA означает сегодня
PWA — веб-приложение, которое использует возможности браузера и операционной системы, чтобы ощущаться ближе к установленному продукту. Обычно это защищённый HTTPS-сайт с manifest для имени, иконок и режима запуска, а также service worker для управления запросами, кэшем и уведомлениями. Но ярлык PWA не является сертификатом качества. Manifest не создаёт offline, service worker не придумывает правила синхронизации, а иконка не гарантирует возвращаемость.
Граница стала менее бинарной. В iOS 26 Apple расширила поведение сайтов, добавленных на экран Домой: больше таких сайтов по умолчанию открываются как web apps, а пользователь может выбрать открытие в браузере. Это делает Home Screen-сценарий шире, но не превращает веб в native и не отменяет различия браузеров, версий ОС и политик хранения. Поэтому спецификацию пишут через наблюдаемое поведение: «после повторного запуска доступен последний подтверждённый заказ», а не «у нас PWA».
Установка и дистрибуция: ссылка против витрины
PWA можно открыть из поиска, QR-кода, письма или мессенджера без магазина. Это сильный путь для первого касания: человек сразу видит товар, расчёт или личный кабинет. Установка зависит от браузера и платформы: подсказка, меню и терминология отличаются. Нельзя строить критичную воронку на предположении, что каждый увидит одинаковый системный баннер.
App требует перехода в магазин, загрузки и первого запуска, зато получает привычную карточку, отзывы, обновления и управляемое присутствие в экосистеме. Магазин полезен, если аудитория ищет продукт там, доверяет установке или корпоративное управление требует пакет. Но публикация — операционный процесс: аккаунты, подписи, privacy-данные, review, версии и ответы на замечания.
Допустим, сервис нужен гостю мероприятия один раз: QR → расписание → маршрут. Установка app добавляет трение. Для ежедневной работы сотрудника с обязательным управлением устройствами пакет приложения может быть удобнее ссылки. Решение определяет канал приобретения пользователя, а не престиж иконки.
Offline, push и background: три разные задачи
Offline всегда нужно реализовать. Команда выбирает, что кэшируется, какие данные допустимо хранить, можно ли создавать действия без сети, как устроена очередь и кто побеждает при конфликте. «Страница открылась в авиарежиме» — слабая проверка. Надо изменить запись, закрыть приложение, вернуть сеть, повторить запрос и убедиться, что операция не потерялась и не продублировалась.
На iOS и iPadOS 16.4+ web apps, добавленные на экран Домой, поддерживают Web Push. Разрешение запрашивают после явного действия пользователя — например, нажатия «Включить уведомления», а не сразу при входе. Web Push использует привычную модель разрешений и может показывать уведомления, однако silent push нет: уведомление нельзя считать тайным будильником для произвольного обновления данных.
Фоновое расписание веб-задач не гарантировано. Браузер и ОС ограничивают выполнение ради батареи, памяти и приватности; вкладку или web app могут остановить. Native тоже живёт в платформенных лимитах, но имеет больше специализированных режимов — геолокацию, аудио, фоновые передачи и планировщики — с отдельными разрешениями и правилами. Если бизнес-процесс зависит от запуска ровно в момент X, проектируйте серверное событие и допустимый запасной путь, а не надейтесь на вечный процесс на телефоне.
Практическое правило: push сообщает человеку; синхронизация приводит данные к согласованному состоянию; background выполняет ограниченную работу. Не объединяйте их одним требованием «работает в фоне».
Hardware и различия платформ
Веб хорошо работает с камерой, микрофоном, геолокацией, файлами и частью других API — при HTTPS, разрешениях и поддержке конкретного браузера. Но одинаковое название функции не означает одинаковую глубину. Web Bluetooth остаётся ограниченным и не является универсальной возможностью всех популярных браузеров, особенно в экосистеме Apple. NFC, USB, контакты, фоновые датчики, системные виджеты, CarPlay и Android Auto требуют отдельной проверки; иногда веб-аналога нужного сценария нет.
Составьте карту «действие → API → браузер → ОС → устройство». Проверяйте отказ разрешения, повторный запрос, блокировку экрана, энергосбережение, входящий звонок и возврат из системного окна. Для сканирования разового QR веб может быть достаточен. Для медицинского датчика с длительной Bluetooth-сессией и обязательной доставкой измерений риск настолько выше, что нужен app-прототип и документация производителя оборудования.
Магазины, review и обнаружение
PWA живёт в веб-дистрибуции. Это снимает обязательную проверку каждого веб-релиза магазином, но ответственность за безопасность, доступность и совместимость остаётся у владельца. App получает App Store и Google Play, однако правила могут влиять на аккаунт, контент, платежи и сроки выхода версии.
Иногда веб-продукт заворачивают в native-оболочку, чтобы попасть в магазин или подключить несколько API. Такие wrappers не запрещены автоматически. Но Apple применяет требование minimum functionality: продукт должен быть полезнее переупакованного сайта и соответствовать остальным правилам. Google Play также оценивает качество, политики и заявленное поведение. Оболочка не является обходом review и добавляет сборки, сертификаты, магазинные метаданные и тесты.
Discoverability тоже различается. PWA-страницы могут находиться поиском и открываться на нужном экране. Карточка app участвует в поиске магазина, рекомендациях и брендовых запросах, но содержимое приложения не становится автоматически индексируемым веб-контентом. Нужная дистрибуция может быть двойной: веб отвечает за знакомство, app — за частое использование.
SEO, deep links и привлечение
У PWA есть адреса, поэтому продукт может получить органический вход — если важные страницы доступны поисковому роботу, сервер отдаёт осмысленный HTML, canonical корректен, а авторизация не закрывает всё содержимое. PWA сама по себе не улучшает SEO: тяжёлый клиентский рендеринг, дубли URL и медленная загрузка способны ухудшить результат.
Deep link должен вести не просто «в продукт», а в конкретный заказ, товар или шаг. В вебе это обычный URL. В app Universal Links и Android App Links связывают домен с установленным приложением, а при отсутствии установки нужен разумный fallback. Проверьте ссылки из почты, мессенджеров, рекламы и QR, авторизацию после перехода и сохранение целевого экрана.
Платежи и подписки
В PWA обычно применяются веб-платежи и правила платёжного провайдера. Это удобно для общего checkout, но доступные методы зависят от страны, браузера, банка и типа товара. В app способ оплаты связан ещё и с правилами магазина: для цифрового контента и функций могут действовать требования платформенной покупки, исключения и региональные условия. Их проверяют по актуальным правилам до проектирования экономики.
Не выбирайте канал только по комиссии. Посчитайте возвраты, чеки, налоги, подписку, восстановление покупки, семейный доступ, смену устройства, промокоды, поддержку и сверку с бухгалтерией. Физический товар, цифровая подписка и B2B-доступ — разные контуры. Прототип оплаты должен пройти на реальных аккаунтах в тестовой среде и показать, как сервер подтверждает право доступа, а не доверяет одному экрану успеха.
UX, производительность и доступность
Хорошая PWA не обязана копировать native. Её сила — знакомый веб-вход, адаптивность и общий контент. Но нужно убрать браузерные сюрпризы: скачки интерфейса, потерю введённых данных, конфликт жестов, неверную высоту экрана, медленное восстановление после выгрузки. App получает платформенные компоненты и инструменты, но тоже может быть медленным и недоступным при плохой реализации.
Проверяйте время до полезного действия, отклик после нажатия, слабую сеть, старое устройство и восстановление состояния. Доступность входит в сценарий: крупный шрифт, экранный диктор, внешняя клавиатура, контраст, фокус, подписи полей и сообщения об ошибках. Представьте, что одноразовый код пришёл во время заполнения формы. После возврата пользователь должен увидеть прежние данные и понять следующий шаг. Это требование важнее спора, каким стеком нарисована кнопка.
TCO: считать не код, а операционную систему продукта
Полная стоимость владения включает исследование, дизайн, frontend или приложения, сервер, offline-модель, аналитику, безопасность, QA, устройства, магазины, поддержку и обновления. PWA может сократить число доставляемых клиентов и выпускать веб-изменения без review, но требует кросс-браузерных тестов и аккуратной совместимости. App добавляет две платформы или кроссплатформенный слой, сборки и store operations, зато прямее решает часть hardware-задач.
Сравнивайте одинаковый объём на одном горизонте. В таблице должны быть первая версия, регулярные релизы, обновления ОС и браузеров, сторонние SDK, инциденты, контент, поддержка и возможная миграция. Не используйте вымышленный «процент экономии»: один сложный Bluetooth-модуль или две независимые платёжные схемы способны изменить расклад. Дешевле не тот вариант, где меньше исходных файлов, а тот, где главное действие поддерживается без хрупких обходов.
PWA + app и путь миграции
Выбор не обязан быть вечным и взаимоисключающим. PWA может привлекать пользователя из поиска, показывать каталог и проверять спрос; app — обслуживать частый персональный сценарий. Общими остаются API, модель данных, дизайн-токены, аналитические события и контент. Но общий backend не означает одинаковый интерфейс: каждый канал должен иметь ясную роль.
Миграцию планируют через триггеры. Например: подтверждён регулярный сценарий, появился обязательный системный API, web-ограничение стало причиной критичных отказов или магазин превратился в важный канал. Сохраняются серверные контракты и знания, но навигацию, локальные данные, уведомления, авторизацию и тесты часто приходится адаптировать. Обратный путь тоже возможен: редкие app-функции переводят в веб, если установка больше не даёт ценности.
Если вы выбираете не только между PWA и app, а между лендингом, корпоративным сайтом, интернет-магазином и приложением, используйте общий гид по форматам. Здесь граница строже: мы предполагаем, что интерактивный повторный сценарий уже существует, и разбираем только способ его доставки.
Device checklist: что проверить до договора
- Назовите одно главное действие и недопустимый отказ.
- Зафиксируйте модели устройств, версии ОС и браузеры реальной аудитории.
- Пройдите установку из каждого канала и повторный запуск.
- Отключите сеть до, во время и после изменения данных.
- Проверьте push после осознанного согласия и после долгого простоя.
- Заблокируйте экран; включите энергосбережение; выгрузите продукт из памяти.
- Откажите в разрешении камеры, геолокации или Bluetooth и восстановите его.
- Пройдите deep link без установки, после установки и после авторизации.
- Проверьте оплату, отмену, возврат и восстановление доступа.
- Включите крупный шрифт и экранный диктор, используйте внешнюю клавиатуру.
Результат проверки — не презентация, а журнал: устройство, версия, шаги, ожидаемое и фактическое поведение, критичность, владелец и решение. Если риск касается ядра, сделайте узкий технический прототип. Не стройте весь интерфейс, чтобы узнать, что критичный API недоступен.
Когда не нужны ни PWA, ни приложение
Представьте ежегодную подачу показаний или разовую заявку по ссылке из сообщения. Пользователь не хочет устанавливать продукт, включать push и учиться навигации. Быстрый адаптивный сайт с сохранением черновика решает задачу честнее. PWA-функции добавят смысл лишь при повторном использовании или реальной потребности в offline.
Не нужен новый клиент и тогда, когда проблема находится в процессе: данные не готовы, статусы противоречат друг другу, сотрудники обрабатывают заявки вручную, а владельца продукта нет. Иконка не исправит интеграцию. Сначала стабилизируйте API, роли и бизнес-правила; затем станет видно, какой интерфейс нужен.
Официальные источники и дата проверки
Платформенные сведения проверены 30 июля 2026 года. Перед реализацией сверяйте текущие версии документации и правила целевых магазинов.
- WebKit: Web Push для Home Screen web apps в iOS/iPadOS 16.4.
- WebKit: поведение Home Screen web apps в Safari 26.
- web.dev: курс по PWA и MDN: Progressive Web Apps.
- MDN: ограниченная доступность Web Bluetooth.
- Apple App Review Guidelines, включая minimum functionality.
FAQ
Может ли PWA полностью заменить мобильное приложение?
Иногда да: если главный сценарий работает в браузере, не требует гарантированной фоновой работы и глубокого доступа к устройству, а вход по ссылке важнее магазина. Для Bluetooth-оборудования, сложной фоновой геолокации, системных виджетов или платформенных SDK чаще нужен app либо технический прототип.
Работает ли PWA без интернета?
Только если offline спроектирован и реализован. Service worker и хранилища браузера дают инструменты, но не делают продукт автономным автоматически. Нужно определить доступные без сети данные, очередь действий, разрешение конфликтов и понятное состояние синхронизации.
Работают ли push-уведомления PWA на iPhone?
Да. Начиная с iOS и iPadOS 16.4 веб-приложения, добавленные на экран Домой, поддерживают Web Push. Запрос разрешения должен следовать за явным действием пользователя. Это не silent push: доставка уведомления не гарантирует скрытое выполнение произвольной фоновой работы.
Можно ли опубликовать PWA в App Store или Google Play?
Веб-продукт можно упаковать в магазинную оболочку, но публикация создаёт отдельный контур сборки, правил, платежей, проверки и поддержки. Оболочки не запрещены автоматически, однако правила Apple о минимальной функциональности и другие требования магазина всё равно применяются.
Что дешевле в поддержке: PWA или приложение?
Ответ зависит от функций и каналов. PWA может упростить доставку обновлений и повторное использование веб-кода, но сохраняет тестирование браузеров, устройств, offline, push и серверной части. App добавляет сборки и магазины, зато может снизить цену сложных платформенных обходов.
Когда не нужны ни PWA, ни мобильное приложение?
Если действие редкое, короткое, приходит из поиска или сообщения и не требует установки, фона либо offline, достаточно быстрого адаптивного сайта. Сначала подтвердите повторный сценарий; иконка на экране сама по себе не создаёт возвращаемость.
Проверим формат на вашем критичном сценарии
Пришлите описание главного действия, каналы входа, целевые устройства, требования к offline, push, фону, hardware, оплате и магазинам. На первой встрече 13FOX соберёт карту ограничений, отделит подтверждённые возможности от неизвестных и обозначит проверки для технического прототипа. На выходе будет понятная рекомендация: PWA, app, связка или более простой сайт — без обещаний бюджета и результата до входных данных.