Клиент хотел нативное приложение за 2 млн — мы предложили PWA за 400К. Почему он согласился и что из этого вышло

Клиент хотел нативное приложение за 2 млн — мы предложили PWA за 400К. Почему он согласился и что из этого вышло

Клиент хотел нативное приложение за 2 млн — мы предложили PWA за 400К. Почему он согласился и что из этого вышло

Когда заказчик приходит с запросом «хочу приложение», он почти никогда не имеет в виду «нативную разработку на Swift и Kotlin». Он имеет в виду иконку на экране телефона, быструю загрузку и чтобы клиенты не уходили. Это история о том, как мы разобрали реальный запрос на части, честно обсудили ограничения — и в итоге закрыли задачу в пять раз дешевле.

Клиент пришёл с бюджетом 2 млн и запросом на «нативное приложение»

Типичная ситуация: предприниматель из сегмента услуг, аудитория — несколько тысяч активных клиентов, 60% мобильного трафика на сайте. Хочет приложение. Спрашиваешь «зачем?» — получаешь: «Чтобы было как у конкурентов. Иконка на телефоне, push-уведомления, быстро грузилось».

Он уже обошёл две студии. Ему насчитали 2–2,5 млн за одну платформу. Покрытие iOS и Android — от 4 млн. Это стандартные цифры по рынку: по данным Surf и vc.ru, MVP нативного приложения в России стартует от 2 млн рублей за платформу.

Проблема в том, что слово «нативное» в этих переговорах произнёс не клиент. Его произнесли студии, которые продают нативную разработку. Клиент хотел конкретные вещи: иконку на экране, push, быструю загрузку, работу без тормозов. Ни одна из этих задач не требовала двух отдельных кодовых баз и публикации в сторах.

Почему мы предложили PWA: три раунда переговоров

Мы не сказали «вам не нужно нативное приложение» в первом же письме. Это было бы высокомерно и неубедительно. Разговор шёл в три этапа.

Первый раунд: разбор ТЗ. Прошлись по каждому пункту списка фич и задали вопрос: «Это точно требует нативного кода?» Каталог товаров — нет. Личный кабинет — нет. Push-уведомления — с оговорками, но тоже нет. Геолокация — работает в браузере. Камера — работает через Web API. Из 12 пунктов ТЗ ни один не требовал прямого доступа к нативным API устройства, который недоступен через веб.

Второй раунд: возражения. Главное сомнение — iOS. Клиент слышал, что «на айфонах PWA работают плохо». Это отчасти правда, и мы не стали это замалчивать (об этом ниже). Второе возражение — «а клиенты не будут скачивать из App Store?». Ответ: для бизнеса его масштаба отсутствие в сторе — не потеря, а экономия. Никакого органического трафика из App Store он бы не получил: его клиенты приходят из конкретных каналов, а не ищут приложение в каталоге.

Третий раунд: демо. Мы собрали прототип за два дня и показали на телефоне клиента. Иконка на экране, полноэкранный режим, мгновенная загрузка. Клиент сказал: «Подождите, это и есть приложение?» — и это был момент, когда решение стало очевидным.

Что умеет PWA — и чего до сих пор не умеет

Progressive Web App — это веб-приложение, которое ведёт себя как нативное: устанавливается на главный экран, работает в полноэкранном режиме, может отправлять push-уведомления и кешировать данные для оффлайн-доступа. Единая кодовая база для всех платформ.

Что работает хорошо на обеих платформах:

  • Установка на главный экран — иконка неотличима от нативного приложения
  • Оффлайн-режим — через Service Worker кешируются ключевые ресурсы
  • Push-уведомления — на Android полностью, на iOS с версии 16.4
  • Геолокация, камера, микрофон — через стандартные Web API
  • Полноэкранный режим — без адресной строки браузера

Ограничения iOS: что мы сказали клиенту до подписания договора

Apple ведёт политику ограничения PWA, и это нужно проговаривать на берегу. Конкретно:

  • Изолированное хранилище. Если пользователь залогинился на сайте через Safari, в установленном PWA он будет разлогинен. localStorage и cookies не шарятся между Safari и PWA. Для клиента это значило, что пользователю придётся войти в аккаунт заново после установки.
  • Нет автоматического промпта установки. На Android браузер сам предлагает установить PWA. На iOS пользователь должен нажать «Поделиться → На экран Домой». Многие не знают об этом шаге. Мы заложили в интерфейс баннер с пошаговой инструкцией.
  • Push-уведомления с ограничениями. Работают с iOS 16.4, но только если PWA установлено и пользователь явно дал разрешение. Фоновые уведомления без взаимодействия — нет. Background Sync недоступен.
  • Только WebKit. Все браузеры на iOS используют один движок. Это значит, что обойти ограничения через Chrome или Firefox на iPhone не получится.

Клиент спросил: «Какой процент моей аудитории на iPhone?» — оказалось 35%. Мы показали, что базовый функционал работает для всех, а ограничения касаются edge-кейсов, с которыми можно жить. Решение было взвешенным, не эмоциональным.

Смета: куда ушли 400К и что было бы за 2 млн в нативе

Это главная часть, которую обычно не показывают. Вот реальное сравнение:

Клиент хотел нативное приложение за 2 млн — мы предложили PWA за 400К. Почему он согласился и что из этого вышло

Подписывайся на Телеграм Вайблаб, чтобы наблюдать за тем, как мы строим AI-first компанию.

Напишите нам напрямую

9
Начать дискуссию