Квазар
Медицина и ветеринария
Россия, Москва
Февраль 2022
Приложение обеспечивает взаимодействие между терминалом медицинских осмотров и сервером. Терминал представляет собой комплекс оборудования для измерения параметров здоровья человека: температуры, давления, пульса и наличия паров алкоголя. После выполнения измерений результаты передаются на сервер.
Приложение позволяет взять часть функций терминала на себя: авторизацию пользователя, отображение данных и результатов измерений, рисование подписи и другое. В отличие от программного обеспечения терминала, приложение легко обновить через магазин приложений.
При реализации приложения были использованы BLE (Bluetooth Low Energy) и gRPC. В качестве SDK был выбран Kotlin Multiplatform, используемый для кроссплатформенной разработки.
gRPC позволяет передавать данные между приложением и сервером наиболее оптимальным образом в бинарном виде, минимизируя трафик, что повышает отзывчивость приложения и улучшает впечатление пользователя.
Беспроводная технология Bluetooth Low Energy использована для передачи данных между терминалом и приложением. Эта технология сложна для интеграции из-за проблем с установкой связи между устройствами.
Практика показала, что стандартное API BLE на Android с некоторыми устройствами не работает, могут не устанавливаться связь и появляться ошибки типа 101, 133. Иногда данные подключения могут сохраняться в кеше устройства, что также может приводить к неверному поведению. Сбросить кеш блютуза просто так нельзя, так как в API Android нет доступной функции. Для решения этой задачи была использована библиотека RxAndroidBle.
Для преодоления проблемы соединения с устройствами в приложение были добавлены несколько попыток повторного сканирования с таймаутами.
Мы приняли участие в разработке клиентской части мобильного приложения для медицинских осмотров, которое выступает в роли посредника между терминалом (комплексом оборудования для измерения температуры, давления, пульса и алкоголя) и сервером. Приложение берёт на себя ключевые функции терминала — авторизацию, отображение результатов, сбор подписи — и обладает преимуществом в виде удобного обновления через магазины приложений. Технически проект реализован с использованием Kotlin Multiplatform для кроссплатформенности, gRPC для эффективной бинарной передачи данных с сервером и BLE для связи с терминалом. Несмотря на сложности интеграции BLE на Android — включая ошибки соединения, кеширование параметров и отсутствие стандартных средств сброса кеша — нам удалось обеспечить стабильную работу за счёт внедрения библиотеки RxAndroidBle и механизма повторных попыток подключения с таймаутами. В результате создано отзывчивое, надёжное и легко поддерживаемое решение, улучшающее пользовательский опыт и оптимизирующее процесс медицинского осмотра.