Создание среднего RSS-канала в приложении Flutter

Как реализовать средний RSS-канал во Flutter

Вступление

Я решил поэкспериментировать с RSS-каналом Medium, потому что он упростил бы создание MVP для приложения Flutter, над которым я работаю. Кроме того, если RSS-канал Medium изменится, чтобы разрешить доступ ко всем статьям, я буду знать, как это реализовать.

На данный момент этот подход действительно полезен только для профилей пользователей Medium и публикаций, которые содержат менее 10 сообщений и не оставляют комментарии на Medium.

Если у вас есть всего несколько статей, которые вам нужно перенести из Medium в приложение Flutter, такое как веб-сайт или мобильное приложение, созданное с помощью Flutter, это отличное решение.

Однако, если у вас больше контента или вы публикуете более нескольких комментариев, канал Medium RSS не так полезен, потому что он показывает только 10 самых последних элементов, а элементы включают как статьи, так и комментарии.

К сожалению, именно так Medium настроили свой RSS-канал. Если вы знаете, как вытащить все статьи из профиля / публикации среднего пользователя , дайте мне знать в комментариях.

Вам также необходимо отфильтровать комментарии, если вы хотите просто получить статьи; Я покажу вам, как я это реализовал.

Создание приложения

Я создал приложение Flutter, которое загружает статьи из моего канала Medium RSS в приложение Flutter.

Код находится здесь, если вы хотите следовать по тексту.

Шаг 1. Получите RSS-канал, с которым хотите работать

Первое, что вам нужно сделать, это выяснить, с каким RSS-потоком вы собираетесь работать.

См. также:  Различия между статическими и динамическими библиотеками

Если вы работаете с профилем пользователя, вы можете получить доступ к RSS-каналу, перейдя по адресу «https://medium.com/feed/@uvesername.

Точно так же вы можете получить доступ к RSS-каналу публикации, перейдя в

«Https://medium.com/feed/@publicationName.

RSS-канал моего профиля пользователя: https://medium.com/feed/@TJgrapes.

При переходе по ссылке вы должны увидеть что-то вроде этого:

Если у вас возникли проблемы, взгляните на Официальную документацию Medium по доступу к RSS-каналам.

RSS-канал содержит 10 самых последних элементов, которые включают как статьи, опубликованные в профиле / учетной записи пользователя, так и комментарии, сделанные из этого профиля / учетной записи пользователя.

Мы будем использовать ссылку на RSS-канал для доступа к его данным в приложении.

Шаг 2. Настройте приложение Flutter

Добавьте в файл pubspec.yaml следующие зависимости:

  1. Http — для вызова сети для получения данных RSS-канала.
  2. Веб-канал — для анализа данных RSS-канала и доступа к ним.
  3. Url_launcher — для запуска статьи на Medium по ссылке на статью.

Шаг 3. Реализуйте получение данных RSS-канала

Во-первых, получите данные RSS-канала, используя ссылку RSS-канала; просто замените MEDIUM_PROFILE_RSS_FEED_URL на URL-адрес RSS-канала, который вы используете. (например, https://medium.com/feed/@TJgrapes)

Затем вызовите метод getMediumRSSFeedData () в initState () и извлеките данные. После завершения getMediumRSSFeedData () мы можем получить доступ к переменной RSSFeed (показанной ниже как feed).

Мы можем получить метаданные о RSS-канале, например количество элементов, которое должно быть 10.

Шаг 4. Решите, хотите ли вы отфильтровать комментарии

Помните, я сказал, что элементы также включают комментарии? Вам нужно будет отфильтровать комментарии, если вы хотите получить только статьи. Вот как вы их различаете.

Ниже показан элемент в RSS-потоке, который представляет собой комментарий, который я написал талантливому разработчику программного обеспечения на Medium:

См. также:  Как удалить заполнение по умолчанию в раскрывающемся списке с возможностью поиска во флаттере?

Как видите, заголовок элемента — это сам комментарий.

Ниже показан элемент в RSS-канале, который представляет собой статью, которую я опубликовал на Medium:

Заголовок статьи — это заголовок статьи, а описание — подзаголовок статьи.

Чтобы отличить комментарий от статьи, мы можем проверить, есть ли у элемента описание; если да, то это статья, потому что только статьи могут иметь субтитры.

Шаг 5. Отфильтруйте комментарии (необязательно)

Чтобы отфильтровать комментарии, мы перебираем каждый элемент в RssFeed; если у него есть описание, мы знаем, что это статья.

Затем мы можем получить доступ к заголовку, ссылке и дате публикации статьи Medium, размещенной в профиле пользователя / публикации.

Здесь я просто просматриваю каждый RSSItem и добавляю его в список, если это статья.

Шаг 6. Отобразите данные в пользовательском интерфейсе

Чтобы не усложнять задачу, мы можем просто создать список для отображения данных следующим образом:

И реализуем метод запуска статьи на Medium при нажатии:

Вот как это выглядит:

Вот полный код для главного экрана:

Ресурсы

Это было вдохновлено публикацией Джонатана Ингрэма — ознакомьтесь с ней, если вам нужен более глубокий общий подход к работе с RSS-потоками во Flutter.

Проект Github: https://github.com/ashtonjonesdev/ashton_jones_medium_feed

Документация по среднему RSS-каналу:

Https://help.medium.com/hc/en-us/articles/214874118-RSS-feeds

Работа с RSS-потоками во Flutter:
https://medium.com/@scottingram.scott/hacker-news-rss-app-in-flutter-976728b09361

Привет, я Эш ?? Давай подключимся!

? ashtonjones.dev | ? @TJgrapes | ✉️ [email protected]

??‍? Сертифицированный Google Android-инженер |
✍? Писатель |
??‍♂️ Стоик

Https://www.twitter.com/FlutterComm

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: