Novex
Торговля
Россия, Барнаул
Июль 2025
Сопровождение и развитие мобильного e‑commerce приложения с каталогом более 50 000 товарных позиций и нетривиальной бизнес-логикой: гарантировать бесперебойную работу при пиковых нагрузках, минимизировать вероятность упущенных заказов из-за технических отказов и падения производительности, расширять функциональные возможности, делать клиентский путь к покупке проще и короче.
Одной из ключевых особенностей e-commerce экосистемы Novex является единая серверная часть для сайта и мобильного приложения. Обе платформы используют общие данные о товарах, остатках, заказах и пользователях.
Такой подход обеспечивает ряд преимуществ:
централизованную синхронизацию данных и единые механизмы защиты информации;
более простое управление остатками;
снижение затрат на инфраструктуру благодаря использованию одной базы данных и одного сервера;
возможность одновременно внедрять новые функции в веб-версии и мобильном приложении.
Flutter — разработка единого приложения для iOS и Android на общей кодовой базе.
Над развитием и поддержкой мобильного приложения Novex со стороны NAN работала команда из пяти специалистов, обеспечивающая полный цикл работ — от аналитики до сопровождения продукта.
В проект были вовлечены:
Flutter Developer;
DevOps Engineer;
System Analyst;
QA Engineer;
UX/UI Designer;
Project Manager.
Со стороны заказчика в работе участвовали внутренняя IT-команда и ключевые стейкхолдеры.
38 технических проблем и нестандартных решений выявлено и устранено;
894 дня стабильной работы приложения за весь период сотрудничества с NAN;
рост выручки мобильного приложения на 12%;
более 50 000 SKU в онлайн-каталоге;
свыше 20 интеграций с внутренними и внешними системами;
более 30 релизов за 2+ года совместной работы.
✓ Реализовали интеллектуальный поиск для более быстрого подбора товаров.
✓ Обновили карточки товаров, сделав их удобнее для изучения и выбора продукции.
✓ Интегрировали пункты выдачи заказов СДЭК для расширения вариантов получения заказов и повышения удобства покупателей.
Повысили устойчивость приложения к нагрузкам и устранили критические технические ограничения.
Обеспечили более прозрачное отображение наличия товаров и способов получения заказа.
Сократили количество неопределённых состояний и сделали пользовательский сценарий более понятным.
Создали основу для внедрения новых функций без накопления технического долга и дополнительных рисков.

Первостепенной задачей стало обеспечение предсказуемой и стабильной работы мобильного приложения при высокой нагрузке и большом ассортименте товаров.
В ходе технического аудита выяснилось, что часть проблем производительности была связана не с серверной частью, а с мобильным клиентом. В частности, приложение загружало изображения большего размера, чем требовалось интерфейсу, что вызывало задержки и ухудшало плавность работы каталога.
Мы переработали механизм загрузки изображений и систему кэширования, адаптировав их под реальные потребности интерфейса. После внедрения изменений каталог стал работать заметно быстрее и стабильнее.
Дополнительно была обнаружена и устранена причина аварийных завершений приложения, связанная с утечками памяти на стороне клиента (некорректное использование EventBus и IntersectionObserver).
Результаты:
увеличилась скорость работы интерфейса;
исчезли задержки при открытии каталога;
повысилась стабильность приложения;
улучшился пользовательский опыт при работе с большим количеством товаров.
По оценке заказчика, приложение стало работать быстрее, чем на предыдущих этапах его развития.

На момент начала сотрудничества проект уже содержал настроенный процесс CI/CD. Несмотря на формальную работоспособность, он был тесно связан с прежней инфраструктурой и включал избыточные сценарии, которые не соответствовали текущим процессам.
Мы проанализировали существующую конфигурацию, адаптировали её под актуальную среду разработки и упростили цепочку релизов. Часть сценариев была переработана, часть — оптимизирована.
В результате процесс сборки и публикации обновлений стал более предсказуемым, быстрым и удобным для команды.
CI/CD (Continuous Integration / Continuous Delivery) — практика автоматизации сборки, тестирования и публикации релизов, позволяющая выпускать обновления быстрее и снижать вероятность ошибок при выкладке.

