Направление 03
Веб, мобильные приложения и расширения
Пользователь не различает ваш сайт, приложение и расширение — он видит один продукт и ждёт, что баланс, статус и история везде совпадают. Это требование к архитектуре: общее ядро, а не три независимые команды с тремя базами.
Среды
Три среды, один продукт
У каждой среды свои ограничения — они и определяют, что в ней делать можно, а что придётся оставить другой.
- Web
Веб-платформа
Ядро продукта: каталог, личный кабинет, админка и публичные страницы под поиск. Единственная среда, куда приходит поисковый трафик, поэтому здесь важны серверный рендеринг и скорость первого экрана.
- Публичные страницы под поиск и LLM-ответы
- Личный кабинет и админка
- Обновление без релизного цикла магазинов
- iOS · Android
Мобильные приложения
Поверх того же API. Дают то, чего нет у веба: пуш-уведомления, работу при плохой связи, нативные платежи и биометрию. Взамен требуют прохождения ревью магазинов на каждое обновление.
- Пуши и возврат пользователя в продукт
- Офлайн-состояние и синхронизация
- Нативные платежи и биометрия
- Extension
Браузерное расширение
Точка контакта прямо на сайте партнёра — там, где пользователь принимает решение о покупке. Живёт по правилам магазинов расширений и жёстким ограничениям безопасности браузера.
- Подсказка предложения в момент покупки
- Активация и трекинг перехода
- Работа в рамках прав, выданных браузером
Ядро
Что обязано быть общим
Когда среды расходятся, расходятся не интерфейсы, а данные. Список ниже — то, что нельзя дублировать в каждой среде отдельно.
API и модель данных
Один контракт на все среды. Расширение и приложение не должны узнавать про новое поле из релиз-ноутов веба.
Правила и расчёты
Ставки, скидки, начисления и лимиты живут на сервере. Логика, продублированная в клиенте, расходится с сервером на второй же итерации.
Аутентификация и состояние
Один вход и один профиль. Пользователь, вошедший в приложении, остаётся собой в расширении.
Аналитика и события
Общая схема событий, иначе воронку по средам невозможно сравнить и любой отчёт становится спором о методике.
Вопросы
О продуктовой разработке
01
С чего начинать, если нужны и сайт, и приложение, и расширение?
С веб-платформы и API, потому что она одновременно ядро системы и единственная среда, куда приходит поисковый трафик. Приложения и расширение подключаются к уже работающему контракту. Обратный порядок — начать с мобильного приложения — приводит к тому, что API проектируется под один экран и переделывается при добавлении второй среды.
02
Нативная разработка или кроссплатформенная?
Зависит от того, что в приложении главное. Кроссплатформенное решение экономит время, когда приложение в основном показывает данные и работает с формами. Нативная разработка нужна там, где требуется тесная работа с платформой: фоновые процессы, сложная работа с камерой или картами, специфические платёжные сценарии. Решение принимается на этапе архитектуры, а не по умолчанию.
03
Зачем продукту браузерное расширение?
Расширение работает там, куда сайт и приложение не дотягиваются — на странице чужого магазина в момент покупки. Для кэшбэк-сервисов и сервисов скидок это главная точка контакта: предложение показывается тогда, когда решение ещё не принято. Ограничения серьёзные: расширение проходит ревью магазина браузера и работает только в рамках выданных прав, поэтому логика остаётся на сервере.
04
Как выкатываются обновления в трёх средах одновременно?
Через версионирование API и постепенное включение функций. Веб обновляется сразу, приложения проходят ревью магазинов и обновляются у пользователей неравномерно, расширение — по своему циклу. Поэтому сервер обязан поддерживать несколько версий клиентов одновременно, а новая функциональность включается флагом, а не датой релиза.
Дальше
Соберём продукт целиком
Напишите, что за продукт и в каких средах он должен жить. Разберём, что делать в первую очередь, а что можно отложить без потери смысла.