Розробка мобільного додатку для автомобільної телематики

Ми розробляємо мобільні додатки для автомобільної телематики, які перетворюють розрізнені дані з трекерів у керовану картину автопарку. 8 років досвіду — це десятки інтеграцій з Teltonika, Concox та Queclink, кожна з яких вимагала глибокого розуміння бінарних протоколів та real-time архітектури. Моб

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мобільного додатку для автомобільної телематики
Складний
від 2 тижнів до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Ми розробляємо мобільні додатки для автомобільної телематики, які перетворюють розрізнені дані з трекерів у керовану картину автопарку. 8 років досвіду — це десятки інтеграцій з Teltonika, Concox та Queclink, кожна з яких вимагала глибокого розуміння бінарних протоколів та real-time архітектури. Мобільний додаток стає єдиним вікном для диспетчера: карта з живими маркерами, алерти, звіти та аналітика — все в одному інтерфейсі.

Ми використовуємо open-source платформу Traccar як основу серверної частини. Це дає готову підтримку 200+ протоколів трекерів, REST API та WebSocket для real-time. Замість того, щоб писати інтеграцію з нуля, ми зосереджуємося на бізнес-логіці та користувацькому досвіді. Кожен новий трекер додається за 1-2 години, що значно прискорює розробку порівняно з написанням інтеграції з нуля.

Структура телематичного блоку управління

ТБУ (або AVL-трекер) — OBD-II або CAN-пристрій з GSM/LTE модемом, GPS-модулем та внутрішньою пам'яттю для буферизації. Популярні серії: Teltonika FMB (FMB920, FMB003, FMB125), Concox GT06N, Queclink GV500. Дані передаються на сервер по TCP у пропрієтарному бінарному протоколі. Teltonika Codec 8/8E — найпоширеніший. Структура AVL-запису:

Повна структура AVL-запису Codec8
Поле Розмір (байт) Опис
Timestamp 8 Unix ms
Priority 1 0–3
Longitude 4 int32 × 0.0000001
Latitude 4 int32 × 0.0000001
Altitude 2 int16 (метри)
Angle 2 uint16 (градуси)
Satellites 1 uint8
Speed 2 uint16 (км/год × 10)
IO count 1 кількість IO елементів
IO elements N пари ID-Value

Парсинг на сервері (Go):