Для крупного ритейлера поиск напрямую влияет на продажи. Пользователи часто вводят неточные запросы, а ассортимент включает десятки тысяч позиций.
Для улучшения качества поиска в мобильное приложение был интегрирован сервис SearchBooster через API. Поскольку готового Flutter-виджета сервис не предоставляет, поисковой интерфейс был реализован отдельно.
Основные цели проекта:
повысить качество поиска;
улучшить пользовательский опыт;
получать данные для дальнейшей аналитики и оптимизации поисковых сценариев.
Реализованы:
текстовый поиск;
поиск по изображению;
голосовой поиск;
поиск по штрих-коду;
описание взаимодействия мобильного приложения с API;
разработка интерфейса поиска.
В окне поиска отображаются различные типы подсказок:
история запросов пользователя;
подсказки по мере ввода текста;
категории;
бренды;
товары.
При формировании результатов дополнительно учитывается наличие товаров, чтобы пользователи видели позиции, доступные к покупке.
Поскольку SearchBooster тарифицируется по количеству запросов, была внедрена задержка перед отправкой запроса. Это позволило сократить число лишних обращений к сервису и снизить нагрузку на инфраструктуру.

Карточка товара является одним из основных этапов принятия решения о покупке.
Мы переработали её структуру, отказавшись от перегруженных элементов интерфейса. Вместо вкладок были внедрены раскрывающиеся блоки с описанием и характеристиками товара.
Такой подход позволил уменьшить визуальную нагрузку и сделать выбор продукции более удобным и быстрым.

В ритейле информация о наличии зависит от региона, конкретного магазина и выбранного варианта получения заказа.
Ранее пользователь сталкивался с ограничениями уже на этапе оформления заказа: способ получения выбирался только на главной странице или в чекауте, а информация о наличии отображалась неполно.
Мы переработали всю логику работы с остатками и доступностью товаров.
Были внедрены:
уровни остатков (много, средне, мало);
расширенные статусы наличия;
выбор способа получения непосредственно в каталоге, карточке товара и шапке приложения;
сортировка товаров с учётом доступности.
Новые статусы включают:
товар в наличии;
доступен для доставки или в выбранном пункте самовывоза;
доступен под заказ либо в другом пункте выдачи;
закончился, но доступен для самовывоза;
закончился и недоступен для доставки.
Для реализации новой логики были доработаны:
алгоритм сортировки товаров в каталоге;
отображение наличия в различных разделах приложения;
карточка товара и детальная страница;
механизм смены магазина и способа получения.
На странице товара появился отдельный блок «Наличие товара», отображающий:
выбранный способ получения;
уровень остатков;
возможность изменить способ доставки;
наличие товара в других филиалах.
В результате пользователи начали получать актуальную информацию о доступности товаров ещё до оформления заказа и реже сталкиваться с ограничениями на финальном этапе покупки.

В рамках проекта была реализована интеграция сети ПВЗ СДЭК.
Выполненные работы:
доработка оформления заказа для выбора пунктов выдачи;
интеграция ПВЗ СДЭК в сценарии доставки и самовывоза;
добавление фильтров по типам пунктов выдачи;
отображение меток СДЭК в списке и на карте;
вывод стоимости доставки и условий бесплатной доставки;
корректная обработка сценариев самовывоза и доставки.
Основная сложность проекта заключалась в согласовании серверной логики и обеспечении корректной работы всех пользовательских сценариев.
Мобильное приложение для крупного e-commerce и ритейл-бизнеса — это не просто набор экранов, а важный инструмент продаж и взаимодействия с клиентами.
В рамках проекта основной фокус был сделан на стабильности, производительности и управляемом развитии продукта. Все изменения внедрялись таким образом, чтобы усиливать существующую систему, минимизировать технические риски и создавать основу для дальнейшего масштабирования.
38 - костылей и технических проблем выявлено и устранено
894 - дня бесперебойной работы приложения (100% всего времени работы с NAN)
на 12% - выросла выручка в мобильном приложении
50 000 - SKU в онлайн-каталоге Novex
20 - интеграций с внешними и внутренними системами
>30 - релизов обновлений выпустили за более чем 2 года совместной работы