Dev Story ГдеБагаж. История об iBeacon-приложении

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

Не удивительно, что в пору праздников и отпусков аэропорты многих популярных туристических направлений зачастую переполнены.

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

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

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

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

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

Для решения всех этих проблем мы создали мобильное приложение, которое назвали ГдеБагаж.

Смысл работы приложения чрезвычайно прост: в чемодан кладется специальное небольшое устройство – Bluetooth-маяк, который выполняет только одну функцию – излучает сигнал.

Приложение способно улавливать этот сигнал и по его уровню определять как далеко от вас находится ваш багаж. Поэтому с нашим приложением больше нет необходимости спешить занимать место у ленты выдачи багажа – ГдеБагаж известит вас о появлении вашего чемодана, и все что вам остается сделать – это подойти к ленте и забрать его.

Аналогичным образом обстоит дело, когда багаж находится рядом с вами, но вне поля видимости. В случае, если злоумышленник решит украсть ваш багаж, то по мере его удаления от вас, сигнал пропадет, вы увидите это в приложении, и успеете быстро среагировать.

Читайте также  Как вернуть исчезнувшую папку «Пользователи» после обновления OS X до версии 10.9.3 (Обновлено)

Идея написания данного приложения возникла в процессе просмотра лекции WWDC 2013 "Что нового в Core Location", где среди прочих нововведений в iOS 7 была представлена революционная технология навигации внутри помещений iBeacon. Именно технология iBeacon лежит в основе приложения ГдеБагаж.

Коротко о самой технологии

Как известно, внутри помещений навигация по GPS затруднена, поскольку стены и само здание является сильным барьером для обычной навигации. Поэтому в Apple решили вместо широты и долготы определять местоположение с помощью уровня сигнала от специального устройства – Bluetooth-маяка. Эта технология получила название iBeacon.

Технология iBeacon работает начиная с iOS 7.0 и поддерживается начиная со следующих устройств: iPhone 4s, iPad (начиная с 3го поколения), iPad mini, iPod touch (начиная с 5 поколения).

Более того, технология может использоваться и в Android-устройствах, которые умеют работать с Bluetooth и на них установлен Android 4.3 и выше.

Следует отметить, что Bluetooth-маяки, поддерживающие технологию iBeacon, являются устройствами с низким потреблением энергии. Один такой маяк может непрерывно работать от одной батарейки до полугода.

Вот так выглядит микросхема маяка.

Для того, чтобы iPhone-приложение могло "видеть" iBeacon-маяк, необходимо ввести специальный номер этого маяка, который выглядит примерно так:

E2C56WB5-DFRB-48D4-R030-D5F5A71396E1

Интересное отличие технической реализации работы с iBeacon-маяками в Android и iOS заключается в том, что для того, чтобы iOS 7 мог "видеть" маяк, необходимо, чтобы в самом приложении обязательно был указан его номер, тогда как в Android этой необходимости нет. Таким образом можно написать Android-приложение, которое будет видеть все маяки в помещении, номер которых приложению неизвестен, тогда как такое приложение для iOS написать нельзя. Было бы интересно услышать мнения в комментариях зачем в Apple поставили такое ограничение.

При создании интерфейса ГдеБагаж мы старались сделать его максимально простым и понятным. В деталях интерфейса мы ограничились только двумя элементами – изображением чемодана с возможностью установки цвета и фотографии, и показом расстояния до маяка в чемодане (нет сигнала, далеко, близко, очень близко).

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

, мы использовали новую возможность создания собственных эффектов смены экранов, которую Apple внедрили в iOS 7. При удалении багажа из приложения, экран багажа скрывается не стандартным привычным образом, а как бы разрывается на клочки.

Читайте также  Джейлбрейкеры добрались до Control Center

, другой интересной возможностью построения интерфейсов в iOS 7 является физический движок. Идея его заключается в том, что на множество элементов в интерфейсе приложения можно наложить действие различных физических явлений – гравитации, упругости, сопротивления и т.д. В приложении ГдеБагаж физический движок использовался для построения презентации. При просмотре презентации обратите внимание как по-разному выходят чемоданы на презентации получения багажа. Достигается это как раз путем установки различных физических параметров, влияющих на движение багажа.

Примерно два месяца ушло на разработку приложения. Одной из основных сложностей в процессе создания оказалась сложность с покупкой iBeacon-маяков. Мы заказали экземпляры маяков у основных производителей (estimote, kontakt, китайцы). Сложность возникла на таможне. Поскольку маяки содержат bluetooth, а bluetooth в своей работе часто использует шифрование, то для оформления посылки таможенники требуют нотификацию ФСБ о том, что маяки не представляют угрозу России. Несколько посылок в итоге было отклонено по этой причине.

Еще одним неприятным сюрпризом для нас оказался процесс рассмотрения приложения цензорами AppleStore. На модерацию приложения ушло в общей сложности 17 дней.

Похоже процесс модерации приложений, которые используют технологию iBeacon еще не отработан, поскольку при модерации цензоры Apple попросили записать видеоролик о том, как работает приложение с биконами. Это произошло 26 марта (статус Metadata Rejected) спустя 6 дней после отправки. В тот же день мы сняли видеоролик демонстрирующий работу приложения, залили на ютуб, и отправили им ссылку. Прошло еще 5 дней, и мы получаем тот же самый отказ с причиной, что им нужна ссылка на видеоролик. Мы ответили, что ссылку на ролик мы отправили, и выложили на всякий случай тоже видео к себе на сайт, и отправили еще раз. Подождав еще 6 дней мы наконец получили одобрение, и приложение появилось в AppStore. Думаю разработчикам iBeacon-приложений стоит иметь в виду этот опыт при отправке своих приложений. Готовьте заранее видеоролик с демонстрацией работы.

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

Читайте также  Взлом на миллион

В конце концов мы решили купить билеты в Париж, и посмотреть работу приложения в реальных условиях. Наши худшие опасения не оправдались, приложение заметило багаж примерно за 30 секунд до его выхода на ленту.

Где взять маячки?

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

Если вы хотите приобрести фирменный маячок приложения ГдеБагаж (как на фотографии), вы можете оставить предзаказ через приложение.

Также вы можете купить купить маячок через Ebay напрямую в Китае. Это самый недорогой и безопасный с точки зрения таможни вариант. Проблем на таможне с доставкой таких маячков у нас не было.

При покупке обращайте внимание, чтобы была информация о номере маячка (UUID), иначе добавить в приложение его будет сложно.

При покупке маячков на сайтах http://estimote.com/ и http://kontakt.io/ имейте в виду, что велик риск получить проблемы на таможне. Мы делали несколько заказов на этих сайтах, и проблемы были всегда. Примерно в 50% случаев нам удавалось убедить таможню, что маячки не содержат функции шифрования и не будут использоваться в коммерческих целях (для этого им нужно как минимум показать документ от производителя, который подтверждает отсутствие шифрования, технические характеристики, и описание протокола).

Вот наше видео, которое показывает приложение в работе.

iPhone + iPad: Free [Скачать в App Store]

Android: Free [Скачать в GooglePlay]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: iphones.ru

Dream Clean