СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

H История разработки приложения для чтения статей Forbes в черновиках

image

Хочу поделиться историей разработки своего приложения. Идея приложения возникла 1,5 года назад, начало разработки было положено в феврале 2017 года и завершено всё в июне 2017 года.


Идея


Всё началось с того, что до 2014 года я с удовольствием читал журналы Forbes (либо бумажный вариант либо электронный). Затем в 2014 году у меня появился первый смартфон на Android, и я сразу же скачал официальное приложение на него. Оно вроде работало, но содержало кучу багов. Самый запоминающийся был: при попытке перехода к статье — открывалась совершенно другая статья.

Помучавшись, я понял, что пора брать всё в свои руки и в начале 2016 года решил, что сам сделаю приложение для их сайта, естественно с блэкджеком и дамами. Зарегистрировал домен для этой задумки. Домен успешно прожил один год, а я так и не приступил к разработке.
Проходит время и в какой-то момент (к концу 2016 года) официальное приложение перестает работать. Вылезают ошибки. Сразу же появилось много отзывов и комментариев по этому поводу в официальном приложении.
Комментарии
image


В начале 2017 года я решил, что пора действовать и приступил к разработке.

Разработка сайта


Сайт я использовал как прослойку между своим приложением и официальным сайтом. Это было нужно для того, чтобы избежать следующих проблем, которые возникли бы с официальным сайтом:
  1. Постоянные скачивания статей и парсинг Forbes.
  2. Долгая загрузка статей Forbes из-за большого кол-ва рекламы.
  3. Изменение разметки страниц Forbes приведет с неработающему парсингу и соответственно сломанному приложению.

Эти три проблемы были решены вот так:
  1. Статьи скачиваются и парсятся на своем хостинге и хранятся в БД. В приложение отдаются в JSON формате.
  2. Из статьи убраны все лишние данные (реклама и прочий мусор), в БД хранится только название и текст статьи, ссылки на картинки, а также информация об авторе, категории и дате публикации статьи.
  3. При изменении разметки (у основного сайта Forbes) достаточно изменить скрипты для парсинга на своем хостинге, приложение при этом не сломается.

Плюс к этому добавляются еще приятности — имея сохраненный список статей, категорий и авторов, можно без проблем вытаскивать следующие данные:
  • Список статей конкретной категории.
  • Список статей конкретного автора.

И в качестве дополнения сделал на сайте страницу с курсами валют на текущую дату. Фронтенд был написан с использованием фреймворка Yii 2.

Вообще статьи Forbes удобны для скачивания и парсинга в том плане, что:
  • Сам текст статьи почти не меняется. Бывают очень уж редкие случаи, когда статья меняется или дополняется.
  • У статей нет комментариев.

Это всё означает, что не нужно повторно (периодически) статью скачивать, чтобы получать актуальный текст и новые комментарии.

Список статей берется из официальной страницы RSS. При получении новой статьи важен только адрес (URL) статьи, который сохраняется в БД. Затем, используя этот адрес можно скачать все нужные данные и сохранить в БД: название, текст, автор, категория, дата и т.д.
Скрипты на скачивание и парсинг статей запускаются по заданию CRON.

У каждой статьи Forbes есть ссылки к «рекомендованным статьям». В связи с этим был получен приятный бонус, что на каждую скачанную статью я получил еще ссылки на 10 других статей (которых у меня в БД нет), и сохранял ссылки на эти статьи. Далее при сохранении и парсинге следующей статьи опять получены еще 10 других статей и т.д. В итоге на сегодняшний день в БД имеется более 14000 статей, и надо сказать, что это видимо определенный предел для Forbes, потому что новых статей из списка «рекомендованных» почти не бывает.

По времени разработка и запуск сайта заняли период с февраля по апрель 2017 года. В результате получился вот такой сайт.
Скриншоты
image
image
image
image


Разработка приложения


Приложение решил делать на Ionic 2. В надежде, что опубликуюсь сразу на всех платформах. Приложение содержит в себе следующий функционал:
  • Список всех статей, который автоматически подгружается при достижении конца списка.
  • Список всех категорий.
  • Список всех авторов.
  • Список статей выбранной категории либо выбранного автора.
  • Поиск по тексту в статьях либо по имени автора.
  • «Поделиться» с помощью соц.сетей (и не только).
  • Данные о курсах валют на текущую дату.

Надо сказать, что сырое работоспособное приложение (просмотр и чтение статей) было сделано за пару недель. Всё остальное время заняло допиливание, исправление косяков и добавление функционала (поиск, шаринг и др.). Из косяков было то, что при запуске приложения, SplashScreen висел неприлично долго. Еще пришлось делать видимой вертикальную полосу прокрутки, которой почему-то не было «из коробки».

По времени разработка приложения заняла период с мая по июнь 2017 года. В июне Андроид-версия приложения была опубликована. Результатом стало вот такое приложение.
Скриншоты
image image image image image


Заключение


Получен хороший опыт по разработке на Yii 2 и Ionic 2. Потому что до этого времени я ни разу не имел дело с данными фреймворками. А главное, что всё доведено до конкретной реализации и конечного результата. Также в планах есть различные доработки приложения.

Готов услышать любые предложения и замечания. Потестить можно здесь: Ссылка на приложение

комментарии (14)

+2
dumistoklus ,  
Вы можете использовать это приложение для себя, но вы не можете его публиковать, потому что нарушаете авторские права Форбса
0
Pashkevich ,  
Если не трудно, скажите точнее о каких правах идет речь.
0
kruslan ,  
+1
Pashkevich ,  
Допустим.
А как же вот эти строки?
Пользователи вправе бесплатно без получения соответствующего разрешения использовать Материалы Сайта исключительно в личных некоммерческих целях, а также в информационных, научных, учебных или культурных целях

И далее 5 пунктов про то, что «При воспроизведении ...» должны быть указаны автор, дата, ссылка на источник и т.д.
+1
napa3um ,  
Вы не единичный материал берёте, вы подменяете сайт Форбса своим, вырезая из него рекламу. Это немного не то же самое, что «при воспроизведении...».
0
Pashkevich ,  
Похоже вы правы (и не только вы), поэтому буду сворачивать такую деятельность. Статью наверное тоже прикрою.
+1
federalkosmos ,  
Деталей бы — куски кода, архитектура (схема) сайта и приложения.
И любопытно будет узнать реакцию издания.
+2
Pashkevich ,  
Что касается кусков кода — готов оформить статью подробную про разработку, если это будет востребовано
+1
ru_vlad ,  

Да, это очень интересно.
Если вас не затруднит данное сделать то может получиться учебный материал.

+2
hdfan2 ,  
Из статьи убраны все лишние данные (реклама и прочий мусор)

Forbes будет просто счастлив.
+1
Vorchun ,  
Круто, вы своровали контент. Робин-гуд — забрал у богатых с рекламой, отдал бедным. Внимательно прочитайте юр. вопросы.

То, что разобрались — молодец, конечно. Это хороший опыт и портфолио. Но это для личного использования только так можно.
0
Pashkevich ,  
Хорошо. Буду думать, что дальше с этим всем делать.
0
astec ,  

Своровали контент и хвалитесь публично.


Лучше поскорее убирайте приложение из сторов.


Возможно стоит предложить свои услуги Форбсу.

0
Pashkevich ,  
Возможно стоит предложить свои услуги Форбсу.

так я только «за».
но вот не отвечают они на мои письма.