2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RSSについて

Posted at

iOSアプリで自分好みのRSSリーダーが欲しくなり、作ろうと思ったのですがそもそもRSSとは何だっけ?ということになり1から調べ直しました。

RSSとは

ニュースやブログなど各種のウェブサイトの更新情報を配信するための文書フォーマットの総称である。
※Wikipediaより抜粋

また、RSSという名前自体にも複数の意味解釈がありました。

RDF Site Summary

ファイル拡張子が.rdfとなっているもの。全体がrdf要素(<rdf>~</rdf>)で囲まれていることからも分かります。系統としてはRSS0.9→1.0系に分類されます。

Really Simple Syndication

ファイル拡張子が.rssまたは.xmlとなっているもの。RDFとは異なる体型で発展していったものです。系統としてはRSS2.0系に分類されます。

ATOM

ファイル拡張子が.xmlとなっているもの。RSSと同じ目的で異なるデータ形式で記述されたものという解釈でいいと思います。ATOMもRSSとして総称されることが多いようです。

フィードリーダー

フィードリーダー(feed reader)、またはフィード・アグリゲーター(feed aggregator)は、
ブログやポッドキャスト、ニュースサイトなどが配信するフィードを取得・購読するための
アプリケーションソフトウェアの総称。フィードのファイルフォーマットとしてRSSが先行していたことから、
現在でも「RSSリーダー」と呼ばれることが多い。
※Wikipediaより抜粋

以上のことからRSSには様々なフォーマットがあるので、リーダーを作るためには様々なフォーマットに対応したParserを実装する必要がありそうでした。

iOSでのRSSリーダー

今まで調べたことから、これからiOSアプリにおいてRSSリーダーを作る場合にはRSS1.0, RSS2.0, ATOMそれぞれのデータフォーマットに対応したParserを作ってあげる必要がありそうです。
自分で一から作るのもいいですが、車輪の再発明をしてもしょうがないなと思い、ライブラリがないか探してみました。するとやはりすでによさげなものがありました。

FeedKit

https://github.com/nmdias/FeedKit
RSS, ATOM, JSONに対応したFeed Parserです。
このライブラリの中身を読んでいて驚いたのが、データ取得をするのにURL Sessionなどの一般的なデータ転送処理が一切書かれていませんでした。
データの取得には

data = try Data(contentsOf: sanitizedSchemeUrl)

これだけです!賢い!

参考

https://ja.wikipedia.org/wiki/RSS
https://oshiete.goo.ne.jp/qa/3951173.html
https://www.nishishi.com/blog/2006/02/rss_rdf_xml.html
http://e-words.jp/w/RSS.html
http://e-words.jp/w/RSS%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89.html

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?