«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. Если у вас есть пожелания — самое время их озвучить! Дата публикации: 2012-11-14 |