Что такое PWA и чем оно отличается от сайта
PWA — это обычный сайт, к которому добавлены три служебные вещи: описание приложения, фоновый скрипт-посредник и разрешение на уведомления. После этого браузер разрешает поставить сайт на домашний экран, и он запускается как приложение — во весь экран, со своей иконкой, без адресной строки и панели вкладок.
Ключевое отличие от сайта не техническое, а поведенческое. Сайт человек ищет заново каждый раз: вспоминает название, набирает в поиске, выбирает из выдачи. Приложение он открывает в одно нажатие с того же экрана, где лежат мессенджеры и банк. На повторных визитах эта разница и решает: чем чаще к вам возвращаются, тем сильнее она заметна.
Второе отличие — работа при плохой связи. Страницы, которые человек уже открывал, показываются из памяти телефона и без интернета. Это важнее, чем кажется: в метро, в лифте, на складе и в поездке сайт просто не откроется, а приложение покажет то, что смотрели вчера.
PWA или нативное приложение
Нативное приложение — отдельная программа под iOS и отдельная под Android. Их пишут, публикуют в магазинах, проводят через модерацию и обновляют параллельно с сайтом. Это даёт полный доступ к возможностям телефона: камера, датчики, работа в фоне, полноценный офлайн. И это же делает разработку кратно дороже — фактически вы содержите три продукта вместо одного.
PWA не заменяет нативное приложение там, где нужны эти возможности. Зато закрывает самый частый сценарий — «сделайте, чтобы нас можно было открывать с иконки и чтобы работало без сети» — за долю стоимости и без публикации. Практическое правило простое: если ваш сценарий описывается словами «наш сайт, но удобнее и быстрее», нужна обвязка. Если в нём есть камера, датчики или фон, нужно приложение.
Есть и третий путь, о котором забывают: сделать обвязку сейчас, а нативное приложение — потом, если понадобится. Сервер, база и логика при этом переиспользуются, переписывается только интерфейс. Проверить спрос обвязкой дешевле, чем узнать о нём после релиза в магазинах.
Сколько стоит превратить сайт в приложение
Обвязка готового сайта начинается от 40 000 ₽ и занимает 2–3 недели. Это двадцать часов работы: служебные файлы, иконки под все размеры, экран запуска, настройка кэширования и проверка на реальных устройствах. Сам сайт при этом не переписывается — именно поэтому обвязка дешевле любой разработки с нуля.
Главная переменная — состояние сайта. Над современным адаптивным сайтом с https обвязка ставится за базовые часы. Если мобильной версии нет, она медленно грузится или нет доступа к коду, сначала идёт подготовка — и её часы считаются отдельно и называются до счёта. Разброс здесь больше, чем от любого набора возможностей, поэтому цена и указана как «от».
Дальше цену двигают три вещи: нужен ли полноценный офлайн с досылкой данных при возврате связи, нужны ли уведомления с сегментами и отпиской, и сколько устройств придётся реально проверить. Полный набор с офлайном, уведомлениями и ускорением — это уже вторая смета, а инструмент для сотрудников с ролями и синхронизацией — третья.
Ограничения PWA на iPhone и Android
На Android браузер сам предлагает установку кнопкой, и почти все возможности доступны. На iPhone установка делается вручную через меню «Поделиться», кнопки для этого нет, и подсказку приходится рисовать самим — часть аудитории всё равно не поставит приложение. Уведомления на iPhone приходят только тем, кто уже установил приложение на домашний экран.
Общие для всех платформ ограничения: нет фоновой геолокации и работы с датчиками, нет обмена данными с другими приложениями, а сохранённые в телефоне данные система вправе удалить, если приложением долго не пользуются. Практическое следствие: в офлайн-кэш нельзя класть то, что нельзя потерять.
И главное, о чём стоит помнить при чтении любых статей на эту тему: правила платформ меняются, иногда резко и в обе стороны. Поэтому мы не приводим здесь ни версий, ни дат — что доступно сегодня, проверяется в начале конкретного проекта и переносится в смету, а не берётся из статьи годовой давности.