Разработка мобильного приложения для грузоперевозок
Приложение для грузоперевозок — это не «такси для фур». Здесь другой бизнес-процесс: груз сопровождается документами, маршрут многоточечный с промежуточными остановками, водитель подтверждает погрузку/разгрузку фотографиями, а диспетчер должен видеть весь автопарк на карте с информацией о загрузке каждой машины.
Многоточечный маршрут и путевые листы
Маршрут грузовика — это не «от А до Б», а набор waypoints с адресами, временными окнами и типами остановок (погрузка / разгрузка / таможня). Directions API (Google или Mapbox) поддерживает waypoints, но для тяжёлого транспорта нужны ограничения: высота, вес, тип дороги. Google Maps Directions API имеет параметры avoid (highways, tolls, ferries), но специфических ограничений для грузовиков не предоставляет. Для этого — HERE Routing API с профилем truck или TomTom Routing API с указанием габаритов.
Путевой лист — цифровой документ в приложении. Водитель видит список точек, для каждой — адрес, контакт, временное окно, тип операции. По прибытии — подтверждение через GPS (автоматически, если устройство в радиусе 200 метров от точки) или ручное.
Фотоподтверждение погрузки/разгрузки
Водитель фотографирует груз при приёмке и сдаче. Требования: фото с геометкой и временной меткой, невозможность подделки (галерея заблокирована, только камера прямо из приложения).
На iOS — UIImagePickerController с sourceType: .camera. Координаты берём из CLLocationManager непосредственно в момент съёмки, записываем в EXIF через CIFilter или CGImageDestination. На Android — CameraX с ImageCapture.OutputFileOptions, координаты из FusedLocationProviderClient добавляются в EXIF через ExifInterface.
Фото грузят на сервер с retry-логикой — в дороге бывает EDGE или отсутствие сети. Multipart/form-data upload с паузой/возобновлением: на Android — WorkManager с Constraints по сети, на iOS — URLSession.uploadTask с background session (URLSessionConfiguration.background).
Электронная подпись получателя
Поле для подписи пальцем — PKCanvasView (iOS) или кастомный View с Path-рисованием на Canvas (Android). Подпись сохраняется как PNG + timestamp + координаты, прикрепляется к накладной. Важно: очистка холста при следующей доставке и предупреждение если попытались сохранить пустую подпись.
Трекинг и связь с диспетчером
Фоновый трекинг — аналогично водительскому такси-приложению: ForegroundService на Android, location background mode на iOS. Но для грузовика интервал обновления можно увеличить: раз в 30-60 секунд достаточно для контроля автопарка, это значительно экономит батарею.
Чат с диспетчером — простой real-time чат через WebSocket. Для грузоперевозок важны голосовые сообщения: водитель не может печатать за рулём. AVAudioRecorder (iOS) / MediaRecorder (Android), upload аудио на сервер, автовоспроизведение у диспетчера.
Интеграция с тахографами и телематикой
Продвинутый уровень: интеграция с бортовым OBD-II адаптером через Bluetooth (ELM327 или аналоги). CoreBluetooth / Android BluetoothGatt для считывания данных: скорость, пробег, расход топлива. Эти данные дополняют GPS-трекинг и дают диспетчеру полную картину о состоянии машины.
Не все клиенты это нужно на старте — закладываем архитектурную возможность без реализации.
Стек и этапы
Flutter для кроссплатформенной реализации — водитель может работать как с Android-бюджетником, так с iPad. Нативные модули для камеры, BLE и фоновой геолокации. Карты — Google Maps SDK или HERE Maps для грузового маршрутинга.
Этапы: анализ бизнес-процессов перевозки → проектирование структуры заказа и маршрута → разработка водительского клиента → разработка диспетчерской панели → интеграция с backend → тестирование на реальных маршрутах → публикация.
Срок: от 12 до 20 недель. Стоимость рассчитывается индивидуально после детального анализа требований.







