Хочу поделиться историей разработки своего приложения. Идея приложения возникла 1,5 года назад, начало разработки было положено в феврале 2017 года и завершено всё в июне 2017 года.
Идея
Всё началось с того, что до 2014 года я с удовольствием читал журналы Forbes (либо бумажный вариант либо электронный). Затем в 2014 году у меня появился первый смартфон на Android, и я сразу же скачал официальное приложение на него. Оно вроде работало, но содержало кучу багов. Самый запоминающийся был: при попытке перехода к статье — открывалась совершенно другая статья.
Помучавшись, я понял, что пора брать всё в свои руки и в начале 2016 года решил, что сам сделаю приложение для их сайта, естественно с блэкджеком и дамами. Зарегистрировал домен для этой задумки. Домен успешно прожил один год, а я так и не приступил к разработке.
Проходит время и в какой-то момент (к концу 2016 года) официальное приложение перестает работать. Вылезают ошибки. Сразу же появилось много отзывов и комментариев по этому поводу в официальном приложении.
Комментарии
В начале 2017 года я решил, что пора действовать и приступил к разработке.
Разработка сайта
Сайт я использовал как прослойку между своим приложением и официальным сайтом. Это было нужно для того, чтобы избежать следующих проблем, которые возникли бы с официальным сайтом:
Постоянные скачивания статей и парсинг Forbes.
Долгая загрузка статей Forbes из-за большого кол-ва рекламы.
Изменение разметки страниц Forbes приведет с неработающему парсингу и соответственно сломанному приложению.
Эти три проблемы были решены вот так:
Статьи скачиваются и парсятся на своем хостинге и хранятся в БД. В приложение отдаются в JSON формате.
Из статьи убраны все лишние данные (реклама и прочий мусор), в БД хранится только название и текст статьи, ссылки на картинки, а также информация об авторе, категории и дате публикации статьи.
При изменении разметки (у основного сайта Forbes) достаточно изменить скрипты для парсинга на своем хостинге, приложение при этом не сломается.
Плюс к этому добавляются еще приятности — имея сохраненный список статей, категорий и авторов, можно без проблем вытаскивать следующие данные:
Список статей конкретной категории.
Список статей конкретного автора.
И в качестве дополнения сделал на сайте страницу с курсами валют на текущую дату. Фронтенд был написан с использованием фреймворка Yii 2.
Вообще статьи Forbes удобны для скачивания и парсинга в том плане, что:
Сам текст статьи почти не меняется. Бывают очень уж редкие случаи, когда статья меняется или дополняется.
У статей нет комментариев.
Это всё означает, что не нужно повторно (периодически) статью скачивать, чтобы получать актуальный текст и новые комментарии.
Список статей берется из официальной страницы RSS. При получении новой статьи важен только адрес (URL) статьи, который сохраняется в БД. Затем, используя этот адрес можно скачать все нужные данные и сохранить в БД: название, текст, автор, категория, дата и т.д.
Скрипты на скачивание и парсинг статей запускаются по заданию CRON.
У каждой статьи Forbes есть ссылки к «рекомендованным статьям». В связи с этим был получен приятный бонус, что на каждую скачанную статью я получил еще ссылки на 10 других статей (которых у меня в БД нет), и сохранял ссылки на эти статьи. Далее при сохранении и парсинге следующей статьи опять получены еще 10 других статей и т.д. В итоге на сегодняшний день в БД имеется более 14000 статей, и надо сказать, что это видимо определенный предел для Forbes, потому что новых статей из списка «рекомендованных» почти не бывает.
По времени разработка и запуск сайта заняли период с февраля по апрель 2017 года. В результате получился вот такой сайт.
Скриншоты
Разработка приложения
Приложение решил делать на Ionic 2. В надежде, что опубликуюсь сразу на всех платформах. Приложение содержит в себе следующий функционал:
Список всех статей, который автоматически подгружается при достижении конца списка.
Список всех категорий.
Список всех авторов.
Список статей выбранной категории либо выбранного автора.
Поиск по тексту в статьях либо по имени автора.
«Поделиться» с помощью соц.сетей (и не только).
Данные о курсах валют на текущую дату.
Надо сказать, что сырое работоспособное приложение (просмотр и чтение статей) было сделано за пару недель. Всё остальное время заняло допиливание, исправление косяков и добавление функционала (поиск, шаринг и др.). Из косяков было то, что при запуске приложения, SplashScreen висел неприлично долго. Еще пришлось делать видимой вертикальную полосу прокрутки, которой почему-то не было «из коробки».
По времени разработка приложения заняла период с мая по июнь 2017 года. В июне Андроид-версия приложения была опубликована. Результатом стало вот такое приложение.
Скриншоты
Заключение
Получен хороший опыт по разработке на Yii 2 и Ionic 2. Потому что до этого времени я ни разу не имел дело с данными фреймворками. А главное, что всё доведено до конкретной реализации и конечного результата. Также в планах есть различные доработки приложения.
Готов услышать любые предложения и замечания. Потестить можно здесь: Ссылка на приложение