Хочу поделиться историей разработки своего приложения. Идея приложения возникла 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. Потому что до этого времени я ни разу не имел дело с данными фреймворками. А главное, что всё доведено до конкретной реализации и конечного результата. Также в планах есть различные доработки приложения.
Готов услышать любые предложения и замечания. Потестить можно здесь: Ссылка на приложение
Поделиться с друзьями
Комментарии (15)
federalkosmos
21.06.2017 20:39+1Деталей бы — куски кода, архитектура (схема) сайта и приложения.
И любопытно будет узнать реакцию издания.Pashkevich
21.06.2017 20:42+2Что касается кусков кода — готов оформить статью подробную про разработку, если это будет востребовано
ru_vlad
21.06.2017 23:42+1Да, это очень интересно.
Если вас не затруднит данное сделать то может получиться учебный материал.
hdfan2
22.06.2017 08:07+2Из статьи убраны все лишние данные (реклама и прочий мусор)
Forbes будет просто счастлив.
Vorchun
22.06.2017 09:20+1Круто, вы своровали контент. Робин-гуд — забрал у богатых с рекламой, отдал бедным. Внимательно прочитайте юр. вопросы.
То, что разобрались — молодец, конечно. Это хороший опыт и портфолио. Но это для личного использования только так можно.
astec
22.06.2017 10:21Своровали контент и хвалитесь публично.
Лучше поскорее убирайте приложение из сторов.
Возможно стоит предложить свои услуги Форбсу.
Pashkevich
22.06.2017 10:38Возможно стоит предложить свои услуги Форбсу.
так я только «за».
но вот не отвечают они на мои письма.
dumistoklus
Вы можете использовать это приложение для себя, но вы не можете его публиковать, потому что нарушаете авторские права Форбса
Pashkevich
Если не трудно, скажите точнее о каких правах идет речь.
kruslan
Об интеллектуальных.
Pashkevich
Допустим.
А как же вот эти строки?
И далее 5 пунктов про то, что «При воспроизведении ...» должны быть указаны автор, дата, ссылка на источник и т.д.
napa3um
Вы не единичный материал берёте, вы подменяете сайт Форбса своим, вырезая из него рекламу. Это немного не то же самое, что «при воспроизведении...».
Pashkevich
Похоже вы правы (и не только вы), поэтому буду сворачивать такую деятельность. Статью наверное тоже прикрою.
RouR
А если убрать сайт и оставить только приложение? Все ссылки на исходный сайт форбса, и вообще «это просто читалка»