разработка мобильных приложений, веб-сервисов и корпоративных систем
ru en
+7 (812) 324-27-24, +7 (495) 641-87-24
Заказать звонок

Nerd-o-meter — с чего пишут твитты

В свободное от работы время мы с Димой Медвинским и Филиппом Нурулиным, желая подтянуть знания в JS, HTML и CSS, создали интересный проект для любителей статистики.

Nerd-o-meter — это сервис, позволяющий узнать статистику устройств, с которых пишут твитты. Искать можно как по запросам, так и по конкретным пользователям.

Идея

Идея проекта возникла во время посещения "Яндекс.субботника": наблюдая за тем, как много людей пишут в твиттер по ходу мероприятия, пришло в голову, что интересно было бы узнать статистику устройств, с которых они пишут и посмотреть как она варьируется от конференции к конференции.

Чуть позже это трансформировалось в идею небольшого сервиса, показывающего статистику по твиттер-клиентам: эта информация элементарно извлекается из API твиттера.

Создание

Сначала это представлялось в виде классического приложения, например на Rails, но в какой-то момент стало понятно что серверная часть тут попросту лишняя: всё что нужно, в частности доступ к Twitter API и построение графиков, доступно прямо в браузере. Таким образом, получился небольшой и легковесный single-page app.

Для построения диаграмм использовался Google Chart Tools, мельком взглянув в сторону нескольких альтернативных решений.

В поиске необходимых для разработки библиотек (хотя в таком небольшом проекте можно было, наверное, обойтись и без них) мне помог отличный сборник microjs.com.

Помимо Chart Tools пригодились следующие библиотеки:
  • Zepto.js: легковесная замена jquery, нацеленная в первую очередь на мобильные webkit-браузеры. Тем не менее, вполне пристойно работает и в качестве "взрослой библиотеки". В ходе работы был найден небольшой баг при работе с FF, но был быстро исправлен патчем, который был позже отправлен (и принят) обратно в проект zepto на GitHub. Используется для манипуляций DOM и аяксовых запросов к API.
  • Underscore.js: на работе один из программистов использовал Scala, поэтому без удобных функциональных способов работы с коллекциями (хотя бы map/filter) он чувствовал себя как без рук. Underscore предоставлял такую возможность и некоторые другие ФП-плюшки.
  • SugarSkull: первая версия приложения использовала самописный механизм для перманентных ссылок, способных работать целиком на стороне клиента. С введением ещё одного вида статистики (по твитам конкретного пользователя), схема урлов усложнилась и была прикручена эта библиотека. Она представляет собой простой механизм диспатчинга клиент-сайд урлов.

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

В результате мы получили рабочий инструмент для сбора статистики по twitter-клиентам.

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