Progressive Web App — это сайт, который работает как нативное приложение: устанавливается на главный экран, работает офлайн, показывает push-уведомления. В 2026 году PWA — отличная альтернатива нативному приложению для многих кейсов.
Из чего технически состоит PWA
За словом PWA стоят три конкретные вещи, и их полезно знать, чтобы отличать настоящий PWA от «адаптивного сайта, который назвали приложением».
Первое — manifest.json: имя, иконки под все размеры, стартовый URL, режим отображения (standalone убирает адресную строку), цвета темы и сплэша. Без него браузер не предложит установку.
Второе — service worker, фоновый скрипт, который перехватывает сетевые запросы. Именно он даёт офлайн-режим и мгновенный повторный запуск: оболочка приложения берётся из кэша, а данные догружаются. Стратегия кэширования — главное инженерное решение в проекте: что отдавать из кэша сразу, что проверять по сети, что не кэшировать никогда (корзина, баланс, статус заказа).
Третье — HTTPS. Service worker работает только по защищённому соединению, исключение сделано лишь для localhost.
Преимущества PWA
- Не требует публикации в сторы
- Один код для всех платформ
- Установка в один клик из браузера
- SEO-индексация (в отличие от приложений)
- В 3-5 раз дешевле нативного приложения
Отсутствие сторов — не только про экономию. Это про скорость выпуска правок: критичный фикс выкатывается за минуты, без ожидания ревью Apple и без раскатки в Google Play. Для проектов, где цена ошибки высокая, а изменения частые, это весомее стоимости разработки.
Индексация тоже недооценена. Нативное приложение невидимо для поиска, PWA — обычный сайт, который собирает органический трафик и одновременно работает как приложение для вернувшихся. Одна кодовая база закрывает и привлечение, и удержание.
Ещё один практический плюс для Казахстана — вес. Нативное приложение это 30-80 МБ, PWA обычно укладывается в единицы мегабайт. На нестабильном мобильном интернете и на бюджетных Android-устройствах с забитой памятью это напрямую влияет на конверсию в установку.
Ограничения
- На iOS push-уведомления только с iOS 16.4+
- Нет интеграции с Apple Pay (только Web Payments)
- Hardware features ограничены
iOS остаётся главным ограничителем, и стоит знать детали. Push на iOS работают только после того, как пользователь добавил сайт на главный экран через «Поделиться → На экран "Домой"» — автоматического баннера установки, как в Chrome, там нет. Значит, нужно объяснять этот шаг внутри интерфейса, иначе установок почти не будет.
Второе ограничение iOS — очистка хранилища. Данные сайта, которым не пользовались несколько недель, система может удалить. Для PWA, установленного на главный экран, правило мягче, но полагаться на локальное хранилище как на единственный источник данных нельзя: состояние должно синхронизироваться с сервером.
Что действительно недоступно или работает частично: фоновая геолокация, точные и повторяющиеся локальные уведомления, Bluetooth и NFC на iOS, биометрия в привычном виде (есть WebAuthn, но это другой сценарий), доступ к контактам, работа в фоне по расписанию. Если сценарий бизнеса упирается хотя бы в один из этих пунктов — нужна разработка мобильного приложения, а не PWA.
Когда выбирать PWA
E-commerce, медиа, SaaS-продукты, новостные сайты, контентные проекты. Когда выбирать нативку: финтех, игры, сложные интеграции с устройством.
Более практичный критерий — как часто и зачем человек возвращается. PWA хорошо работает там, где основной вход всё равно из поиска или рекламы, а приложение нужно для повторных заходов: каталог с 300 позициями, доставка еды, запись на услуги, личный кабинет, внутренний портал для сотрудников. Пользователь пришёл на сайт, сделал заказ, ему предложили установить — цикл замкнулся без похода в стор.
Нативка обязательна, когда приложение — сам продукт, а не витрина: игры, финтех с требованиями безопасности и биометрией, логистика с фоновым треком водителя, всё, что живёт в фоне и в железе устройства.
Есть и третий путь, который в Казахстане часто оказывается разумнее обоих: Telegram Mini App. Если аудитория и так в Telegram, mini app снимает вопрос установки полностью — нет ни стора, ни инструкции «добавьте на главный экран».
Стоимость в ZoomApps
PWA от 380 000 ₸ за 3-5 недель. На 60% дешевле нативного приложения с похожим функционалом.
Для ориентира: нативное мобильное приложение в нашем прайсе начинается от 850 000 ₸. Разница объясняется просто — одна кодовая база вместо двух, отсутствие подготовки к публикации в двух сторах, отсутствие цикла ревью.
На что цена реагирует сильнее всего: количество экранов и состояний, глубина офлайн-режима (кэш каталога дешевле, чем офлайн-оформление заказа с последующей синхронизацией), интеграции с 1С, CRM и платёжными шлюзами, необходимость отдельной админки. Push-уведомления с сегментацией и сценариями — почти всегда отдельный блок работ.
Отдельная строка бюджета, о которой забывают, — платежи. Для Казахстана это интеграция с местным эквайрингом и Kaspi; web-оплата в PWA работает так же, как на обычном сайте, но требует настройки и тестового периода на стороне банка.
Как проверить, что вам сделали PWA
- Откройте сайт в Chrome на Android — должно появиться предложение установки, иконка и сплэш соответствуют бренду.
- Запустите установленную версию и включите авиарежим — приложение открывается, показывает кэшированные экраны и понятное сообщение вместо ошибки браузера.
- Прогоните Lighthouse во вкладке PWA — категория проходит без критичных замечаний.
- Проверьте обновление: после релиза новая версия подхватывается без ручной очистки кэша, пользователю показывается уведомление «доступна новая версия».
- На iPhone добавьте на главный экран и проверьте push, если они заявлены.
Четвёртый пункт — самый частый источник проблем на проде. Неправильно настроенный service worker намертво кэширует старую версию, и часть пользователей неделями видит вчерашние цены. Механика обновления должна быть в техзадании явным требованием.
Практический вывод: считайте PWA не «дешёвым приложением», а способом дать сайту свойства приложения. Если вы всё равно вкладываетесь в поисковое продвижение и получаете трафик из поиска — PWA усиливает то, что уже работает. Если продукт живёт в фоне, в железе или в платежах внутри магазина приложений — берите нативную разработку сразу, переделывать дороже.