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

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

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

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

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

Більшість дронів для B2B та B2C-ринку надають мобільний SDK: DJI Mobile SDK (iOS/Android), Parrot Ground SDK, Autel SDK, Skydio. Приложення «з нуля» без SDK — це реалізація MAVLink поверх UDP/TCP прямо на дрон, що має смисл для кастомних платформ на ArduPilot або PX4. Розглянемо обидва підходи, тому що вимоги до архітектури — принципово різні.

DJI SDK: де теряють час

Реєстрація приложення та офлайн-режим

DJI Mobile SDK потребує реєстрації AppKey на сервері DJI при кожному першому запуску. Без інтернету SDK не інітіалізується в повному обсязі. Це означає: приложення не може керувати дроном в зоні без зв'язку, поки хоча б раз не пройде онлайн-реєстрацію. Для промислових застосувань (інспекція трубопроводів, робота в ущельях) — це жорстке обмеження. DJI надає OfflineActivation через Enterprise-ліцензію, але це окремий контракт з ціною від кількох тисяч доларів на рік.

Жизневий цикл ProductKey та підключення

Алгоритм підключення в DJI SDK 5.x:

  1. SDKManager.getInstance().init() в Application.onCreate()
  2. SDKManager.getInstance().registerApp() — асинхронно, callback в ISDKManagerCallback
  3. Тільки після onRegisterSuccess починаємо слухати KeyedStore або FlightController

Типова помилка: розробник викликає FlightController.getState() до завершення реєстрації, отримує null, не обробляє це та приложення падає з NPE при першому реальному польоті. В SDK 4.x це було особливо неочевидно — деякі методи «працювали» на DJI симуляторе, але падали на реальному пристрої.

Video feed та затримка

DJI SDK декодує H.264/H.265 потік з дрона через власний VideoFeeder. Затримка стрімінгу на SurfaceView — 80–150 мс в нормальних умовах. Якщо намагатися обробляти кадри через ML (обнаруження об'єктів) та робити це на main thread — затримка зростає до 500+ мс та керування стає небезпечним. Правильна схема: декодовані кадри через MediaCodec з BUFFER_FLAG_END_OF_STREAM обробкою, ML-інференс у окремому корутинному dispatcher з Dispatchers.Default, результат виводиться з наступним кадром.

MAVLink на ArduPilot/PX4: архітектурні рішення

Для кастомних платформ використовуємо dronefleet/mavlink (Java/Android) або MAVLink.swift (iOS). Протокол — бінарний, конкретні message ID для керування: SET_POSITION_TARGET_LOCAL_NED, COMMAND_LONG з MAV_CMD_NAV_TAKEOFF / MAV_CMD_NAV_LAND.

З'єднання: Wi-Fi точка доступу дрона → UDP сокет порт 14550. На Android — DatagramSocket в CoroutineScope(Dispatchers.IO), heartbeat кожні 1000 мс через HEARTBEAT message. Якщо heartbeat не отримано від дрона 3 секунди — тригер аварійного стану в UI, блокування всіх команд керування.

Критична деталь: MAVLink-пакети ідуть по UDP без гарантії доставки. Для команд з квитуванням (COMMAND_LONG) дрон відповідає COMMAND_ACK. Якщо ACK не прийшло за 500 мс — повтор, максимум 3 спроби, потім failure state. Це надо реалізовувати руками — ніякого автоматичного retry в протоколі.

UI для керування: затримка та безпека

Віртуальний джойстик — найпоширеніший спосіб керування. Реалізація: MotionEvent на View, нормалізація координат до діапазону [-1, 1], відправка команди з частотою 20 Гц (раз в 50 мс). Нижче 10 Гц — дрон починає «плавати», вище 30 Гц — лишня нагрузка на канал зв'язку без приросту керованості.

Обов'язкові елементи безпеки в UI:

  • Кнопка Return-to-Home з підтвердженням (два тапи або hold 2 сек)
  • Індикатор рівня заряду батареї дрона з колірною індикацією (червоний при <20%)
  • Відображення RSSI сигналу RC/Wi-Fi каналу
  • Блокування команд взлету при GPS < 6 супутників (для режимів з GPS Hold)

Тестування без дрона

DJI надає Simulator в DJISDK — емулятор польоту з телеметрією. Для MAVLink — ArduPilot SITL (Software In The Loop) з симуляцією фізики. Обидва дозволяють прогонляти автоматизовані тести польотних сценаріїв. UI-тести через Espresso/XCUITest з мок-репозиторієм телеметрії.

Процес та терміни

Приложення з DJI SDK, базовим керуванням та видеопотоком — 4–8 тижнів. Кастомне рішення на MAVLink з розширеним UI, автономними місіями та аналітикою — 3–6 місяців. Оцінка після вивчення платформи дрона, вимог до функціональності та сертифікації (якщо потрібна публікація в сторах з дроном у категорії «небезпечні пристрої»).