EventiCal — iPad-календарь событий, о которых не пишут в афишах

от автора

Будучи разработчиками разных серьезных сервисов «Право.ru» и «Картотеки Арбитражных Дел», нам периодически хочется отвлечься от рутины и попробовать что-нибудь веселое и что будет интересно не только судьям и юристам.

Так и родилась идея сделать красивое развлекательное приложение для iPhone и iPad, которое бы агрегировало разные тусовки и мероприятия из социальных сетей в одном месте.

Спустя три месяца плодотворной работы, мы хотим выставить на ваш суд наше новое приложение EventiCal. Название составлено из двух слов «Event» и «Calendar» и отражает общую суть — календарь пользовательских событий, отфильтрованных по городу пользователя.

Как положено у стартаперов — сначала объясним «проблему», которую мы решили, и которая не то чтобы уж такая проблема, просто потому что не очевидна на первый взгляд.

Информацию о выставках, музеях, театрах и кино можно легко найти в «Афише» и других гидах. Эту же информацию по разным городам мира можно найти в сетевых изданиях типа «Time Out» или на сервисах типа Yelp, Eventful etc.

А вот информацию о пользовательских событиях (social events) — тех, которые создают сами пользователи, нигде найти нельзя. А как показывает тенденция, именно такие события становятся все более социально значимыми и посещаемыми. Примером тому акция Chick–fil–A, которая собрала 674 345 человек, и концерт в Лондоне «Гражданин Поэт», на который Чичваркин продал 1 500 билетов через Facebook.

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

Что если вы приехали в другой город, где у вас нет fb-друзей? Куда пойти кроме кино и театров? Как узнать что популярно, а что sucks? Именно для этого мы сделали EventiCal.

В приложении можно:
— посмотреть события по своему городу с разбивкой на
• сегодня,
• завтра,
• на этой неделе,
• в этом месяце;

— выбрать другой город и посмотреть события по нему;

— выбрать конкретную категорию событий;
— посмотреть только те события, на которые идет сам пользователь;

— посмотреть карточку события и весь контент по нему (описание, карту, комментарии и проч.);
— подтвердить свое участие и добавить событие в iCal или Google Calendar;
— оставить комментарий к событию;

— создать свое событие;

— пригласить друзей и расшарить в социальные сети.

Проект является по сути агрегатором данных из FB и работает, используя API Facebook в части контента и Google maps — в части геолокаций

Самая сложная часть, которую мы решили и которая пользователям не очень интересна — это обход нестандартных ответов Facebook — у них все очень плохо систематизировано в плане геолокации, нет четких стандартов нейминга мест проведения мероприятий. Так что мы брали данные, которые отдает Facebook, и пытались определить на их основе точную геопозицию конкретного события. В результате был найдено симбиотическое решение — если FB нам не отдает точное геоположение с координатами, мы уточняем его с помощью данных с Google.

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

Вторая проблема с получением контента — FB отдает все очень медленно на фоне Google, который реагирует на запросы с космической скоростью. Поэтому, помимо кронов, мы еще используем Rabbit, который как раз отвечает за параллелизацию процессов при первом входе пользователя и в некоторых других случаях. Таким образом новый пользователь может получить как можно быстрее верхнеуровневые данные, а вся сложная и долгая обработка уходит в параллельные процессы.

В целом приложение проектировали по принципу — чем проще, тем лучше. Это равно относится и к бэку и к интерфейсу.

Вообще, самое вкусное в EventiCal это, конечно, интерфейс. Мы использовали принцип параллакса для демонстрации афиши. Если вдруг кто не знает — эффект параллакса можно наблюдать из окна движущегося поезда — березы, растущие ближе к рельсам, проносятся быстрее, чем те, что стоят на отдалении. Так и в Eventical – самые популярные события — самые крупные и скроллятся медленней, чем малопосещаемые = мелкие.

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

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

Для знакомства с EventiCal мы сняли ролик, в котором красивая девушка демонстрирует возможности приложения.

На сегодня EventiCal доступен только зарегистрированным в Facebook. В ближайшем времени мы добавим другие социальные сети. Следить за новостями EventiCal можно в Facebook группе и в Twitter. Если у вас есть пожелания — самое время их озвучить!

ссылка на оригинал статьи http://habrahabr.ru/company/turbomilk/blog/150524/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *