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

в 17:15, , рубрики: android, Forbes, ionic framework, yii2, история, я пиарюсь

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. Потому что до этого времени я ни разу не имел дело с данными фреймворками. А главное, что всё доведено до конкретной реализации и конечного результата. Также в планах есть различные доработки приложения.

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

Автор: Pashkevich

Источник

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


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