Gatewait — знай свой гейт раньше всех
Что делать, если надоело ждать объявления гейта в аэропорту? Правильный ответ – создать мобильное приложение Gatewait.
Я часто бываю в европейских аэропортах и заметил одну особенность – гейты обычно объявляют не раньше, чем за двадцать минут до посадки. Это немного раздражает, и из-за этого множество людей вынуждено часто проверять ближайшее табло в ожидании своего гейта. Выглядит это примерно так.
Мне, мобильному / фронтенд разработчику было тяжело смириться с такой ситуацией. Летая одними и теми же рейсами, я заметил, что гейты иногда или повторяются, или находятся рядом. Для начала я решил проверить эту гипотезу.
Время собирать данные
Я поднял бэкенд проекта на базе Google Cloud Platform с помощью одной виртуальной машины, одной базы данных Postresql и пары NodeJS скриптов. Каждый день ровно в полдень Google Cloud Scheduler запускает cloud функцию, которая включает виртуальную машину. Виртуальная машина запускает инстанс базы данных и запрашивает публичное API flightstats.com около 400 раз, по количеству крупнейших аэропортов мира. Ежедневно скрипт кладет в базу около 150 тысяч рейсов и обновляет статистику гейтов для каждого рейса. Каждый день база данных увеличивается на 250 мегабайт, в месяц прирост соответственно 7 гигабайт.
После успешного парсинга в 12 часов 45 минут пополудни база данных выключается, виртуальная машина останавливается и город засыпает. Такая тактика позволила снизить все расходы на инфраструктуру до ~ 20 фунтов в месяц.
По необходимости я включаю базу руками и с помощью локального NodeJS скрипта конвертирую информацию в CSV формат, который можно легко перевести в формат базы Realm – это одна из самых популярных и быстрых баз данных для мобильных приложений. Файл базы весит около 35 мегабайт, но зато приложение работает оффлайн.
А что у нас на фронте
Моя законопослушность и любовь к типографике сподвигли меня на покупку лицензии на шрифт Graphein Pro за 72 фунта – он максимально похож на шрифты, которые используются на навигационных знаках аэропортов, и намного дешевле похожего Adobe Myriad Pro. Черно-желтая цветовая гамма тоже неслучайна – ее использует немало европейских аэропортов.
Само по себе приложение написано на Swift и состоит всего из двух экранов. Пользователь вводит номер рейса, нажимает кнопку Find Gates, и если сегодня удача улыбается ему, он увидит список гейтов для этого рейса. Напротив номера гейта – процент вылетов из него. Кроме того, приложение пробует достучаться до flightstats.com и узнать гейт для сегодняшнего рейса. В случае успеха желтый фон меняется на зеленый и появляется надпись "Connected to SVO / LHR / LED / код аэропорта".
Что исторические данные дают пользователю? Примерно прикинуть откуда может вылетать рейс. Какие-то рейсы могут иметь десять разных гейтов, другие – два или три. Часто они расположены неподалеку. В условиях больших аэропортов это дает возможность пассажирам не толпиться в центральных проходах, а отойти подальше и спокойно где-то сесть без опасений, что гейт будет в другом конце аэропорта. Проверить гейт в приложении – дело трех секунд.
Что дальше
Приложение бесплатное и не имеет никакой рекламы, кроме моей собственной как разработчика. Вскоре я добавлю поиск по аэропорту и маршруту. Главная цель проекта – сделать опыт пребывания в аэропорту более комфортным. Ну и радовать глаз – я постарался сделать дизайн таким, чтобы кровавые слезы их вам не застилали.
Критика, комментарии и предложения о сотрудничестве горячо приветствуются на daniel@lindir.co.uk.
Ссылка: