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

О продукте
Коротко — что это за продукт и для кого мы его делали.
xRouten — это приложение для водителей и служб доставки, которое строит маршрут по десяткам точек, ведёт водителя по карте и фиксирует факт доставки на каждом адресе. Диспетчер собирает тур из заказов, а водитель проходит его по оптимальному пути, отмечая выполнение и прикладывая подтверждающие документы прямо в приложении.
К нам обратились не с разработкой с нуля, а с уже работающим, но нестабильным продуктом: приложение страдало от низкой производительности, ошибок и критических багов, которые напрямую влияли на бизнес — вплоть до срыва доставок. Задача была стабилизировать приложение, переписать проблемные узлы и вернуть доверие пользователей.
Задача
Приложение работало на legacy-коде и накопило критические проблемы: низкая производительность, зависания при построении маршрутов между десятками точек, ошибки в ключевых функциях и баги, из-за которых водители теряли данные тура. Каждая такая ошибка стоила бизнесу дорого — срыв доставок и финансовые потери, а пользователи начали уходить.
Дополнительно проект осложняли языковой и географический барьер: интерфейс на немецком, а тестирование маршрутов шло на картах Германии. Нужно было разобраться в чужой кодовой базе, не сломав то, что уже работает, и системно исправить самые болезненные места.
Особенности проекта
Работа с legacy-кодом вместо разработки с нуля — мы погружались в существующую архитектуру, локализовали проблемные узлы и переписывали их, сохраняя рабочий функционал.
Высокие ставки — ошибки в приложении напрямую влияли на бизнес-процессы клиента: срыв доставок оборачивался финансовыми потерями, поэтому каждое изменение проверялось особенно тщательно.
Языковой и географический барьер — интерфейс на немецком языке, а тестирование строилось на маршрутах и картах Германии, что требовало отдельного внимания к локализации и проверке сценариев.
Рефакторинг с прицелом на будущее — новая структура кода позволяет легко интегрировать новый функционал и развивать продукт дальше.
Решение и подход
Как мы собрали продукт — от архитектуры до процесса.
Мы начали с аудита нестабильных мест: построение маршрутов, отслеживание водителей и фиксация доставок давали больше всего сбоев. Проблемные модули переписали на чистом Kotlin, оптимизировали алгоритм расчёта пути между десятками точек и убрали зависания.
Параллельно навели порядок в ключевых функциях: плавное отображение водителей на карте в реальном времени, цифровая документация с формированием и отправкой счетов клиентам, работающая платёжная система. Редизайн улучшил пользовательский опыт, а обновлённая структура кода сделала приложение готовым к публикации в App Store и Google Play.
Технологический стек
Инструменты подобраны под задачу продукта.
Почему рефакторинг, а не с нуля
Переписывание с нуля означает потерю накопленной бизнес-логики, дополнительные риски и отсрочку ввода для пользователей. Рефакторинг сохраняет работающие элементы, устраняет причины нестабильности и даёт продукт второе дыхание без полной остановки сервиса.
Клиентская часть переведена на Kotlin — официальный язык Android: полный доступ к API карт, фоновым сервисам и GPS без ограничений. Рассматривались альтернативы: React Native (быстрее старт, но хуже UX карты и ограниченный доступ к GPS API) и Flutter (близок по возможностям, но отдельная цепочка сборки). Выбор нативного Kotlin обусловлен требованиями к UX навигации и трекинга в реальном времени.
Функции продукта
Ключевые возможности, которые закрыли задачу бизнеса.
Скоростное построение маршрутов
Оптимизированный алгоритм рассчитывает путь между десятками точек тура без зависаний.
Отслеживание водителей на карте
Плавное отображение местоположения сотрудников в реальном времени для диспетчера.
Цифровая документация
Формирование и отправка счетов и подтверждений доставки клиентам прямо из приложения.
Фиксация факта доставки
На каждой точке водитель отмечает выполнение и прикладывает подтверждающие документы.
Карточка точки маршрута
Адрес, окно прибытия, заметки, контактное лицо и вложения по каждому заказу тура.
Платёжная система
Внедрён работающий модуль оплаты вместо нестабильного 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 — разграничение доступа, защита операций и платёжных данных при формировании счетов и подтверждений доставки.
В цифрах
- Глубокий рефакторинг legacy-кода на Kotlin: стабилизация без полного переписывания с нуля.
- Устранены критические ошибки и нестабильность, которая вызывала срывы доставок и потери клиентов.
- Высокоскоростное построение маршрута между десятками точек без зависаний.
- Отслеживание водителей на карте в реальном времени.
- Модуль цифровой документации: счета прямо из приложения.
- iOS и Android готовы к публикации в App Store и Google Play.
Архитектура и персональные данные
Приложение обрабатывает персональные данные водителей и клиентов: геолокация, маршруты, контакты. Данные о местоположении водителя передаются только для расчёта маршрута и не хранятся без необходимости. Доступ к данным минимизирован по ролям.
Соответствие: 152-ФЗ, оператор ПДн в реестре РКН, ИСО 27001 (внедрение), локализация персональных данных. Реестр операторов: pd.rkn.gov.ru.
Часто задаваемые вопросы
Сколько стоит рефакторинг мобильного приложения?
Чем рефакторинг отличается от разработки с нуля?
Как ускоряется расчёт маршрута через десятки точек?
Как защищаются ПДн водителей и что требует 152-ФЗ?
Сколько времени занимает такой рефакторинг?
Наши клиенты
Компании из ритейла, медтеха, логистики и электронной коммерции, которым мы помогли с цифровыми продуктами.
Услуги веб-студии 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‑продвижение
Соцсети и таргет — узнаваемость бренда, комьюнити и заявки.
Подробнее →Наши кейсы
Ещё продукты, которые мы спроектировали и запустили.

LiMP
Мобильный VPN для iOS и Android: WireGuard‑стек, no‑logs и сплит‑туннелирование.

Юнилаб
Приложение для сети медлабораторий: онлайн‑запись, результаты анализов, каталог услуг.

Личный кабинет для финтех‑сервиса
Веб‑кабинет: типы профилей, статистика по договорам, адаптив на Laravel и React.
Блог наших экспертов
Разбираем разработку и технологии простым языком.
Обсудим ваш проект?
Расскажите задачу — за 1–2 дня вернёмся с оценкой сроков, бюджета и составом команды.
Нужно доработать приложение — обсудим
Расскажите задачу — за 1–2 дня вернёмся с оценкой сроков, бюджета и составом команды.













