Яндекс.Метрика
Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Логистика · Android + iOS · Навигация и маршруты

xRouten — рефакторинг приложения навигации: кейс

xRouten — сервис навигации и планирования маршрутов для бизнеса доставки. Мы провели масштабный рефакторинг нестабильного Android-приложения: стабилизировали работу, исправили логику ключевых функций построения маршрутов и отслеживания водителей и остановили отток пользователей. Стек: Kotlin.

Рефакторинг legacy-приложенияСкоростное построение маршрутовОтслеживание водителей на картеЦифровая документация доставкиУстранение критических баговГотовность к App Store и Google Play
xRouten — обложка кейса
xRoutenЛогистика · доставка
Клиент
Сервис навигации и планирования маршрутов для бизнеса
Отрасль
Логистика · доставка
Платформы
Android · iOS
Тип работ
Рефакторинг и стабилизация

О продукте

Коротко — что это за продукт и для кого мы его делали.

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

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

Задача

Приложение работало на legacy-коде и накопило критические проблемы: низкая производительность, зависания при построении маршрутов между десятками точек, ошибки в ключевых функциях и баги, из-за которых водители теряли данные тура. Каждая такая ошибка стоила бизнесу дорого — срыв доставок и финансовые потери, а пользователи начали уходить.

Дополнительно проект осложняли языковой и географический барьер: интерфейс на немецком, а тестирование маршрутов шло на картах Германии. Нужно было разобраться в чужой кодовой базе, не сломав то, что уже работает, и системно исправить самые болезненные места.

Особенности проекта

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

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

Языковой и географический барьер — интерфейс на немецком языке, а тестирование строилось на маршрутах и картах Германии, что требовало отдельного внимания к локализации и проверке сценариев.

Рефакторинг с прицелом на будущее — новая структура кода позволяет легко интегрировать новый функционал и развивать продукт дальше.

Решение и подход

Как мы собрали продукт — от архитектуры до процесса.

Мы начали с аудита нестабильных мест: построение маршрутов, отслеживание водителей и фиксация доставок давали больше всего сбоев. Проблемные модули переписали на чистом Kotlin, оптимизировали алгоритм расчёта пути между десятками точек и убрали зависания.

Параллельно навели порядок в ключевых функциях: плавное отображение водителей на карте в реальном времени, цифровая документация с формированием и отправкой счетов клиентам, работающая платёжная система. Редизайн улучшил пользовательский опыт, а обновлённая структура кода сделала приложение готовым к публикации в App Store и Google Play.

Технологический стек

Инструменты подобраны под задачу продукта.

Kotlin
Kotlin
Рефакторинг Android-приложения
Google Maps
Карты и построение маршрутов
Android
Основная платформа

Почему рефакторинг, а не с нуля

Переписывание с нуля означает потерю накопленной бизнес-логики, дополнительные риски и отсрочку ввода для пользователей. Рефакторинг сохраняет работающие элементы, устраняет причины нестабильности и даёт продукт второе дыхание без полной остановки сервиса.

Клиентская часть переведена на Kotlin — официальный язык Android: полный доступ к API карт, фоновым сервисам и GPS без ограничений. Рассматривались альтернативы: React Native (быстрее старт, но хуже UX карты и ограниченный доступ к GPS API) и Flutter (близок по возможностям, но отдельная цепочка сборки). Выбор нативного Kotlin обусловлен требованиями к UX навигации и трекинга в реальном времени.

Функции продукта

Ключевые возможности, которые закрыли задачу бизнеса.

1

Скоростное построение маршрутов

Оптимизированный алгоритм рассчитывает путь между десятками точек тура без зависаний.

2

Отслеживание водителей на карте

Плавное отображение местоположения сотрудников в реальном времени для диспетчера.

3

Цифровая документация

Формирование и отправка счетов и подтверждений доставки клиентам прямо из приложения.

4

Фиксация факта доставки

На каждой точке водитель отмечает выполнение и прикладывает подтверждающие документы.

5

Карточка точки маршрута

Адрес, окно прибытия, заметки, контактное лицо и вложения по каждому заказу тура.

6

Платёжная система

Внедрён работающий модуль оплаты вместо нестабильного legacy-решения.

Как это работает

Ключевые экраны продукта — по шагам.

Карта тура и точки маршрута

Карта тура и точки маршрута

Главный экран водителя — карта активного тура с пронумерованными точками доставки. Каждая точка на карте показывает порядковый номер, а внизу открывается карточка ближайшего адреса — например, «Baumarkt, Gärtnerstraße 11, 12207 Berlin» с заметкой «Bitte vorher anrufen».

Отсюда водитель ведёт тур: кнопка «Nachweis» фиксирует подтверждение доставки, «Tour stoppen» завершает маршрут, а компас и стрелка помогают ориентироваться на местности.

Активный маршрут с навигацией

Активный маршрут с навигацией

В режиме «Tour Dienstag» приложение прокладывает по карте маршрут синей линией, соединяя точки в оптимальном порядке, и ведёт водителя от адреса к адресу.

Карточка следующей точки показывает получателя «MangoGlück Fruchthandel, Kurfürstendamm 12, 10719 Berlin», расчётное время прибытия «Ankunft: 08:22» и кнопки «Mehr» и «Nachweis» — переход к деталям заказа или к отметке о доставке.

Карточка заказа и цифровые документы

Карточка заказа и цифровые документы

По точке открывается детальная карточка «Ziel»: адрес получателя, окно прибытия, заметка курьеру, референс заказа, контактное лицо (Ansprechpartner) и заказанный ассортимент.

Здесь же работает модуль цифровой документации — вложения к заказу (image-adfe.jpeg, PDF-Plan.pdf) и кнопка «Anhang hinzufügen», чтобы водитель мог приложить фото или PDF-подтверждение доставки прямо на точке.

Список точек тура

Список точек тура

Кроме карты, тур доступен списком: экран «Tour Dienstag» с поиском и счётчиком «17 Einträge» показывает все адреса маршрута по порядку.

Каждая строка — получатель, адрес, окно прибытия и кнопка «Nachweis»: водитель видит весь тур целиком, быстро находит нужную точку и отмечает доставки, не переключаясь на карту.

Данные и соответствие требованиям

Приложение обрабатывает данные клиентов и маршрутов доставки, поэтому обработка выстроена под требования 152-ФЗ с локализацией персональных данных в пределах РФ и учётом реестра РКН.

Безопасность контура опирается на практики ISO 27001 — разграничение доступа, защита операций и платёжных данных при формировании счетов и подтверждений доставки.

В цифрах

2
платформы — App Store и Google Play
0
критических багов после стабилизации
Legacy
рефакторинг вместо разработки с нуля
Real-time
отслеживание водителей на карте
  • Глубокий рефакторинг legacy-кода на Kotlin: стабилизация без полного переписывания с нуля.
  • Устранены критические ошибки и нестабильность, которая вызывала срывы доставок и потери клиентов.
  • Высокоскоростное построение маршрута между десятками точек без зависаний.
  • Отслеживание водителей на карте в реальном времени.
  • Модуль цифровой документации: счета прямо из приложения.
  • iOS и Android готовы к публикации в App Store и Google Play.

Архитектура и персональные данные

Приложение обрабатывает персональные данные водителей и клиентов: геолокация, маршруты, контакты. Данные о местоположении водителя передаются только для расчёта маршрута и не хранятся без необходимости. Доступ к данным минимизирован по ролям.

Соответствие: 152-ФЗ, оператор ПДн в реестре РКН, ИСО 27001 (внедрение), локализация персональных данных. Реестр операторов: pd.rkn.gov.ru.

Часто задаваемые вопросы

