О клиенте
Наш клиент — технологическая компания в автомобильной отрасли, разрабатывающая собственную экосистему интеллектуальных устройств для автомобилей. В нее входили видеорегистраторы, контроллеры климатических систем, датчики телеметрии и системы автомобильной безопасности.
Для управления этими устройствами через мобильное приложение требовалось поддержать несколько каналов связи: мобильные сети, 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 и мобильными сетями избавило пользователей от необходимости выбирать канал подключения вручную.
- Фоновая обработка обеспечила стабильную работу приложения при передаче видео, загрузке записей и массовых операциях с файлами.