Ferra.ru: как мы делали свой ридер новостей и статей для Android

в 11:21, , рубрики: android, ferra.ru, Новости, СМИ, я пиарюсь, метки: , , ,

Привет! Так получилось, что я работаю в Ferra.ru. Вчера мы выпустили своё приложение для Android, а меня до сих пор не отпускает переполняет желание поделиться своей радостью. Думаю, «Я пиарюсь» для этого подойдёт наилучшим образом. Делали мы его долго, много раз переделывали. Но то, что положили в Google Play, нам нравится, хотя, конечно, хотелось большего. Но для начала – в самый раз.
Ferra.ru: как мы делали свой ридер новостей и статей для Android

Первым делом отвечу на вопрос: зачем? Понятно, что нет никаких проблем читать нас через RSS. У нас есть отдельная лента статей и даже конструктор ленты новостей – там можно выбрать отдельные разделы. Но RSS – всё ж специфическая штука. Мы об этом знаем, вы об этом знаете, а массы народные – не знают. И статистика посещений сайта по платформам/браузерам это подтверждает. Плюс к тому, задуманы функции вроде комментирования, которые RSS-ридер не потянет в принципе. Да и вообще, специализированное – лучше универсального.

Дизайн получился минималистичным: две вкладки – под новости и под статьи. Первые показываются простым списком с заголовками и фрагментами текста. Со статьями хитрее: их показываем горизонтальными списками для каждого из раздела, с малюсенькими картиночками.
Ferra.ru: как мы делали свой ридер новостей и статей для Android
Переходить между соседними материалами можно свайпом, делать крюк через список не нужно. Идея эта, кажется, пришла к нам независимо, но, как потом оказалось, приём это распространённый. Great minds think alike :)

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

Начнём с того, что все картинки масштабируются на стороне сервера. Клиент передаёт ширину экрана терминала и получает изображения нужного размера. Это – главная мера, и она позволила срезать трафик раза в два-три. Картинки грузятся при открытии материала и кэшируются на потом.

Статьи у нас объёмные, и даже голые буквы сожрали бы мегабайт-другой за одно обновление. Ну кому нужна эта бессмысленная жестокость?.. В общем, мы сделали отдельную RSS-ленту статей, в которую попадают только заголовки и URL (они у нас играют роль ID) последних десяти статей из каждого раздела. Клиент получает их, смотрит, чего у него ещё нет, и тогда обращается к отдельному скрипту, выдающему полный текст конкретной статьи в RSS-формате, передавая ему ID желаемой статьи. Сколько новых статей появилось – столько раз обратится.

В общем, нам нужны отзывы, критика, ласки, побиение и, если можно, советы, как сделать лучше :) Пока из возможностей оптимизации в голову приходит только запрос всех свежих статей одним махом, чтобы не насиловать длиннопинговое соединение.

Ferra.ru в Google Play

Автор: irubtsov


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js