Авторизация
Сброс пароля
Один код — три приложения: как мы сэкономили заказчику 70% бюджета на поддержку мобильного сервиса корпоративных скидок
Заказчик: NDA
Страница кейса/результат: https://itfox-web.ru/ru/cases/mobilnoe-prilozhenie-dlia-100-000-polzovatelei-razrabotka-na-flatter-k

Разработали мобильное приложение на Flutter для B2B-платформы корпоративных скидок. В середине проекта заказчик попросил три брендированные версии вместо одной. Перестроили сборку за несколько дней, не сорвали сроки и сэкономили заказчику 70% бюджета на поддержку.
1. Вводная задача от заказчика, проблематика, цели
Заказчик — B2B-платформа, которая предоставляет сотрудникам крупных корпораций доступ к эксклюзивным скидкам: массаж со скидкой 70%, аренда яхт, спецпредложения в ресторанах. Компания-работодатель покупает доступ к платформе и выдаёт его сотрудникам как нематериальный бонус. Каждый сотрудник получает индивидуальный инвайт-код и видит предложения, недоступные обычным пользователям.
На старте у клиента уже были работающий сайт и бэкенд на REST API, более десяти крупных партнёров — банков, ритейлеров и IT-корпораций. Совокупная численность сотрудников превышала 500 000 человек. Полноценного мобильного приложения не было, и это ограничивало использование бонуса: сотрудники не могли быстро активировать скидки со смартфона.
Задача: разработать мобильное приложение для iOS и Android с закрытой авторизацией по инвайт-кодам.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Задача звучала как «разработайте мобильное приложение», но в процессе мы столкнулись с тремя скрытыми проблемами.
Первая. Бэкенд задерживался. Фронт-команда могла простаивать неделями — а это прямой сдвиг сроков и дополнительные затраты.
Вторая. В середине проекта выяснилось, что заказчику нужно не одно приложение, а три брендированные версии для разных групп партнёров. Каждая со своим логотипом, цветовой схемой и адресом сервера.
Третья. В приложении требовался встроенный чат поддержки. Внешний сервис LifeText не имел SDK для Flutter — готового набора инструментов для разработчиков.
Что сделали:
Мы спроектировали архитектуру, которая закрывает все три проблемы.
Выбрали Flutter — он позволяет вести единую кодовую базу для iOS и Android. Любая доработка пишется один раз и работает на обеих платформах.
Настроили Flavors — механизм, который позволяет из одного кода собирать несколько приложений с разными названиями, иконками и настройками. При сборке просто меняются название, иконка, цветовая схема и адрес сервера. Весь процесс автоматизирован. Одна доработка — и все три версии получают обновление одновременно.
Пока бэкенд задерживался, подготовили мок-данные — локальные тестовые данные, имитирующие ответы сервера. Это позволило сразу начать разрабатывать интерфейс и логику, не дожидаясь бэкенда. Когда сервер доделали, переключились на реальные запросы за один день.
Чат подключили напрямую через WebSocket — технологию для обмена сообщениями в реальном времени. Всё сделали сами, без готового SDK.
Приложение выросло до 50+ экранов — мы настроили приоритеты загрузки, чтобы списки не тормозили даже при быстром скролле, а картинки подгружались без задержек.
Ключевой момент: когда в середине проекта заказчик сообщил, что нужно три приложения вместо одного, мы не стали переписывать всё с нуля. За несколько дней перестроили систему сборки, настроили Flavors и автоматизировали публикацию в магазины. Дополнительные затраты оказались минимальными, график почти не сдвинулся.
3. Результаты сотрудничества
· Три брендированных приложения одновременно вышли в Google Play и App Store.
· Аудитория превысила 100 000 активных пользователей.
· Любая новая фича пишется один раз и доступна всем трём версиям — экономия на поддержке до 70%.
· Добавление четвёртой или пятой версии не требует изменения кода — только настройки параметров сборки.
· Краш-рейтинг менее 1%, жалоб на производительность не поступало.
· Проект занял около шести месяцев, заказчик принял работу без нареканий.
Для пользователей:
· Мгновенный доступ к скидкам в два клика.
· Чат-поддержка в реальном времени.
· Плавная работа без зависаний.

4. Заключение
Главный вызов этого проекта случился не на старте. Мы уже вовсю разрабатывали приложение, когда заказчик сказал: «Нам нужно не одно приложение, а три». Вместо того чтобы переписывать всё с нуля, мы за несколько дней перестроили систему сборки, и график почти не сдвинулся.
Мы не просто выполняем техническое задание — мы проектируем системы, которые готовы к изменениям. Заказчик просил «сделать приложение», а мы сделали архитектуру, которая экономит бюджет, масштабируется и работает стабильно. Это позволяет бизнесу расти без оглядки на IT-ограничения.
Что дальше? Проект передан в ежемесячную техническую поддержку. Мы сопровождаем продукт, оперативно фиксим баги, если они появляются, и помогаем с доработками. Заказчик принял работу без нареканий и продолжает сотрудничество.


