Про «зоопарк» девайсов в медтех
На каждом собесе я рассказываю про свой прошлый проект и многие думают, что если ты работаешь в медицинском проекте то у тебя весь стол завален проводами и датчиками и ты сидишь весь в присосках. Вообщем кажется что там какой-то дикий зоопарк из железок которые не хотят друг с другом дружить.
На самом деле если ты Senior то твоя задача как раз сделать так чтобы этого зоопарка не было. В моем прошлом проекте mebix все начиналось просто - был GlucoCheck Gold и библиотека react-native-ble-plx. Читаем данные по блютузу, все понятно. Но позднее потребовалось затаскивать FreeStyle Libre (тоже девайс для мониторинга глюкозы) и тут встал выбор - пишем еще один класс для интеграции с новым девайсом или есть более удобная обертка? Вместо того чтобы городить огород я взял react-native-spike-sdk потому что у них уже была готовая интеграция.
В итоге GlucoCheck так и остался на прямой интеграции через react-native-ble-plx, а вот Spike взял на себя FreeStyle Libre и еще несколько новых девайсов.
30 июня 2025 в своем блоге Google сообщили, что Google Fit API перестанет работать уже в следующем году. Они просто решили закрыть Google Fit и перекатить всех на Health Connect. Кто в теме тот знает какая это была головная боль. В тот момент у нас было 2 разных либы, одна для для google fit другая для apple health. Но нас опять выручил Spike потому что через него можно получать данные как Apple Health так и Google Health в одном формате и одним API.
Вообщем инженерная работа это не когда ты героически воюешь с кодом, а когда ты вовремя принимаешь решения чтобы приложение не превратилась в помойку. Со стороны кажется что там магия и тонна железа а по факту правильная архитектура и выбор правильных решений.
Кстати про батарейку и BLE тут дело не в “волшебной” библиотеке, а в том как ты работаешь с интервалами сканирования и бэкграунд-режимами. Если не настроить правильный цикл опроса девайса и держать коннект открытым вечно, то никакой SDK не спасет - аккум вылетит в трубу за пару часов. Оптимизация процесса запуска и инициализации тут решает больше, чем просто использование либы.