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

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

Комментарии (15)


  1. dumistoklus
    21.06.2017 20:36
    +2

    Вы можете использовать это приложение для себя, но вы не можете его публиковать, потому что нарушаете авторские права Форбса


    1. Pashkevich
      21.06.2017 20:39

      Если не трудно, скажите точнее о каких правах идет речь.


      1. kruslan
        21.06.2017 21:52

        1. Pashkevich
          22.06.2017 03:52
          +1

          Допустим.
          А как же вот эти строки?

          Пользователи вправе бесплатно без получения соответствующего разрешения использовать Материалы Сайта исключительно в личных некоммерческих целях, а также в информационных, научных, учебных или культурных целях

          И далее 5 пунктов про то, что «При воспроизведении ...» должны быть указаны автор, дата, ссылка на источник и т.д.


          1. napa3um
            22.06.2017 08:34
            +1

            Вы не единичный материал берёте, вы подменяете сайт Форбса своим, вырезая из него рекламу. Это немного не то же самое, что «при воспроизведении...».


            1. Pashkevich
              22.06.2017 09:23

              Похоже вы правы (и не только вы), поэтому буду сворачивать такую деятельность. Статью наверное тоже прикрою.


            1. RouR
              22.06.2017 10:53

              А если убрать сайт и оставить только приложение? Все ссылки на исходный сайт форбса, и вообще «это просто читалка»


  1. federalkosmos
    21.06.2017 20:39
    +1

    Деталей бы — куски кода, архитектура (схема) сайта и приложения.
    И любопытно будет узнать реакцию издания.


    1. Pashkevich
      21.06.2017 20:42
      +2

      Что касается кусков кода — готов оформить статью подробную про разработку, если это будет востребовано


      1. ru_vlad
        21.06.2017 23:42
        +1

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


  1. hdfan2
    22.06.2017 08:07
    +2

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

    Forbes будет просто счастлив.


  1. Vorchun
    22.06.2017 09:20
    +1

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

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


    1. Pashkevich
      22.06.2017 09:24

      Хорошо. Буду думать, что дальше с этим всем делать.


  1. astec
    22.06.2017 10:21

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


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


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


    1. Pashkevich
      22.06.2017 10:38

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

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