Розроблення мобільного застосунку для вантажних перевезень
Застосунок для вантажних перевезень — це не «таксі для вантажівок». Тут інший бізнес-процес: вантаж супроводжується документами, маршрут багатоточковий з проміжними зупинками, водій підтверджує навантаження/розвантаження фотографіями, а диспетчер має бачити весь автопарк на карті з інформацією про завантаженість кожної машини.
Багатоточковий маршрут та накладні
Маршрут вантажівки — це не «від А до Б», а набір waypoints з адресами, часовими вікнами та типами зупинок (навантаження / розвантаження / митниця). Directions API (Google або Mapbox) підтримує waypoints, але для важкого транспорту потрібні обмеження: висота, вага, тип дороги. Google Maps Directions API має параметри avoid (автомагістралі, платні дороги, пароми), але не забезпечує спеціальних обмежень для вантажівок. Для цього — 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), завантаження аудіо на сервер, автовідтворення у диспетчера.
Інтеграція з тахографами та телематикою
Продвинутий рівень: інтеграція з бортовим OBD-II адаптером через Bluetooth (ELM327 або аналоги). CoreBluetooth / Android BluetoothGatt для читання даних: швидкість, пробіг, витрата палива. Ці дані доповнюють GPS-трекінг і дають диспетчеру повну картину про стан машини.
Не всі клієнти це потребують на старті — закладаємо архітектурну можливість без реалізації.
Стек та етапи
Flutter для кроссплатформної реалізації — водій може працювати як з Android-бюджетником, так з iPad. Нативні модулі для камери, BLE та фонового геолокування. Карти — Google Maps SDK або HERE Maps для вантажного маршрутування.
Етапи: аудит бізнес-процесів перевезення → проектування структури замовлення та маршруту → розроблення водіївського клієнта → розроблення диспетчерської панелі → інтеграція з backend → тестування на реальних маршрутах → публікація.
Термін: від 12 до 20 тижнів. Вартість розраховується індивідуально після детального аналізу вимог.







