Разработка приложений для носимых устройств: крэш-курс по решению 4 неизбежных проблем
Время прочтения: 10 минут
Однажды мы взялись за мобильное приложение для миостимулятора PowerDot. В итоге вместе с заказчиком прошли путь от прототипа до предпродажной подготовки всей компании к сделке на 34 млн долларов. Разработка приложений для носимых устройств оказалась интересной технической задачей. Расскажем о главных проблемах, которые в ней встречаются, и поделимся своими решениями.

Что такое PowerDot
Мы работали со стартапом PowerDot, они выпускали миостимулятор для мышц. Такое устройство носится на теле, например, на икрах или прессе. Миостимулятор подключается к телефону по Bluetooth, как смарт-трекер.Носимое устройство посылает безопасные электрические импульсы к мышцам. Ток заставляет их сокращаться, имитируя естественные движения, будто человек напрягает мышцы во время упражнений.Миостимулятор PowerDot используют для дополнительного укрепления мышц и восстановления после тренировок. Например, в США врач может назначить электростимулятор людям в процессе реабилитации: после травм и операций нужно постепенно приводить мышцы в тонус.
Так выглядит миостимулятор на человеке
Мы создали мобильное приложение для обеих платформ, взяли на себя бэкенд и частично — ПО в самом устройстве.
Кто в итоге купил PowerDot
Сейчас проект PowerDot принадлежит компании Therabody. Раньше она называлась Theragun и выпускала одноимённый перкуссионный массажёр, а теперь у компании много подобных девайсов. Мы готовили проект к продаже вместе с заказчиком — стартап купили за $34 000 000.
Так выглядит приложение для миостимулятора
1. Проблема с Bluetooth в Android
Мы быстро выяснили, что у миостимулятора могут возникать сложности с Bluetooth-соединением с телефонами на Android. Сейчас мы знаем, что такая проблема наверняка возникнет при разработке приложения для любых умных устройств.Это происходит, потому что операционная система Android стоит на множестве разных моделей телефонов. И нельзя заранее знать, каким будет Bluetooth-соединение с вашим конкретным носимым устройством.Допустим, когда в Samsung выпускают новый телефон, то не занимаются тщательной отладкой Bluetooth-чипа и софта для него. Как правило, там проводят только несколько тыся ч базовых тестов. Проработка нестандартных условий и сценариев остаётся на совести разработчиков приложений, которым нужен Bluetooth.Почему проблемы нет на iPhone
На iPhone взаимосвязь железа и программного обеспечения хорошо отлажена. В Apple тестируют устройства на стабильность работы Bluetooth и проверяют устойчивость сигнала в разных условиях.Ещё у Apple есть программный интерфейс, разработанный специальной под Bluetooth-модуль iPhone. Поэтому проблемы с беспроводным соединением — это редкость. Если синхронизация сбоила на каких-то моделях, было ясно, где искать проблему, и мы быстро её преодолевали.Как мы всё решили
Из-за большого количества смартфонов на рынке, работа Bluetooth-модуля на телефонах с Android отлажена не так хорошо, как на iPhone. Вот как мы разбирались с этой проблемой:- Перепрошили миостимулятор, чтобы наладить беспроводное подключение. Вначале мы договорились, что разработаем только мобильное приложение. Но когда поняли, что придётся работать с ПО самого носимого устройства, позвали в проект специалиста по встроенным системам — embedded-разработчика.
- Определили модели Android-смартфонов, на которые мобильное приложение PowerDot ставили наиболее часто. Тестировали Bluetooth-соединение на них перед каждым новым релизом, чтобы заранее найти сбои.
Если проект на стартеПо нашему опыту, окончательно разобраться с проблемой Bluetooth-соединения на Android не выйдет — нужно всё время быть начеку, чтобы отлаживать новые сбои. Это затратно по времени и деньгам.Если ваш проект только на старте, советуем запустить п риложение для Android позже. Сделайте прототип только для iPhone — с системой там не возникнет серьёзных проблем. После первого релиза взяться за разработку под Android будет легче.
2. Попытка улучшать опыт только в приложении
Доработка железа в носимом устройстве — это медленно и затратно. Из опыта с PowerDot мы знаем, что на создание новой версии может уходить минимум 1–2 года.Обновление программного обеспечения носимого устройства — тоже непростая задача. Например, у миостимулятора нет подключения к интернету, значит, подгружать новое ПО пришлось бы через Bluetooth. Такое обновление важно покрывать тестами.Работать с приложением на смартфон легче, но тут есть риск застрять. Не все проблемы с носимыми устройствами решаются через отладку приложения — рано и ли поздно важно заставить себя пойти по более сложному пути и переработать хард и софт самого девайса. Так было и у нас.Как мы всё решили
Когда появились проблемы c Bluetooth, мы сначала решили разбираться с ними со стороны мобильного приложения. Положили на это все силы, постоянно выпускали апдейты.Проследили, что на каждой новой версии приложения количество плохих отзывов уменьшается, но всего на 10-15%. Поняли, что работа с приложением не решит проблему: на исправления ушло много времени и средств, но сбоев всё равно было много.Стало ясно, что решить проблему качественно можно только вмешавшись в ПО самого девайса. Мы поговорили с заказчиком, позвали на помощь embedded-разработчика и в итоге взялись перепрошивать последнюю версию миостимулятора. Поэтому Bluetooth-подключение к Android-смартфонам у третьего поколения PowerDot уже из коробки было на голову выше старых версий.Работайте вместе с командой embedded-разработкиМобильные разработчики и специалисты по встроенным системам должны работать сообща. Тогда решение таких комплексных проблем, как Bluetooth-соединение с Android, пойдёт легче. Вы сразу поймёте, в чём дело, и вовремя возьмётесь за ПО устройства вместо приложения, если будет нужно.
3. Тестирование на разных системах
В случае со смарт-девайсами пользоваться эмуляторами во время тестирования не получится. Здесь нужна целая куча физических устройств — разные модели телефонов и разные версии самих гаджетов.К тому же надо учитывать, что на телефонах редко стоит чистая операционная система Android. Производители используют для ОС свои оболочки — например, у Samsung она называется One UI. Поэтому, чтобы протестироваться соединение с миостимулятором, под рукой у нас было около десяти разных моделей смартфонов.
Тестируем подключение. На фото насчитали 10 телефонов
Как мы всё решили
Проверяли, как носимое устройство работает с приложением:- Имели под рукой все поколения миостимулятора PowerDot и телефоны с разными версиями операционных систе м. Так мы смогли тестировать все модели девайса с разными смартфонами.
- Если у Android или iOS выходило обновление — сразу брались тестировать носимое устройство уже на бета-версии операционной системы. Это помогало быстро защитить пользователей от проблем с подключением.
- Предложили юзерам участвовать в бета-тестах нашего приложения — пользователь испытывал свежую версию и делился фидбэком. Такие отзывы оказывались у нас, а не в магазине приложений, плюс мы узнавали о сбоях, прежде чем новая версия попадала в широкий доступ.
- Наши тестировщики и разработчики разобрались, как перепрошивать носимое устройство — для этой задачи нужен программатор. Так они могли быстро менять что-то в ПО миостимулятора и сразу проверять это в тестах.
4. Сбор и анализ фидбека
Проблему сбоев с Android-устройствами не получится решить до конца, а протестировать подключение ко всем моделям невозможно. Но вые проблемы возникают регулярно, поэтому в сторах у мобильных приложений смарт-гаджетов часто бывает много плохих отзывов. Чтобы улучшать пользовательский опыт, важно собирать фидбек из службы поддержки, это помогает быстро находить ошибки. Мы стремились искать уязвимости самостоятельно через постоянные тесты, чтобы замечать проблемы раньше юзеров.Где собирали фидбек юзеров
- Отзывы в маркетах. Когда пользователь замечает ошибку, он кратко пишет о проблеме в сторе. Мы отвечали на комментарии под приложениями для обеих операционных систем и просили связаться с нами по почте, чтобы рассказать подробности об ошибке.
Когда получали ответное письмо, быстро чинили ошибку через обновление, или объясняли человеку, как разобраться до выхода апдейта. Это помогло повысить рейтинг приложения в сторе.
- Саппорт PowerDot. Когда пользователь писал в поддержку, сообщение обрабатывалось через веб-сервис Gorgias. Служба саппорта спрашивала, какое носимое устройство подключает пользователь, и уточняла версию операционной системы. Затем специалист по пунктам помогал наладить подключение.
- Если текстового описания не хватало, просили скриншот или видео с экрана телефона, а иногда было важно снять, как работает сам миостимулятор. Когда разбирались, в чём дело — ставили проблему пользователя на первое место и работали над ней, затем быстро тестировали и выпускали апдейт приложения.
Если не понимали источник ошибки — пытались повторить её у себя. Для этого задействовали всю команду, работали над проблемой с тестировщиками, программистами и менеджерами.
Если ничего не срабатывалоТогда мы проводили бета-тест для одного конкретного проблемного юзера. Запускали тестовую версию через кабинет разработчика в сторе, и после воспроизведения ошибки пользователь передавал нам логи. Они помогали увидеть источник проблемы.
- Веб-форум внутри сервиса. Там пользователи обменивались обратной связью и сразу рассказывали об ошибках в приложении или подключении девайса. Здесь мы тоже собрали много полезного фидбека.