Разработка · 6 мин чтения

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

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

PWA или нативное приложение: как выбираю под задачу бизнеса

Первый вопрос на брифе не «какой бюджет», а «что должно происходить на телефоне пользователя, чего нельзя сделать в браузере». Если ответ - каталог, форма заявки, личный кабинет, статус заказа, запись на услугу - хватает PWA. Если в сценарии обязательны постоянный доступ к Bluetooth-оборудованию, работа без сети часами подряд с последующей синхронизацией или биометрия как основной способ входа - без нативной разработки не обойтись.

Сравнение по реальным критериям, а не по ощущениям:

Критерий PWA Нативное приложение
Публикация сразу на своём домене, без модерации площадок через App Store и Google Play, с проверкой правил
Push-уведомления работают на Android всегда, на iOS - начиная с версии Safari 16.4 для приложений, добавленных на экран работают на всех версиях системы без ограничений
Офлайн и фоновые задачи кеш через service worker, фон на iOS ограничен политикой WebKit полноценный фоновый режим и локальные уведомления
Bluetooth, NFC, биометрия доступ ограничен или отсутствует в браузере полный доступ через нативные SDK
Обновления новая версия service worker ставится в фоне, а активируется, когда закрыты все страницы, работающие под старой версией, либо сразу, если новый воркер вызывает skipWaiting() через сторы, пользователь обновляет вручную
Кодовая база одна на все устройства чаще две, либо кроссплатформенный фреймворк с нативными модулями

Что реально умеет PWA-приложение уже сегодня

PWA - это обычный сайт с манифестом и service worker. Манифест описывает иконку, имя, цвет темы и режим отображения (в полноэкранном виде, без адресной строки браузера). Service worker кеширует статику и часть данных, поэтому приложение открывается и частично работает без сети. Минимальный манифест выглядит так:

<link rel="manifest" href="/manifest.json">

{
  "name": "Название сервиса",
  "short_name": "Сервис",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#111111",
  "icons": [
    { "src": "/icons/192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icons/512.png", "sizes": "512x512", "type": "image/png" }
  ]
}

На одном проекте заказчик пришёл с готовым техзаданием на нативное приложение для сервиса доставки, хотя по факту нужны были каталог, корзина, отслеживание заказа и push о смене статуса. Я предложил PWA: одна кодовая база под все устройства, push заработали и на Android, и на iOS - с версии Safari 16.4 у Apple появилась поддержка Web Push для приложений, установленных на экран. Бюджет и срок в итоге вышли кратно меньше, чем при разработке под два стора отдельно.

Когда без нативного мобильного приложения не обойтись

Есть сценарии, где PWA объективно проигрывает не потому, что «плохо сделана», а потому что браузер физически не даёт нужный доступ:

  • Работа с внешним оборудованием через Bluetooth или NFC - кассы, весы, медицинские и складские сканеры
  • Полевая работа без связи часами подряд с последующей синхронизацией больших объёмов данных - курьерские и складские приложения
  • Биометрия как основной, а не дополнительный способ входа
  • Корпоративное распространение через MDM для сотрудников, минуя публичные сторы
  • Продукт, где присутствие в App Store и Google Play критично для узнаваемости бренда и органического трафика внутри самого стора

В таких случаях я обычно предлагаю гибрид: веб-приложение как основа плюс нативная обвязка через Capacitor для доступа к конкретным API устройства. Это дешевле полностью нативной разработки на двух платформах и даёт доступ к железу там, где он реально нужен.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

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

Цена не привязана к слову «PWA» или «нативка» напрямую - она собирается из объёма работы:

  • Число экранов и сложность пользовательских сценариев - чем больше веток и состояний, тем больше тестирования
  • Бэкенд: API, авторизация, база данных, интеграции с оплатой (например, эквайринг Т‑Банка), доставкой (СДЭК), CRM
  • Дизайн - с нуля или адаптация готового макета под мобильные экраны
  • Офлайн-логика и синхронизация данных при восстановлении связи
  • Кроссплатформенность - одна кодовая база или отдельные нативные модули под iOS и Android
  • Тестирование на реальных устройствах, а не только в эмуляции DevTools
  • Публикация в сторах для нативной части - аккаунты разработчика Apple и Google клиент открывает и оплачивает сам

Сроки зависят от тех же факторов плюс от скорости обратной связи заказчика: если правки по дизайну и доступы к интеграциям приходят с задержкой в неделю, срок сдвигается ровно на эту неделю. У меня разработка мобильного веб-приложения под ключ стоит от 300 000 ₽ при сроке от 8 недель - сюда входят бриф, архитектура, дизайн, разработка фронтенда и бэкенда, интеграции и тестирование на реальных устройствах.

Что в эту цену не входит: оплата аккаунтов разработчика в App Store и Google Play (это отдельные платные программы самих Apple и Google, суммы и условия уточняйте в их актуальных правилах), создание контента, продвижение и оптимизация карточки приложения в сторе, техподдержка после сдачи - она у меня отдельная услуга.

Как проходит разработка мобильного веб-приложения: этапы и что нужно от заказчика

Порядок работ

  1. Бриф и аудит задачи - какие сценарии обязательны (камера, офлайн, платежи, push), а какие нет
  2. Архитектура - выбор между PWA, нативкой и гибридом, состав экранов и API
  3. Дизайн по референсам заказчика или с нуля
  4. Разработка фронтенда, бэкенда и интеграций
  5. Тестирование на реальных устройствах - разные iPhone, разные версии Android, разные браузеры
  6. Публикация: для PWA - деплой на домен и настройка manifest и service worker, для нативки - загрузка в App Store Connect и Google Play Console
  7. Передача проекта: код, доступы, документация по интеграциям

Что нужно подготовить заказчику

  • Доступ к хостингу и домену
  • Аккаунты и токены платёжных систем и служб доставки, которые подключаем
  • Контент - тексты, фото, карточки товаров или услуг
  • Референсы дизайна или готовый макет
  • Ответственного за согласования на стороне бизнеса
  • Тестовые доступы в CRM, если нужна интеграция

Частые ошибки при выборе между PWA и нативкой

  • Выбирают нативку «для солидности» без реальной потребности в железе телефона - переплата и более долгий срок без выигрыша для пользователя
  • Ждут от PWA функций, которых на iOS объективно нет - постоянной фоновой синхронизации или доступа к NFC-оплате в обход системных ограничений
  • Тестируют только эмуляцией мобильного экрана в Chrome DevTools вместо реального iPhone - и потом ловят баги в офлайн-кеше и push, которые в эмуляции не воспроизводятся
  • Считают, что публикация в сторе сама по себе даёт трафик - продвижение карточки приложения это отдельная работа, а не бонус от факта публикации
  • Экономят на брифинге интеграций с оплатой и доставкой - потом эти доработки обходятся дороже, чем если бы их заложили в архитектуру сразу

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

Частые вопросы

Чем PWA отличается от обычного мобильного сайта?

PWA - это сайт с манифестом и service worker, из-за которых браузер предлагает установить его на экран как отдельное приложение, кеширует часть контента для работы без сети и умеет присылать push-уведомления. У обычного мобильного сайта нет ни иконки на экране, ни офлайн-кеша, ни установки.

Можно ли PWA опубликовать в App Store и Google Play?

Технически да. Для Google Play это делается через Trusted Web Activity и работает стабильно. Для App Store сложнее - у Apple жёсткие требования к минимальной нативной функциональности, и приложение, которое фактически является витриной сайта без дополнительной ценности, модерация может отклонить. Возможность публикации в App Store я всегда проверяю на этапе брифа, а не постфактум.

Сколько стоит разработка мобильного веб-приложения под ключ?

У меня цена стартует от 300 000 ₽ при сроке от 8 недель - сюда входят бриф, архитектура, дизайн, разработка фронтенда и бэкенда, интеграции и тестирование на реальных устройствах. Итоговая цена зависит от числа экранов, сложности интеграций и офлайн-логики конкретного проекта.

Часть функций нужна не сразу, а через полгода. Закладывать сразу нативное приложение?

Обычно нет. Я стараюсь строить архитектуру так, чтобы можно было начать с PWA и добавить нативную обвязку через Capacitor под конкретные задачи, когда они станут реальными, а не гипотетическими. Расширять готовую кодовую базу дешевле, чем переделывать проект с нуля.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно