Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
ItFox
Разработка мобильного приложения для фитнес-браслета с нестандартным BLE-протоколом.
ItFox
#Приложение под ключ

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

73 
ItFox Россия, Сочи
Поделиться: 0 0 0
Клиент

Стартап

Сфера

Развлечение и спорт

Регион

Россия, Москва

Мобильная платформа

iOS, Android

Сдано

Октябрь 2025

Задача

Заказчик обратился с задачей – разработать кроссплатформенное мобильное приложение для фитнес-браслета. Девайсы он заказал в Китае. Приложение должно было подключаться к браслету, считывать пользовательские метрики (пульс, шаги, сон и др.) и передавать их в API клиента.

Главной сложностью проекта стало отсутствие актуальной документации и нестандартный BLE-протокол.

Решение

Смарт-устройства сопровождались SDK 2017 года. Такая устаревшая документация означала, что:

· Android-версия написана на Java — язык, который практически не используется в современных проектах;

· iOS-версия — на Objective-C, исходные коды закрыты полностью;

· код частично нерабочий.;

· комментарии — исключительно на китайском, без технической ценности.

Такое SDK не позволяло понять, как именно ведет себя устройство и какие данные оно может передавать. Чтобы снизить риски, вместе с заказчиком мы решили разделить проект на два этапа.

1. Создание MVP-приложения без дизайна, для проверки подключения и передачи данных между браслетом и API.

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

1Работа с нестандартным BLE-протоколом.

Для взаимодействия со смарт-устройствами используется протокол Bluetooth Low Energy (BLE). Обычно процесс работы с BLE выглядит так:

1. Система обнаруживает устройство и подключается к нему.

2. Отправляется запрос: какие характеристики доступны для чтения и записи.

3. В ответ устройство возвращает список GUID-параметров (Heart Rate, Weight, Blood Pressure и т.д.) — уникальных идентификаторов.

Обычно GUIDов порядка 20ти. Однако в нашем случае производитель вместо стандартных двадцати характеристик реализовал только два поля: одно для записи запроса и одно для чтения ответа. Это означало, что все запросы команде придется формировать вручную в бинарном формате.

Протокол BLE не использует привычные форматы вроде JSON или XML. Взаимодействие с устройством происходит через последовательности байт: отправляешь набор чисел и получаешь в ответ другой. Без понимания того, что означает каждая байтовая позиция, расшифровать данные невозможно. Поэтому при работе с нестандартным BLE-протоколом основная сложность заключалась не в подключении устройства, а в исследовании и отладке протокола — чтобы восстановить логику кодирования данных.

Итак, в этом проекте все бинарные запросы пришлось формировать вручную — документации не существовало. 

Часть данных для создания запросов удалось извлечь из Android-кода на Java. Мы использовали только те фрагменты, назначение которых удалось определить: экспериментально проверяли, какие последовательности байт соответствуют конкретным показателям устройства. Оставшиеся данные пришлось восстанавливать через анализ iOS-библиотеки. Команда ItFox выполнила декомпиляцию и дизассемблирование закрытой библиотеки, чтобы разобраться в логике BLE-взаимодействия. Так как она была собрана под архитектуру Darwin, мы перевели ее в ассемблерный код, а затем преобразовали в C при помощи Ghidra. Это позволило проанализировать алгоритмы обмена и извлечь недостающие параметры протокола.

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

В процессе общения выяснилось, что у китайской стороны уже существует обновлённая версия SDK, разработанная на Flutter. Клиент получил её и передал нам для анализа. Новое SDK также потребовало доработок, однако содержало рабочие исходники.

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

Результат

По итогам первого этапа был создан рабочий прототип мобильного приложения.

Функционал прототипа включает:

· поиск и подключение к фитнес-браслету;

· создание и авторизацию пользователя на сервере клиента;

· получение и передачу данных.

Сейчас команда приступила ко второму этапу — разработке интерфейса и финального дизайна приложения. Мы формируем структуру экранов, прорабатываем UX и добавляем функционал, который сделает продукт удобным для пользователей.


Стек технологий

  • Flutter Flutter Фреймворк/библиотека

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

ItFox с удовольствием обсудит вашу задачу

Оставить заявку