ТЕКСТ: АЛЕКСЕЙ ОГАРКОВ. Не секрет, что площадка Livejournal есть самой посещаемой блог-платформой Рунета. Большая часть самых известных, увлекательных и читаемых дневников расположены в том месте. Идеей создать топ записей блогов Живого Издания я загорелся года 2 назад, в то время, когда по окончании серии скандалов, которые связаны с накруткой рейтинга, Яндекс объявил, что по большому счету прекращает составление топа, но оставляет API, благодаря которому любой желающий может создать собственный рейтинг.
Конечно, мой рейтинг должен был быть самым объективным и самым лучшим, и, очевидно, жизнь внесла собственные коррективы: скоро набросав метод составления рейтинга, я принялся продолжительно и нудно «вылизывать» код, пробовать прикрутить разные фичи, кроме того создать различные рейтинги под различные интересы пользователей – всё это затянулось на полтора месяца, а в то время, когда я готовься выложить продукт в сеть, нашёл (сюрприиииз!), что таких рейтингов блогов уже приблизительно 100500, причём показались они практически пара дней спустя по окончании закрытия топа Яндекса.
По всей видимости, не я один таковой умный был. Большая часть этих топов канули в Лету практически в течение нескольких месяцев, но я уже утратил интерес к данной теме и задвинул её в самый дальний ящик.
Второй раз я открыл его в октябре 2011. Связано это было, как возможно додуматься, с приближающимися выборами в Думу, в то время, когда воздух в обществе накалилась до предела.
Каждый день в блогосфере оказались десятки резонансных мнений и постов, но вот просматривать их было некогда: к себе я возвращаюсь поздно и утомившимся, а на работе руководство почему-то возмущается, в то время, когда я всего-то на часик решаю посидеть в жежешечке. Оставалось время в дороге, и вот тут я столкнулся с неожиданной проблемой – отсутствием приложения для чтения ЖЖ и рейтингом популярных записей.
Я облазал целый Appstore – имеется лишь родное приложение LJ для авторов, а для читателей ничего.
Для меня это было необъяснимо. Нужно сообщить, к тому моменту я уже приобрел себе долгожданный мак, и пробовал всякие простенькие программки писать, плюс подвернулось объявление на хабре о комплекте в школу iOS программистов от компании e-Legion. Учитель у нас был весьма крутой, но ученики различной силы, так что я старался трудиться по собственному замыслу и задавать вопросы все, что быть может, у учителя. В айфон-программировании, само собой разумеется, самое нужное – это Google, плюс мне попалась весьма крутая книжка от Head First – IPhone and IPad development 2nd edition. Всем рекомендую.
В общем, я сделал вывод, что моим первым приложением будет как раз топ ЖЖ – в итоге, мне это легко самому весьма интересно (я и в самом деле сейчас пользуюсь приложением каждый день).
Придумать наименование, как осознаёте, было несложно: из-за чего имя «АйБлоги» до сих пор выяснилось никем не занято – для меня очередная тайная. Сущность приложения была понятна сначала – топ записей ЖЖ с сортировкой по способу составления: по комментариям, по количеству ссылок и т. д. Но этого мало.
Довольно глупо делать приложение из одной странички – хотелось сделать его сходу максимально эргономичным и функциональным. Из этого посыла сходу выросли три фичи: эргономичный просмотрщик записи, возможность скоро кинуть ссылку в твиттер либо фейсбук и возможность забанить автора.
Со ссылками всё ясно: соцсети без возможности шаринга – это нелепо.
С экраном просмотра также светло – у различных людей в ЖЖ применены различные стили оформления, не всегда они успешны, да и пестрящее разнообразие утомляет, исходя из этого необходимо забрать картинки и текст и показывать их легко, без авторских изысков, покинув пользователю начертания шрифта и выбор размера.
А вот на возможности бана хотелось бы остановиться поподробнее – он моя гордость, очень успешный инструмент, приведший к тому, что мой топ записей сейчас наполнен вправду значительно более как следует, чем веб-рейтинги. Кто просматривает ЖЖ, тот знает, что в том месте возможно вывести в топ запись практически любого уровня: к примеру, представители т. н. кремлёвских молодёжных организаций создали настоящий ботнет из собственных изданий и выводят необходимые записи в топ путём перекрёстных ссылок. Ну а лично меня постоянно утомляло наличие в топах людей, являющихся, по сути, копипастерами – нескончаемые перепечатывания материалов из сети господами ibigdan, teh-nomad и т. п. превращают блогосферу в филиал fishki.net, что, ИМХО, достаточно уныло.
Неприятность в том, что в веб-рейтингах никуда от них не деться, добрая половина рейтинга будет всё равняется принадлежать не весьма приятным для вас (либо легко неинтересным) людям. Ну а в приложении избавиться от надоевшего автора несложнее несложного – одно его посты и нажатие клавиши не будут продемонстрированы в рейтинге, их место займут следующие – весьма комфортно. на данный момент думаю над возможностью делать топ с учётом предпочтений пользователя по авторам.
За эйфориями кастомизации рейтингов я внезапно осознал, что приложение не решало моей основной неприятности – чтения в дороге, т. к. моя дорога проходит по большей части под землёй, в метро, где нет связи.
Было нужно придумать новую фичу – избранные записи (потом к ним присоединились избранные авторы). Запись, помеченная как избранная, переносилась в отдельный таб и сохранялась на телефоне. По пути к метро я просматривал топы и отмечал возможно занимательные посты (для этого метку-звёздочку вынес прямо в перечень), а уже под землёй открывал записи и просматривал.
Логичным продолжением стали избранные авторы, причём ориентированы они не на топ-блоггеров (данный перечень практически не изменяется со временем), а на те случаи, в то время, когда в топ вышла запись малоизвестного автора (вам нравится его стиль, но имеется подозрения, что вы его больше в топе не заметите) – я так набил списочек из десятка авторов на собственный вкус, не легендарных , в топах они не появляются.
Вот думаю над новой фичей – показывать, сколько постов показалось у избранных авторов с момента последнего к ним захода, правда, пока не весьма осознаю, как это сделать.
Одно тянуло второе, все новый год и рождество, позабыв про оливье, сидел над приложением – прикрутил поиск по блогам (сам практически не пользуюсь, но это же наподобие как часть необходимой программы) и рейтинг любимых записей пользователей: поразмыслил, может, это будет весьма интересно – знать, какие конкретно посты отметили избранными громаднейшее количество пользователей, действительно, спустя время пологаю, что сделал огромную лишнюю работу – точно избранные записи будут во многом совпадать с самими топами. Ну, по крайней мере, подтянул знания по работе с no-sql базами.
Кстати, о «птичках». Все самые важные сложности в разработке я испытал в работе с API Яндекса: оно не разрешало тащить эти прямо с айфона, по причине того, что в нем отсутствуют возможности выборки и сортировки определенного количества и т. п. Исходя из этого я написал мелкого бота, что собирает все, что имеется в API, и кладет в облачную базу на Амазоне, откуда и тянет эти айфон, плюс было нужно написать парсилку постов LJ, поскольку в API отсутствовало описание поста, и, к примеру, аватар. Парсилка пригодилась именно, дабы добывать эти сведенья. Амазонской базой Simple DB я весьма доволен – все весьма легко и комфортно. К моменту завершения проги я переписал ее три раза, поскольку недоученность любой раз давала себя знать в нечистом и неудобном архитектурном дизайне.
Но, набив шишек, я все расставил на собственные места; придется, действительно, еще раз все переделать под новый компилятор и для айпада, но это будет уже совсем вторая история.
По большому счету неприятности на протяжении разработки были самыми различными – я не смог придумать, как вложить в приложение комментарии. Их древовидная структура совсем не подходит к экрану смартфона, да и выкачивать их было нужно бы вечность. В итоге решил показывать их количество и переходить к браузерному просмотру по запросу. Либо внешний вид – совместно со привычным дизайнером сделали вывод, что все управляющие элементы будут в весьма тёмно-серых тонах: являясь как бы продолжением и сливаясь с тёмной поверхностью айфона, они всё внимание переносят на белое тело записи.
Идея о наличии белых айфонов не пришла в голову никому из нас до самого последнего дня.
В общем, вопреки всему, это было весьма интересно и познавательно, а, помимо этого, на выходе я взял приложение, которым сам пользуюсь неизменно – не нередкая успех в жизни программиста. на данный момент меня ожидают улучшения и исправления, а летом думаю начать делать ещё одно приложение, о котором в обязательном порядке поведаю.
Благодарю за внимание.
Сайт: iblogsapp.ru
Цена: $1.99 [iTunes link]
Эта история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами собственной внутренней кухни.