Кур'єрська служба без надійного інструменту для диспетчера — як аеропорт без диспетчерської вежі. Ми це знаємо: працювали з десятками кур'єрських сервісів, впроваджували рішення для керування потоком замовлень у реальному часі. Диспетчеру потрібно одночасно бачити карту з кур'єрами, обробляти чергу замовлень та реагувати на зміни — і все це на мобільному пристрої. На планшеті або телефоні — карта з десятками точок, черга необроблених замовлень і статуси активних доставок. Вимоги до UI щільніші, ніж у клієнтському додатку, а вимоги до надійності — вищі, ніж у кур'єрському. Нижче розберемо, як ми вирішуємо ці завдання за допомогою сучасного стеку, включаючи Flutter, Google Maps SDK і WebSocket.
Як забезпечити чутливість карти при десятках кур'єрів?
Два типи маркерів на одній карті: зелені точки — доступні кур'єри, червоні — активні доставки. При масштабуванні потрібна кластеризація, щоб карта не перетворювалася на кашу з іконок. Згідно з документацією Google Maps SDK, кластеризація обов'язкова при більш ніж 100 маркерах. MarkerClusterManager (Google Maps Android) або GMUClusterManager (iOS) з кастомним ClusterRenderer — колір кластера показує тип об'єктів всередині.
Докладніше про кластеризацію
Кластеризація групує маркери в групи, зменшуючи кількість елементів, що відмальовуються. При зумі кластери розпадаються. Ми використовуємо алгоритм на основі відстані (20 пікселів) і обмежуємо максимальну кількість маркерів на екрані до 50.Tap по маркеру кур'єра — спливаюча картка: ім'я, поточний статус, замовлень у роботі, ETA до наступної точки. З картки одразу — призначити нове замовлення або зателефонувати. Tap по маркеру замовлення — деталі замовлення, статус, призначений кур'єр (якщо є), кнопка переназначити.
Фільтрація та зони — розробка мобільного додатку
Кур'єрська служба може працювати по зонах міста. Диспетчер повинен фільтрувати карту по зоні, бачити лише своїх кур'єрів. Polygon overlay через GMSPolygon / MKPolygon з напівпрозорою заливкою для відображення зон. Перемикання зон — таб або dropdown зверху.
| Компонент | Інструмент | Версія |
|---|---|---|
| Карта | Google Maps SDK | Остання стабільна |
| Кластеризація | MarkerClusterManager / GMUClusterManager | — |
| Оверлеї зон | GMSPolygon / MKPolygon | iOS 14+ / Android 10+ |
Як автоматизувати розподіл замовлень?
Ручне призначення: диспетчер бачить нове замовлення, дивиться на карті найближчих вільних кур'єрів (підсвічені), вибирає зі списку. Список сортується за відстанню від точки відправки (серверний розрахунок через PostGIS ST_Distance). В середньому диспетчер обробляє до 50 замовлень на годину. Наші алгоритми скорочують час розподілу на 30%.
Автоматичний розподіл — кнопка «авто» вмикає серверний алгоритм. Диспетчер може втрутитися і переназначити. При переназначенні замовлення — попередній кур'єр отримує push-повідомлення «замовлення знято». Без цього кур'єр може приїхати на адресу і дізнатися, що замовлення вже доставив інший.
Черга необроблених замовлень
Список нових замовлень у реальному часі через WebSocket. DiffUtil (Android) / SwiftUI AnimatedList для анімації додавання/видалення рядків. Пріоритет — термінові замовлення виділяються кольором, сортування за замовчуванням — за часом оформлення. Лічильник неприйнятих замовлень — badge на іконці таба. Якщо диспетчер не обробляє чергу більше 5 хвилин — звуковий сигнал.
Чому важливий чат з кур'єром?
Комунікація в реальному часі знижує кількість помилок і прискорює вирішення проблем. Ми рекомендуємо вбудований чат, але для невеликих команд достатньо deep link в Telegram або WhatsApp з номером кур'єра. Для корпоративного рішення використовуємо Firebase Realtime Database або Supabase Realtime як backend для чату, простий RecyclerView / LazyColumn на клієнті. Голосові повідомлення — пріоритет на мобільному диспетчері. Записати і відправити швидше, ніж друкувати.
Аналітика зміни
Простий дашборд: замовлень прийнято / у роботі / завершено / скасовано. Середній інтервал доставки. Кур'єри за статусами. Оновлюється в реальному часі з WebSocket-потоку. Для поглибленого аналізу додаємо таблицю з метриками:
| Метрика | Опис | Період |
|---|---|---|
| Середній час доставки | Від призначення до завершення | Поточна зміна |
| Замовлень на кур'єра | Кількість замовлень на одного кур'єра | За день |
| Відсоток своєчасних доставок | Доставлено вчасно | За тиждень |
Не потрібен окремий екран аналітики — достатньо плашки поверх карти або бічної панелі на планшеті. Це дозволяє диспетчеру оперативно оцінювати ситуацію.
Що входить у розробку?
- Архітектурна документація — опис компонентів, діаграми потоків.
- Вихідний код — під контролем версій (Git), з CI/CD.
- Доступи до стор — публікація в App Store і Google Play.
- Навчання команди — 2 сесії по роботі з панеллю адміністратора.
- Гарантія — виправлення помилок протягом 6 місяців після релізу.
Ми займаємося мобільною розробкою більш ніж 5 років, реалізували 30+ проєктів для логістики та доставки. Наші рішення пройшли перевірку в експлуатації — гарантуємо стабільність і продуктивність. Якщо ви хочете покращити свою кур'єрську службу, замовте розробку мобільного додатку для диспетчера.
Строки та вартість
Строк: від 8 до 14 тижнів з урахуванням інтеграції. Вартість розраховується індивідуально — зв'яжіться з нами для точної оцінки. Отримайте консультацію по вашому проєкту вже сьогодні.







