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

Кроссплатформенное приложение для мониторинга автомобилей и управления их системами на базе Kotlin Multiplatform и нативных компонентов.

О клиенте

Наш клиент — технологическая компания в автомобильной отрасли, разрабатывающая собственную экосистему интеллектуальных устройств для автомобилей. В нее входили видеорегистраторы, контроллеры климатических систем, датчики телеметрии и системы автомобильной безопасности.

Для управления этими устройствами через мобильное приложение требовалось поддержать несколько каналов связи: мобильные сети, Wi-Fi и Bluetooth.

Клиент обратился к СКЭНД за разработкой мобильного решения, которое обеспечило бы централизованное управление оборудованием и стало основой для дальнейшего развития продуктовой экосистемы. При этом важно было избежать дублирования сложной логики взаимодействия с аппаратными компонентами между версиями для Android и iOS.

  • Регион: Европа / международный рынок
  • Отрасль: Автомобильная промышленность / IoT / управление автопарком
  • Продолжительность проекта: 12 месяцев

Задача проекта

Основная задача заключалась в разработке производительного мобильного приложения для мониторинга транспортных средств и управления автомобильным оборудованием, а также в создании универсальной технологической основы для будущих продуктов клиента.

Перед командой СКЭНД стояли следующие задачи:

  • Обеспечить взаимодействие с различными типами устройств, использующими собственные API и протоколы связи.
  • Вынести логику управления оборудованием за пределы пользовательского интерфейса, чтобы повторно использовать ее в других приложениях.
  • Реализовать надежное переключение между Bluetooth Low Energy, Wi-Fi и мобильными сетями.
  • Организовать потоковую передачу видео, загрузку записей и массовые операции с файлами без снижения отзывчивости интерфейса.
  • Встроить библиотеки на C/C++ для высокопроизводительной обработки телеметрии, видеопотоков и обмена данными с устройствами.
  • Создать единый интерфейс для подключения новых моделей устройств без существенной переработки приложения.
  • Реализовать функции мониторинга состояния автомобилей, управления видеорегистраторами, климатическими системами, зажиганием и уведомлениями о событиях безопасности.

Обзор проекта

Команда СКЭНД разработала кроссплатформенное мобильное приложение с разделенной архитектурой, в которой пользовательский интерфейс и логика взаимодействия с автомобильным оборудованием были независимыми компонентами.

Для создания единого интерфейса на Android и iOS использовался Flutter. Ядро на Kotlin Multiplatform отвечало за обмен данными с устройствами, управление подключениями и выполнение бизнес-логики.

В ядро также были интегрированы нативные компоненты на C/C++. Они обеспечивали обработку низкоуровневых потоков данных, криптографических протоколов, видеопотоков и взаимодействие с периферийными устройствами.

Чтобы обеспечить повторное использование разработанной логики в других продуктах клиента, команда отделила KMP-ядро от пользовательского интерфейса и оформила его в виде самостоятельного Flutter-плагина.

Для поддержки разных моделей оборудования были разработаны унифицированные интерфейсы, преобразующие специфичные API устройств в общие команды приложения. Благодаря этому новые модели можно было подключать без изменения существующей архитектуры интерфейса.

Решение

СКЭНД создала кроссплатформенное приложение для мониторинга автомобилей и управления их системами, объединив интерфейс на Flutter, переиспользуемое ядро на Kotlin Multiplatform и нативные компоненты на C/C++.

Решение предоставило пользователям единый инструмент для контроля состояния автомобилей, управления поддерживаемыми функциями, работы с видеорегистраторами и взаимодействия с расширяющейся линейкой автомобильных устройств клиента.

Основные возможности платформы

  • Мониторинг состояния автомобилей на Android и iOS.
  • Переиспользуемое ядро KMP для управления аппаратными компонентами.
  • Отображение телеметрии, показаний датчиков и состояния устройств в режиме реального времени.
  • Просмотр видео с автомобильных видеорегистраторов в режиме реального времени.
  • Загрузка видеозаписей и управление файлами в галерее.
  • Автоматическая очистка хранилища.
  • Подключение устройств через Bluetooth, Wi-Fi и мобильные сети.
  • Управление зажиганием и климатической системой автомобиля.
  • Получение уведомлений о срабатывании сигнализации и событиях безопасности.
  • Обработка данных и видео с помощью нативных компонентов на C/C++.
  • Самостоятельный Flutter-плагин для повторного использования ядра в других приложениях.

Технологический стек

Для обеспечения кроссплатформенного управления автомобильными системами, повторного использования логики работы с оборудованием и высокопроизводительного взаимодействия с IoT-устройствами команда использовала следующий технологический стек:

  • Пользовательский интерфейс: Flutter, Dart.
  • Общее программное ядро: Kotlin Multiplatform (KMP), Kotlin/Native, самостоятельный Flutter-плагин.
  • Нативная интеграция: C/C++, JNI / cinterop, Pigeon.
  • Протоколы и каналы связи: Bluetooth Low Energy (BLE), Wi-Fi Direct, TCP/IP, MQTT, WebSockets.
  • Архитектура: Разделение пользовательского интерфейса и логики управления оборудованием, подход на основе переиспользуемого SDK.
  • Обработка данных: Многопоточная фоновая обработка телеметрии, мультимедиа и операций с устройствами.

Результаты

СКЭНД разработала кроссплатформенное приложение для мониторинга автомобилей и управления автомобильными системами, а также создала переиспользуемую основу для развития экосистемы устройств клиента. В частности:

  • Создано единое решение для Android и iOS.
  • Разработан независимый SDK для взаимодействия с оборудованием, готовый к интеграции в другие приложения.
  • Унификация интерфейсов сократила время подключения новых моделей устройств более чем на 50%.
  • Автоматическое переключение между Bluetooth, Wi-Fi и мобильными сетями избавило пользователей от необходимости выбирать канал подключения вручную.
  • Фоновая обработка обеспечила стабильную работу приложения при передаче видео, загрузке записей и массовых операциях с файлами.

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Мы любим новые проекты! Напишите нам, и мы ответим вам в ближайшее время.

Спасибо, что написали нам! Ваше сообщение было успешно отправлено. Мы обязательно ответим на него в ближайшее время. Пожалуйста, проверьте, получили ли Вы от нас письмо-подтверждение на указанную Вами почту.