Кейс: 7 лет эволюции приложения для мерчендайзеров

Кейс: 7 лет эволюции приложения для мерчендайзеров
Дата публикации: 26 февраля 2026 года

История проекта

Сегодня в нашем блоге история про то, как маленькая, скромная идея превращается в сложный, живой организм, который учит всю команду постоянно эволюционировать. Эта статья про наш проект — мобильное приложение для мерчендайзеров компании Sale Group, которому уже больше 7 лет.

Все началось в 2017 году. К нам пришел клиент с довольно простой задачей: «Нужно приложение, чтобы мерчендайзеры в полях не на бумажках писали, а в телефоне все делали». ТЗ было лаконичным, почти миниатюрным — всего 12 страниц. Задумка — несколько экранов: задания, анкета для заполнения, прикрепление фото. Мы сделали приложения под iOS и Android, запустили. Казалось, что проект завершен.

Но вот и нет. Это было только начало.

Что просит клиент и то, чем пользуется —
не всегда одно и то же

Первое столкновение с реальностью — оказалось, что половина «критически важных» отчетов, которые клиент просил на старте для пользователей-супервайзеров, после релиза пылилась без дела.

Люди в полях тоже использовали только базовые вещи — получить задание, пройти чек-лист, сфоткать и выгрузить в Excel. Все.

Вывод. Глубокие, почти дотошные сценарии использования — это не бюрократия. Это единственный способ понять, что нужно на самом деле заказчику. Теперь мы с клиентами садимся и буквально «проигрываем» каждый шаг.

Бизнес меняется, а код хочет жить вечно

Помните, у нас в коде были «магазины»? А через год выяснилось, что у клиента не магазины, а «партнеры», у которых могут быть «торговые площади». Логика сломалась. Пришлось перекраивать архитектуру на ходу.

Зато теперь мы знаем: если есть хотя бы намек на то, что сущность в бизнес-процессе клиента может стать абстрактнее, — мы закладываем это сразу в работу. Лучше немного перепроектировать вначале, чем перелопачивать все потом.

Игра в «кошки-мышки» или
Гонка вооружений с пользователями

Это самая сочная часть истории. Наше приложение должно было бороться не только с багами, но и с креативностью своих же пользователей. Началась эпопея, достойная отдельного сериала.

  • Сезон 1: Фото из дома. Мерчендайзеры стали загружать заранее сделанные фото. Наше решение — убрали выбор фото из галереи, оставили только камеру.
  • Сезон 2: Кастомные камеры. Пользователи нашли приложения, которые заменяют системную камеру и снова дают доступ к галерее. Наш ответ — написали свою камеру, встроенную прямо в приложение.
  • Сезон 3: Фальшивый GPS. В ход пошли программы для подмены геолокации. Мы добавили детектор таких приложений и блокировку работы.
  • Сезон 4: Война версий. Хитрецы просто не обновляли приложение, оставаясь на старой, незащищенной версии. Мы ввели жесткое принудительное обновление.
  • Сезон 5: Фото на диване. Апофеоз: фото открывали на ноутбуке и снимали экран смартфоном! Тут мы подключили уже ужесточение радиуса GPS и нейросети для анализа снимков.
  • Сезон 6: «Все пропало!». Классика: «Я весь день работал, а приложение все стерло!». Помогло простое решение — стали показывать в интерфейсе дату первой установки. Жалоба в 8 вечера с датой установки «19:55» говорила сама за себя.
Главный вывод этой истории, которым мы поделились с заказчиком. Разрабатывая приложение для полевого персонала, сразу закладывайте антифрод. Ваши пользователи — гениальные оптимизаторы своего труда. Наша совместная задача — направить этот креатив в мирное русло.

А еще мы прошли через...


  • Лавину данных. Скромное приложение стало генерировать терабайты фото и сотни тысяч отчетов. Мы учились оптимизировать базы, чистить мусор и строить эффективные выборки.
  • Рост ролей. Из трех ролей выросла целая иерархия: админы, супервайзеры, мерчендайзеры, аудиторы, представители клиента. Пришлось полностью переделывать систему безопасности, добавлять двухфакторную аутентификацию.
  • Боль офлайна. Работа без сети — must-have. Но каждая новая версия с изменениями в локальной БД могла «сломать» данные у пользователей. Жесткое правило: тестирование миграций — святое.
  • Грехи интеграций. Чтобы подключить нейросеть для анализа фото, клиент уговорил нас дать подрядчику прямой доступ к базе. Это стало головной болью. Правило теперь железное: все интеграции — только через API.

Что мы имеем спустя 7+ лет?

Небольшой стартап вырос в комплексную B2B-платформу, которой ежедневно пользуются тысячи человек. Мы переехали с нативных технологий на Flutter, чтобы упростить поддержку, и готовим масштабный рефакторинг бэкенда.

Итоговые инсайты, выстраданные кровью и нервами:
  1. Говорите с клиентом на языке его бизнеса. Синхронизация терминов — 50% успеха.
  2. Архитектура — это про будущее. Закладывайте чуть больше гибкости, чем кажется нужным сегодня.
  3. Защита — не фича, а основа. Особенно если ваше приложение работает «в поле».
  4. Данные растут как снежный ком. Продумывайте стратегию работы с большими данными с самого начала.
  5. Оффлайн — это сложно. Цените это и тестируйте в десять раз тщательнее.
  6. Никаких прямых доступов к БД. Только API. Никаких «исключений».
  7. Продукт — это процесс, а не точка. Самые интересные уроки и самые важные фичи рождаются через годы после первого релиза.
Этот проект стал для нас не просто заказом. Он стал долгоживущим цифровым партнером для клиента и лучшей школой для нашей команды.
Автор статьи
Вам понравилась статья?
Читайте также