+7 (928) 854-24-62
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Заказать консультацию
IoT-проект

IoT-проект

Сделали приложение для фитнес-браслета без SDK и документации — и превратили «чёрный ящик» в рабочий продукт за 2 этапа

Заказчик обратился в ItFox с задачей – разработать кроссплатформенное мобильное приложение для фитнес-браслетов. Нам нужно было реализовать проект «под ключ» - от помощи в подборе смарт-устройства и анализа сопроводительной документации. до  релиза.

Работанадпроектом

Аналитика

Клиент пришел к нам с идеей и несколькими предложениями от заводов-производителей. Мы изучили SDK разных фитнес-браслетов и дали заказчику свои рекомендации по подбору. В итоге остановились на одном из образцов, но и с ним все было не так просто. На первый взгляд и уверения представителя завода, у фитнес-браслетов была вся необходима документация, однако после изучения материалов, мы обнаружили, что устройства сопровождались устаревшим SDK 2017 года:

  • Android-версия написана на Java — язык, который практически не используется в современных проектах под Android;
  • iOS-версия — на Objective-C вместо Swift, ;
  • код содержал ошибки и нерабочие фрагменты;
  • комментарии были на китайском языке и не давали технической информации;
  • было непонятное название методов;
  • и закрытый исходный код.

Имея такое SDK невозможно предугадать «поведение» оборудования, его возможности и структуру данных. Мы сообщили клиенту о рисках. Вместе приняли решение разделить проект на два этапа:

Этап 1. Создание прототипа приложения для iOS и Android для IoT-браслета без дизайна. Цель - проверка возможности подключения и обмена данными между BLE-устройством и API клиента.

Этап 2. Доработка функционала и интерфейса после подтверждения работоспособности браслета.

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

Исследование и восстановление BLE-протокола

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

  1. Система видит девайс и подключается к нему. 
  2. Даем запрос к устройству: «Какие поля для чтения у тебя есть?», «Какие поля для записи у тебя есть?». То есть Bluetooth не активный, он отвечает на запросы только при подключении.
  3. В ответ получаем набор GUID — уникальных кодов, по которым обращаемся к нужным данным.

Каждый GUID отвечает за отдельный параметр —  Heart Rate, Running Speed, Blood Pressure, Health Thermometer, Glucose, Body Composition, Weight Scale, Pulse Oximeter, и т.д. 

Однако в нашем случае, все оказалось непросто. Производитель фитнес-браслетов решил сэкономить на стандартизации Bluetooth и вместо порядка 20-ти полей, сделали только два: одно для записи запроса и одно для чтения ответа.  Поэтому работа с BLE приобрела вид: вручную формируем бинарный запрос о том, что мы хотим прочитать, и записываем его в одно из полей, из другого поля нам возвращается ответ.

Разработка мобильного приложения

После восстановления BLE-протокола и проверки работоспособности устройства мы перешли к разработке мобильного приложения. Мы создали кроссплатформенное приложение для iOS и Android. Основная задача заключалась в том, чтобы реализовать устойчивый обмен данными между браслетом и API. 

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

Столкнулисьсаналогичнойпроблемой?
Поможем решить.

Похожиепроекты

TVAP STORY
Сделали онлайн-редактор, который уверенно тянет файлы до 180 МБ без лагов и с честными 60 fps.
TVAP STORY
#python
#flutter
#кроссплатформеннаяразработка
VELO
Создали MVP сервиса доставки еды для Нигерии за 4 месяца — первое приложение для отдалённых регионов.
VELO
#python
#flutter
#кроссплатформеннаяразработка

Результаты

По итогам первого этапа клиент получил рабочий прототип мобильного приложения. Команда ItFox заново настроила устройство, провела тесты, наладила передачу данных и подтвердила, что эта модель будет стабильно работать. Проще говоря — клиент получил уверенность и «зеленый свет» на закупку партии.

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

  • поиск и подключение к устройству;
  • создание и авторизация пользователя на сервере клиента;
  • получение данных — частоты сердечных сокращений (Heart Rate), вариабельности ритма (Heart Rate Variability), количества шагов, показателей сна, уровня заряда батареи и текущего времени.

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

Сложности

У технологии BLE широкое применение. Кроме фитнес-браслетов на ее основе работают: беспроводные наушники, «умные» устройства для дома, системы контроля доступа, в т.ч. в автомобилях, бесконтактная оплата. Но работать с BLE непросто. Протокол не передает данные в привычных форматах. Это не JSON и не текст. Устройство отправляет только набор байтов. Чтобы получить корректные значения, нужно точно понимать, что означает каждый байт. Без этой информации расшифровать данные невозможно.

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

Команда ItFox провела декомпиляцию и дизассемблирование закрытой iOS-библиотеки, чтобы восстановить логику BLE-взаимодействия.  Библиотека была скомпилирована под архитектуру Darwin. Мы декомпилировали ее в ассемблер, затем преобразовали в C-код с помощью Ghidra. Таким образом, C-код и LLM помогли нам проанализировать логику взаимодействия и извлечь недостающие данные.

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

И тут случилась очень интересная вещь - выяснилось, что у китайской стороны уже есть SDK на Flutter. Однако, мы отнеслись ко всему философски, так как уже не в первый раз работаем с оборудованием и китайскими производителями.

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

Технологии

Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Фронтенд-разработка
Flutter
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Бэкенд-разработка
BLE (bluetooth low energy)
Ghidra
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Интеграции и фреймворки
Agile

Кейсы,которымимыгордимся

Жар-птица
Объединили 1С, сайт и мобильное приложение — это сократило время обработки заказов на 40% и увеличило повторные покупки на 30%.
Жар-птица
#мобильнаяразработка
#вебразработка
#python
УютСтрой
Создали интернет-магазин на 180 000 товаров и 800 заказов в день — запустили такой объём без операционного хаоса.
УютСтрой
#вебразработка
#python
#agile
Интэк. Резервы - 781-п
Внедрили автоматизацию по 781-П, которая сократила время расчётов на 60% и устранила ошибки ручного ввода.
Интэк. Резервы - 781-п
#django
#reactjs
#автоматизацияпроцессов
Смотреть все кейсы

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

Телефон
Telegram
Max
Почта
Другое
менее 1 млн. ₽
1 млн. - 5 млн. ₽
5 млн - 10 млн. ₽
более 10 млн. ₽
Файл не выбран
Допустимые форматы: jpg, jpeg, png, webp, heif, docx, pdf, txt.
Объем загружаемого файла не должен превышать 5 Мб
Напишите на email
hello@itfox-web.com
Позвоните по номеру
+7 (928) 854-24-62
или расскажите о проекте оставив заявку
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Поможем, даже если у вас нет технического задания
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Определим стоимость разработки
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Предложим способы снижения затрат на проект без потери качества
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Дадим рекомендации по повышению эффективности вашего проекта