Imagine Cup 2014: путь к победе

в 15:28, , рубрики: разработка под windows phone

Imagine Cup 2014: путь к победе

Дорогой читатель, в этой статье мы решили рассказать тебе о нашем проекте [self tune]. За последние полтора года мы прошли большой путь от идеи до стартапа. Пусть мы окончательно еще не запустились, но у нас уже есть какой-никакой результат — победа в российском финале Imagine Cup 2014 в категории «Инновации». Путь этот был очень извилистый и проходил по очень ухабистой дороге. Надеемся, что тебе понравится наша история и ты тоже вдохновишься на свершения в сфере IT-стартапов.

Как все начиналось

Осенним вечером позапрошлого года пятеро студентов МФТИ пили чай в кабинете своего будущего научного руководителя. Он с упоением рассказывал о своем новом проекте, призванном помочь в психологической подготовке летчиков к полетам. Изюминкой его рассказа была технология, позволяющая определить уровень эмоционального напряжения человека, анализируя последовательность его сердечного ритма. Особенно впечатляло то, что для этого не требовалось ни какого-либо громоздкого и дорогостоящего оборудования, ни прохождения специальной процедуры измерения. Все, что было нужно — миниатюрный фитнес-датчик, надевающийся на грудь, и 5 минут измерения.

Мы и до этого интересовались современными технологиями, много программировали в учебных и рабочих целях и даже имели опыт создания собственных проектов. И, естественно, мы были воодушевлены новой идеей и не смогли отказаться от возможности воплотить её в жизнь своими руками. Мы с радостью приняли предложение заняться этим проектом в качестве нашей бакалаврской научной работы.

Первые шаги

Тогда мы даже и не подозревали, во что вырастет наш проект в будущем. Но мы сразу подошли к делу с большим энтузиазмом. Мы изучили все имеющиеся на рынке портативные датчики сердечного ритма, а также технологии, с помощью которых они обмениваются данными с телефоном или компьютером. Была куплена первая партия из 10 датчиков (как на картинке), работающих на Bluetooth 4.0, для тестирования. Стартовала разработка приложений для Windows и OS X. Работа закипела.

Imagine Cup 2014: путь к победе

И вот, спустя небольшое количество времени, большое количество строчек кода и огромное количество выпитого в процессе пива, мы задумались над ключевым в истории нашей команды вопросом: почему, имея преимущество дешевизны, доступности и удобства, мы ограничиваем использование нашей технологии такой узкой группой людей, как летчики? Ведь в наших руках была технология, позволяющая любому человеку быстро и точно измерять уровень стресса в домашних условиях. Чтобы максимально упростить процесс с точки зрения пользователя, мы решили перенести нашу технологию на смартфоны.

Набираем обороты

С этого момента мы принялись за работу с двойной силой и рвением. Собирались вместе в общежитии или институте как только у нас появлялось свободное время, в том числе и ночью, — и кодили, кодили, кодили. Были нарисованы, затем запрограммированы, затем перерисованы, переделаны и снова перерисованы и переделаны экраны приложения для iOS. Затем был написан сервер, реализующий сложные и громоздкие вычисления уровня стресса по последовательности пульса. После этого от сервера решено было отказаться, и точно такой же функционал был написан на Objective-C. Потом мы поняли, что погорячились, и решили объединить усилия наших серверных и мобильных разработчиков. Каждый день мы наперебой спорили о добавлении новых фич и улучшении существующих. Мы постоянно перерисовывали экраны приложения и меняли дизайн.

Мы были настолько увлечены происходящим, что проигнорировали одну из типичных ошибок начинающих IT-проектов. Мы подходили ко всему процессу только с позиции разработки и технологий, совершенно не задумываясь о пользователях. В итоге мы создали сложного и громоздкого монстра, оперирующего научными терминами и считающего все 30 различных показателей методики определения эмоционального напряжения, которую мы все еще параллельно развивали в рамках научной работы. Всем, кому мы показывали наше творение, безумно нравилась его идея, но в то же время всем приходилось долго объяснять как работает приложение и что оно вообще делает. В какой-то момент пришло понимание того, что дальше продолжать работу в том же ключе нельзя.

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