Сколько стоит рефакторинг мобильного приложения?
Стоимость зависит от глубины проблем в legacy-коде, объёма покрытия тестами и набора нужных функций. Точную оценку даём после анализа кодовой базы.
Чем рефакторинг отличается от разработки с нуля?
Рефакторинг сохраняет работающие элементы продукта и накопленную бизнес-логику. Разработка с нуля обычно занимает больше времени и требует заново согласовывать все функции с заказчиком. Рефакторинг значительно быстрее и дешевле, если ядро продукта работает.
Как ускоряется расчёт маршрута через десятки точек?
Оптимизированный алгоритм обрабатывает граф маршрута в памяти и минимизирует запросы к внешнему API при пересчёте. Результат — быстрый ответ даже на десятках точек без зависаний интерфейса.
Как защищаются ПДн водителей и что требует 152-ФЗ?
ПДн водителей (геолокация, маршруты, контакты) хранятся на серверах заказчика в пределах РФ. Передаём шаблоны документов: политику обработки ПДн, уведомление регулятора и приказ об ответственном. Реестр операторов: pd.rkn.gov.ru.
Сколько времени занимает такой рефакторинг?
Сроки зависят от объёма проблем, покрытия тестами и набора новых функций. Типичный диапазон для рефакторинга Android-приложения средней сложности — 10–16 недель (отраслевой диапазон, не гарантия). Точные сроки фиксируем после аудита кодовой базы.

Наши клиенты

Компании из ритейла, медтеха, логистики и электронной коммерции, которым мы помогли с цифровыми продуктами.

SuperStep
Юнилаб
Plonq
Галамарт
Гром
move2Armenia
Мосокна
Вилка Ложка
Конга
xRouten
AIS

Услуги веб-студии YuSMP Group

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

Мобильная разработка

Нативные и кросс-платформенные приложения для iOS и Android под задачу и бюджет.

Подробнее →

Разработка мобильных приложений под iOS

Нативные приложения для iPhone и iPad на Swift и SwiftUI.

Подробнее →

Разработка мобильных приложений под Android

Приложения для Android на Kotlin и Jetpack Compose.

Подробнее →

Кроссплатформенный подход

Одно приложение сразу на iOS и Android на Flutter.

Подробнее →

Веб - разработка

SPA, порталы и веб-платформы на React / Next.js и Node.

Подробнее →

Backend-разработка

Серверная часть, API, базы данных и интеграции на Node.js, PHP и Python.

Подробнее →

Разработка под ключ

Продукт под ключ: аналитика, дизайн, разработка и запуск.

Подробнее →

MVP

Быстрый запуск ядра продукта, чтобы проверить гипотезу без лишних затрат.

Подробнее →

Тестирование

Ручное и автоматизированное тестирование — стабильный релиз на всех устройствах.

Подробнее →

UI/UX-дизайн

Исследование, прототип и дизайн-система — интерфейсы, которыми удобно пользоваться.

Подробнее →

Прототипирование

Кликабельный прототип для проверки идеи до разработки.

Подробнее →

Создание сайтов

Корпоративные сайты, лендинги и интернет-магазины под ключ.

Подробнее →

IT - аудит

Аудит ИТ-инфраструктуры, кода и безопасности.

Подробнее →

SEO‑продвижение

Вывод сайта в топ Яндекса и Google — трафик и заявки из поиска.

Подробнее →

Контекстная реклама

Яндекс Директ — заявки с первого дня и контроль цены лида.

Подробнее →

SMM‑продвижение

Соцсети и таргет — узнаваемость бренда, комьюнити и заявки.

Подробнее →

Обсудим ваш проект?

Расскажите задачу — за 1–2 дня вернёмся с оценкой сроков, бюджета и составом команды.

Телефон
Звонок бесплатный
Бесплатный аудит и оценка проекта — вернёмся с планом за 1–2 дня.

* При условии заключения договора на разработку. Услуга технический SEO аудит сайта предоставляется с отчетом и списком рекомендаций.

Нужно доработать приложение — обсудим

Расскажите задачу — за 1–2 дня вернёмся с оценкой сроков, бюджета и составом команды.