Hackaton_weekend | Страх и ненависть в Ставрополе

06472807ae5f40b6b04e70e7c4ab8a62.jpg

У нас было два пакетика еды, 20 ядер, 26 гигабайт оперативки, 2 ящика редбулла и целое море разноцветных идей и решений…

Команда WITME готова отчитаться о хакатоне, который прошел в замечательном городе Ставрополе!

Участие стало для нашей команды своего рода тимбилдингом. О тимбилдинге мы уже писали в одной из наших статей, из нее вы знаете — у нас свой подход к таким вещам. Двухдневная диета, состоящая из энергетиков и холодной пиццы — это по-нашему!

В один прекрасный холодный мартовский день в общий чат пришло сообщение от одного из членов нашей команды:

«Предлагаю обсудить вариант съездить на хакатон в Ставрополь. Звучит безумно, но я уверен, это будет круто!»

Да, звучало, действительно, безумно. Но дух авантюризма напрочь отбил здравый смысл и решение о поездке было принято в тот же вечер.
Итак, 1400 км. пути с передышкой в Ростове-на-Дону позади, мы на месте за полчаса до начала регистрации команд.

Самое интересное! Объявление темы хакатона. Тема — приложение-помощник для жителей города, в приоритете Ставрополь.

48 часов, отведенные на разработку, пошли. Это наш стресс-тест и мы его пройдем.

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

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

После долгих дебатов мы наконец определились. Выбрали мы сервис «Вдруг» (именно так решено было его именовать) сервис для помощи ближнему.

1) Задача была выполнима за оставшееся время, а оставалось его уже совсем не много.
2) Приложение, которое носило бы более значимую роль в жизни людей, сложно придумать (если не учитывать уже существующие сервисы).
3) Именно эта идея позволила нам перестать спорить. Она настолько понравилась команде, что, кажется, мысль об этом приложении пришла всем одновременно.

К середине второго дня мы одухотворенные идеей приступили к работе. Были отрисованы и утверждены все экраны приложения.

Далее повествование ведется от лица iOS-разработчика.

Мы с ребятами обсудили идею, пришли к финальному концепту, я начал запиливать прототип. Зная, что у нас осталось целых 30 часов, я спокойно начал готовить всё необходимое. Команда у нас была сплоченная, я точно знал, что понадобится для работы.
Пока startkran пилил API, я запилил с запасом framework«ов и подготовил класс для запросов (я даже не пользовался своими наработками, так честно мы решили подойти к хакатону, ну или у меня их не было, потому что свои основные проекты я веду на Objective C, а тут решил выпендриться и писать на Swift.) Потом начал трясти дезигнера на тему экранов, на что он, творческая натура, отправил меня кодить дальше, мол, не мешай, я так вижу.
Я продолжил готовить почву. Поскольку мы, повторюсь, уже работали вместе, у меня была готовая схема отработки «несуществующих» запросов/ответов. В реальной жизни у меня была уже написана библиотека отладки таких запросов, но тут хакатон, да еще и Swift. Так что наигрался я вдоволь с Alamofire, затем получил массу впечатлений от прикручивания библиотеки для кеширования изображений, понял что на хакатоне действуют свои правила кодинга, а главное понял, что не надо использовать язык в котором не наступил ещё на все грабли (ну или хотя бы на те, которые нужны для решения конкретной задачи). Но деваться было некуда, время шло, а у нас не было рабочего приложения.
Глубокой ночью я получил API, экраны от дезигнера и душераздирающую презентацию нашего PR«щика. «Круто!» подумал я и приступил к реализации всего этого добра. Далее наблюдал как мои «бойцы» сдаются в борьбе со сном. Первым пал в неравном бою PR«щик, он уснул в позе эмбриона на верхней полке и бубнил что-то несуразное. Затем дезигнер — он сдался в процессе рисования макета, а под утро отошёл в царство Морфея и PHP«шник сидя в кресле. Я продолжал стучать по клавиатуре и попутно матерился на себя за Swift.
Рассвет. Я закончил делать базовый функционал. Теперь наше приложение могло почти всё, что мы наметили. Результат соответствовал макету дизайна, во всяком случае, мне так казалось. Сон — 30 минут и бегом на финальный день хакатона. За последние 5 часов оставалось прикрутить пару фич, сделать нормальный UI, проработать сценарии, оттестить (да это был хакатон и да, мы хотели оттестить).
В результате мы имели приложение, в котором было реализовано:
— демонстрация карты булавками и «криками о помощи»
— размещение на карте булавки пользователя с «криком о помощи»
— возможность откликнуться на «крик о помощи»
— возможность отметить что проблема решена и помощь не нужна, тогда присылается пуш всем кто откликнулся
— возможность заполнить свою анкету (аватар, ссылки, номер телефона)
— возможность связаться по ссылке или по номеру телефона с автором «крика о помощи», и наоборот, с откликнувшимся пользователем
— постройка маршрута до «пострадавшего»

Вот как выглядит интерфейс:
78637b905faa4a699b1fb55f4fb79db1.png
Результат нас удовлетворял, приложение выглядело довольно лаконично, без мусора. Главное — оно с нуля, даже без готовой идеи и наработок, вышло в своеобразный продакшн за 48 часов, пусть и на такой малой арене как хакатон.

Возвращаю виртуальный микрофон автору статьи.

Мы, зверски уставшие, преисполненные гордости, ждали своей очереди. Минуты превратились в часы, выступление каждой команды, казалось, длилось целую вечность. Как вдруг…

Хостинг приказал долго жить, упало всё. Все 48 часа работы пронеслись у нас перед глазами. Каждого прошибло холодным потом. Ненавистные минуты превратились в секунды и пролетали мимо. В голове только одно — всё, финал. Мысли о долгой и мучительной дороге домой не покидали нас. Представляете ехать 1400 км. молча?

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

Поддержка молчала, но через минуту, когда нервных клеток на всех оставалась лишь пара штук, всё снова заработало как ни в чём не бывало. Мы выдохнули, минуты снова вернулись к своему часовому формату. Кто-то даже нашел в себе силы пошутить: «Теперь надо успеть показать, пока опять всё не рухнуло!»

Мы выступили! Рассказали о том, как хорошо, наконец, начать помогать друг другу. Как полезен может быть «Вдруг», ответили на массу вопросов жюри и других участников. Нам даже посчастливилось рассказать о нашем основном проекте WITHME. А еще мы дали интервью местному телеканалу!

Далее следовало мучительное ожидание результатов голосования.

Момент истины! Нам вручили призы в двух номинациях:

— 2-е место в общем зачете
— Приз за лучшую мужскую роль
— Приз за самый технологичный проект от компании «Инфоком-С»

Чёртов хакатон, после него вас развозит так, что вы похожи на пьяницу из старой ирландской новеллы: полная утрата двигательно-опорных навыков, галлюцинации и потеря равновесия, немеет язык, начинаются бояки, отказывает позвоночник…

P.S. Не доверяйте всяким небезызвестным бесплатным хостингам =)
P.P. S. Участвуйте в хакатонах — это отличная возможность увидеть родную страну и отточить скилл.

© Megamozg