Второе рождение

Мы не стали мириться с тем, что по сути остались у разбитого корыта. Было решено начать все с чистого листа, при этом не повторяя старых ошибок. Буквально в тот же день после длительного брейнсторма мы придумали новое название — [self tune], и сделали на коленке наш сайт-визитку. Тогда же к нашей команде присоединился дизайнер и, по совместительству, супруга одного из основателей. Вооружившись новомодными веяниями из мира стартапов, а также книгами Стива Бланка и Эрика Риса, мы решили в корне изменить наш подход к проекту. Мы попытались понять, как наша технология сможет быть полезна пользователям и решить какую-то их насущную проблему. Оказалось, что уже сам факт того, что мы испытываем постоянное эмоциональное напряжение и стрессы, сам по себе является большой проблемой.

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

Именно так и зародилась идея приложения [self tune] в его нынешнем виде. Оно предлагает пользователю выполнить простой алгоритм из трех действий: померяй, расслабься и сравни результаты. Чтобы максимально упростить процесс измерения и никак не ограничивать наших пользователей, мы решили отказаться от использования датчиков. Вместо этого было решено реализовать в приложении современную технологию определения сердечного ритма с помощью пальца, приложенного к камере смартфона. Сам процесс измерения должен был занимать около минуты.

Imagine Cup 2014: путь к победе

Как же это работает?

Приложение работает по принципу «Померяй, Расслабься, Сравни».

На первом шаге измеряется исходный уровень стресса. Это возможно благодаря методике вариабельности сердечного ритма. Суть методики достаточно проста: частота сердцебиений изменяется с течением времени и даже два соседних сердцебиения имеют разную частоту (если можно так выразится). Например, значение пульса 60 вовсе не означает, что сердце бьется ровно 60 раз в минуту и временной промежуток между каждым из биений 1 секунда. На самом деле, временные промежутки между биениями сердца постоянно варьируются, и по закономерностям в этих вариациях можно судить о различных состояниях нервной системы, в том числе и стрессе.

Imagine Cup 2014: путь к победе

А как собственно мы получаем эти самые временные промежутки? Для этого используется камера телефона. Когда сердце человека работает, кровь пульсирует по всему телу, в том числе по пальцам. Это приводит к тому, что изображение пальца, освещенное ярким светом (например, вспышкой телефона), немного меняется, в частности меняется красная составляющая («R») этого изображения.

Imagine Cup 2014: путь к победе

Далее, по последовательности красных компонент, можно построить график, и, взяв пики графика за основу, посчитать эти самые расстояния. В конце измерения пользователь получает оценку своего «Stress health» от 0 до 100, где 100 — наилучший результат, который означает, что пользователь здоров (по-крайней мере, с точки зрения стресса). В конце измерения пользователь имеет возможность отметить свое субъективное эмоциональное состояние и текущий вид активности.

Imagine Cup 2014: путь к победе

На втором шаге, «Расслабься», мы предлагаем пользователю методику для расслабления, подобранную на основании данных о его фактическом (наша оценка) и субъективном состояниях, текущей активности, местоположении, истории записей и многих других параметрах. В этом и заключается наша инновация. Мы не просим пользователя выбрать методику, а сами предлагаем ему наиболее подходящую в данный момент. Это могут быть простые дыхательные упражнения, расслабляющая музыка, общие советы по избежанию стресса: например, пойти на прогулку, почитать книжку, сходить на пиво с друзьями. Список возможных методик нами только начинает формироваться и пополняется постоянно.

Imagine Cup 2014: путь к победе

После расслабления мы предлагаем пользователю померять свой стресс еще раз и сравнить, фактически, два числа: ДО и ПОСЛЕ. Таким образом, у пользователя будет возможность следить за своим прогрессом и на реальных результатах убеждаться в действенности методик. После всего этого пользователь может рассказать своим друзьям на Facebook о том, как он воспользовался приложением.