type AVLRecord struct { Timestamp time.Time Longitude float64 Latitude float64 Altitude int16 Angle uint16 Satellites uint8 Speed uint16 IOElements map[uint16]int64 } func parseAVLRecord(r *bufio.Reader) (AVLRecord, error) { var rec AVLRecord var tsMs uint64 binary.Read(r, binary.BigEndian, &tsMs) rec.Timestamp = time.UnixMilli(int64(tsMs)) var priority uint8 binary.Read(r, binary.BigEndian, &priority) // GPS Element: lon(4), lat(4), alt(2), angle(2), sat(1), speed(2) var lonRaw, latRaw int32 binary.Read(r, binary.BigEndian, &lonRaw) binary.Read(r, binary.BigEndian, &latRaw) rec.Longitude = float64(lonRaw) / 10_000_000.0 rec.Latitude = float64(latRaw) / 10_000_000.0 // ... решта полів return rec, nil } 

Чому Traccar — оптимальний вибір для серверної частини?

Traccar — open-source платформа, яка знає 200+ протоколів трекерів і надає REST API та WebSocket. Вона розгортається за 2-3 дні, що в 30-60 разів швидше, ніж розробка власної серверної платформи (3-4 місяці).

Згідно з офіційною документацією, Traccar підтримує 200+ протоколів. GitHub: Traccar

Параметр Traccar Самописна платформа
Час запуску 2-3 дні 3-4 місяці
Підтримка протоколів 200+ (вбудована) Потрібно писати кожну інтеграцію
Real-time WebSocket з коробки Розробляти з нуля
Масштабування До 10 000 пристроїв Обмежене

Traccar REST API для мобільного клієнта:

interface TraccarApi { @GET("devices") suspend fun getDevices(@Query("groupId") groupId: Long? = null): List<Device> @GET("positions") suspend fun getLatestPositions( @Query("deviceId") deviceId: Long? = null ): List<Position> @GET("reports/trips") suspend fun getTrips( @Query("deviceId") deviceId: Long, @Query("from") from: String, @Query("to") to: String, ): List<Trip> @GET("reports/events") suspend fun getEvents( @Query("deviceId") deviceId: Long, @Query("from") from: String, @Query("to") to: String, @Query("type") types: List<String>, ): List<Event> } 

Real-time позиції — WebSocket Traccar (wss://server/api/socket):

class TraccarLiveSession(private val baseUrl: String, private val sessionCookie: String) { fun observe(): Flow<TraccarMessage> = callbackFlow { val client = OkHttpClient.Builder() .readTimeout(0, TimeUnit.MILLISECONDS) .build() val ws = client.newWebSocket( Request.Builder() .url("wss://$baseUrl/api/socket") .header("Cookie", "JSESSIONID=$sessionCookie") .build(), object : WebSocketListener() { override fun onMessage(webSocket: WebSocket, text: String) { trySend(Json.decodeFromString(text)) } override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) { close(t) } } ) awaitClose { ws.close(1000, null) } } } 

Як забезпечити плавну анімацію маркерів на карті?

Google Maps SDK — стандарт для Android, MapKit для iOS, Mapbox або Yandex MapKit для російського ринку. Маркери рухаються плавно між позиціями з інтерполяцією:

private fun updateVehicleMarker(position: Position) { val latLng = LatLng(position.latitude, position.longitude) val existing = vehicleMarkers[position.deviceId] if (existing == null) { vehicleMarkers[position.deviceId] = map.addMarker( MarkerOptions() .position(latLng) .icon(getVehicleIcon(position.attributes["ignition"] as? Boolean ?: false)) .rotation(position.course.toFloat()) .flat(true) )!! } else { ValueAnimator.ofFloat(0f, 1f).apply { duration = 1000 interpolator = LinearInterpolator() val from = existing.position addUpdateListener { anim -> val f = anim.animatedFraction existing.position = LatLng( from.latitude + (latLng.latitude - from.latitude) * f, from.longitude + (latLng.longitude - from.longitude) * f ) existing.rotation = position.course.toFloat() } }.start() } } 

Кластеризація для автопарків з > 50 машин — обов'язкова: ClusterManager з Maps SDK Utilities без неї карта гальмує при сотнях маркерів.

Історія поїздок та геозони

Трек поїздки — Polyline за списком GPS-точок. Колір лінії по швидкості дає миттєве візуальне розуміння манери їзди:

fun drawSpeedColoredRoute(points: List<Position>) { points.zipWithNext().forEach { (from, to) -> val color = when { to.speed > speedLimitKph -> Color.RED to.speed > speedLimitKph * 0.8 -> Color.YELLOW else -> Color.GREEN } map.addPolyline( PolylineOptions() .add(LatLng(from.latitude, from.longitude)) .add(LatLng(to.latitude, to.longitude)) .color(color) .width(4f) ) } } 

Геозони — полігони на карті, при перетині сервер генерує події. Створення геозони з додатку: малюємо полігон тапами, відправляємо координати в Traccar Geofences API. Прив'язка пристрою через notificationTypes.

CAN-дані та розширена телематика

Через OBD-II порт або CAN-шину отримуємо: рівень пального, пробіг з ECU, оберти, навантаження, коди DTC, температуру. Дані приходять в IOElements AVL-запису по IO ID. Для Teltonika: ID 12 = ignition, ID 67 = CAN speed, ID 82 = CAN fuel level. На сервері зберігається мапінг, клієнт отримує вже іменовані поля.

Сповіщення та алерти

Алерти налаштовуються на сервері та доставляються через FCM або APNS. Типові алерти автопарку:

  • перевищення швидкості > X км/год
  • виїзд з геозони в неробочий час
  • тривала стоянка з увімкненим двигуном (витрата на холостому ходу)
  • розряд акумулятора (< 11.8 В)
  • різке гальмування / прискорення
  • втрата зв'язку з пристроєм > 5 хвилин

На клієнті — стрічка алертів з фільтрацією, перехід до карти в момент події.

Етапи розробки додатку для телематики

  1. Аудит парку трекерів — визначаємо підтримувані протоколи, частоту відправки даних, параметри IO.
  2. Налаштування сервера Traccar — встановлення, конфігурація протоколів, налаштування алертів та звітів.
  3. Розробка мобільного клієнта — UI для карти, звітів, алертів, налаштувань геозон. Реалізація WebSocket-з'єднання.
  4. Інтеграція з CAN-даними — якщо потрібна розширена телематика, підключаємо OBD-II або CAN-шину.
  5. Тестування на реальних пристроях — перевірка стабільності при різних навантаженнях.
  6. Деплой в App Store та Google Play — підготовка метаданих, проходження рев'ю.

Кожен етап завершується демонстрацією замовнику. Після запуску надаємо місяць підтримки.

Що входить у роботу (deliverables)

  • Документація: технічне завдання, API-документація, інструкція з експлуатації.
  • Доступи: до репозиторію коду, сервера та інструментів моніторингу.
  • Навчання: онлайн-сесія для диспетчерів та адміністраторів.
  • Підтримка: 1 місяць безкоштовної технічної підтримки після запуску.
  • Гарантія: 6 місяців на виправлення помилок, виявлених після здачі.

Терміни та оцінка

Базовий додаток на Traccar: 8–12 тижнів. Кастомна платформа з CAN-даними та білим міткою: 4–6 місяців. Вартість розраховується індивідуально — від $5000 для MVP. Зв'яжіться з нами для оцінки вашого проєкту. Отримайте консультацію інженера з вибору трекерів та архітектури. Економія пального до 30% при впровадженні системи контролю витрати. Працюємо з гарантією якості та сертифікованими трекерами. Пишіть на пошту або заповніть форму — оцінимо проєкт за 1 день.