Imagine Cup 2014: путь к победе

Вот примерно так это работает:

Imagine Cup

Итак, работа снова закипела. Мы, следуя заветам Эрика Риса, твердо решили написать приложение с минимальным функционалом и выложить его в AppStore для скорейшего получения обратной связи от пользователей. Но этим планам не суждено было сбыться, по крайней мере пока, так как мы узнали о конкурсе Imagine Cup.

Решение принять участие в конкурсе было для нас очень важным и ответственным. В 2005 году команда из МФТИ, которую также курировал наш научный руководитель, победила на мировом финале Imagine Cup в Японии. К тому же, в последне время физтеховским командам не удавалось победить даже на российском финале, поэтому мы решили взять на себя ответственность защитить честь нашего института.

К подготовке мы подошли очень серьезно, и изначально нацеливались на победу. Много сил вкладывалось не только в доработку приложения, но и в подготовку красочной презентации и яркого оригинального выступления. С последним нам активно помогали ребята из совместного учебно-научного центра Parallels-МФТИ. В итоге к региональному финалу выступление было готово, но выложить приложение в AppStore мы не успели.

После победы на региональном финале нам намекнули, что для дальнейших побед в конкурсе от Microsoft необходимо иметь хотя бы прототип своего продукта на базе одной из технологий Microsoft.

Imagine Cup 2014: путь к победе

Времени до российского финала оставалось меньше месяца, но мы приняли этот вызов. К концу этого месяца напряжение только нарастало и страсти только накалялись. Кроме разработки приложения для Windows Phone, мы полностью переделали нашу презентацию, сценарий выступления, а также сняли промо-видео. Перед самим конкурсом мы много репетировали, и в последние дни почти не спали.

В результате все намеченные планы были выполнены, а демо-версия нашего приложения появилась в Windows Store.

Финал

И вот настал момент нашего выступления в категории «Инновации». Долгое время упорной работы над проектом и долгое время подготовки к конкурсу дали о себе знать. Мы стали победителями в своей категории, а также получили грант на доработку приложения от Фонда посевного финансирования Microsoft.

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

Imagine Cup 2014: путь к победе

За сценой

У всех без исключения участников команды основная профессия — «программист». За время разработки мы столкнулись с необходимостью научится писать программы для достаточно внушительного списка платформ: Windows 7, Windows 8/Store, OS X, iOS, Windows Phone, Azure и даже Android. В каждой из них есть свои прелести и свои недостатки. Например, для человека, привыкшего разрабатывать на C# для Windows, используя при этом Visual Studio, очень диким, сперва, покажутся XCode и Objective-C. Но постепенно привыкаешь к тому, что, казалось бы, элегантный код на C#, использующий Linq, например такой:

peaks.Sort((p1,p2) => p2.signalPower.CompareTo(p1.signalPower));

легким движением руки превращается в такой:

NSArray *sortedPeaksByPower = [peaks sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
        
        HRPoint *p1 = (HRPoint*)obj1;
        HRPoint *p2 = (HRPoint*)obj2;
        if (p1.signalPower > p2.signalPower) {
            return (NSComparisonResult)NSOrderedAscending;
        }
        
        if (p1.signalPower < p2.signalPower) {
            return (NSComparisonResult)NSOrderedDescending;
        }
        return (NSComparisonResult)NSOrderedSame;
    }];

И это только вершина айсберга. На самом деле, кросс-платформенность — самый большой вызов для любого IT-стартапа, ведь если ты не займешь свою нишу на Android, iOS или Windows Phone, это сделает кто-то другой.

Вместо послесловия

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

В свою очередь, хочется поблагодарить Microsoft за отличную возможность посоревноваться с лучшими студенческими IT-проектами, а также всех тех, кто помогал нам в работе. Всем без исключения участникам Imagine Cup мы желаем не останавливаться на достигнутом и продолжать развивать свои проекты! И в свою очередь надеемся, что наш проект сможет получить достойное развитие и изменить жизнь миллионов своих пользователей к лучшему.

Ссылки по теме

Автор: alexander_tar

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js