20
On : プププププププププププププ プ 39 プ at ププププ DMM.com ププ ププププ () By : ププ ププ Nia Tomonaka ( @nia_tn1012 ) ププププ RSS ププププププププププププププププププ ププ1 ©2014-2016 Chronoir.net 07/05/2022

すぱこーRSSフィードを取得するライブラリができました!

Embed Size (px)

Citation preview

Page 1: すぱこーRSSフィードを取得するライブラリができました!

1

On : プログラミング生放送勉強会 第 39 回 at 株式会社 DMM.com ラボ(恵比寿)

By : 智中 ニア  Nia Tomonaka ( @nia_tn1012 )

すぱこー RSS フィードを取得するライブラリができました!

©2014-2016 Chronoir.net05/03/2023

Page 2: すぱこーRSSフィードを取得するライブラリができました!

2

• 智中 ニア ( Nia Tomonaka ) / @nia_tn1012

• 湘南生まれの大学院生• プログラミング言語 : C++ / C# / F# / XAML• 好物 : 紅茶とコーヒー、シラス丼 etc.• 趣味 : 写真撮影 / 音ゲー( Reflec Beat など)

• たまに簡単なイラストを描いています• 最近は UWP アプリ開発や Xamarin 、  Linux サーバー関連の勉強中

Profile

↑→ 現在のアイコンと SD 画像です( Ver. 4.6 )

Page 3: すぱこーRSSフィードを取得するライブラリができました!

3

念願の Windows 10 Mobile をゲットだ ZE !

Yeah!

KATANA02  ( FREETEL 製)

Page 4: すぱこーRSSフィードを取得するライブラリができました!

4

• シアたんとミョウガからプレゼントです!

明日( 2 月 14 日)はバレンタインデーなので・・・

Page 5: すぱこーRSSフィードを取得するライブラリができました!

5

[20/Dec/2014]  “参加 &SS  プロ生勉強会 @ 東京”[16/May/2015]  “参加 &LT  プロ生勉強会 @ 東京”[29/Aug/2015]  “参加 & LT  プロ生勉強会 @ 東京”[31/Oct/2015]  “参加 & LT  プロ生勉強会 @ 東京”[10/Dec/2015]  “参加 プロ生ちゃん AdventCalendar on Qiita”[12/Dec/2015]  “参加 &LT  プロ生勉強会 @ 名古屋”[13/Feb/2016]  “参加 &LT  プロ生勉強会 @ 東京”

活動 .log

Page 6: すぱこーRSSフィードを取得するライブラリができました!

6

• 「すぱこー RSS フィード」リーダーライブラリ、「すぱーダ」の開発話

今回の My Lightning Talk

Page 7: すぱこーRSSフィードを取得するライブラリができました!

7

ところで皆さんは・・・

すぱこーを読んでる?

うん、読んでる

読んでないよ

n 票・残り t 時間

Page 8: すぱこーRSSフィードを取得するライブラリができました!

8

うん、読んでるよ!

読んでないよ~

∞ 票・最終結果

プロ生ちゃんファンなら・・・

もちろん読んでるよね?

100%0%

Page 9: すぱこーRSSフィードを取得するライブラリができました!

9

• すぱこー RSS フィードからデータを簡単に取得できる .NET 用のクラスライブラリです。• 読み込む方法は LINQ to XML または XmlReader の 2 通りです。

• 要素のデータの形式に適した型に変換されます(例: pubDate など日付のデータは DateTime 型として格納されます)

• 各話のコレクションは、 IEnumerbale<T> 型なので、 LINQ を使って多種多様な操作をすることができます。

 (例 : 最近 2 か月分だけを抽出)

What ‘s すぱーダ

Page 10: すぱこーRSSフィードを取得するライブラリができました!

10

• SyndicationFeed という、とても便利なクラスがあります。

.NET で RSS フィードを読み込むには?

using( var xr = XmlReader.Create( “ すぱこー RSS フィードの URL” ) ) {

var sr = SpacoRSSReader.Load( xr );

// …}

わーい、簡単だね♪

Page 11: すぱこーRSSフィードを取得するライブラリができました!

11

• 例外( XmlException )がスローされてしまいました・・・

しかし、すぱこー RSS フィードでは・・・

ナ、何ダッテー!?

Page 12: すぱこーRSSフィードを取得するライブラリができました!

12

そこで・・・

そうだ、ライブラリを作ろう!

Page 13: すぱこーRSSフィードを取得するライブラリができました!

13

NuGet のアイコン

名前 対応プラットフォーム 備考

すぱーダ( SPADA )

• .NET Framework 4

エクすぱーダ( X-SPADA )

• .NET Framework 4.5• Windows 8.x のストアアプリ• Windows Phone 8.1• Xamarin.Android 、 Xanari

n.iOS

• 非同期読み込みに対応

ユニすぱーダ( Uni-SPADA )

• ユニバーサル Windows • 非同期読み込みに対応

ラインナップ

NuGet Gallery 上で公開中です! -> https://www.nuget.org/profiles/nia_tn1012

Page 14: すぱこーRSSフィードを取得するライブラリができました!

14

• NuGet パッケージをダウンロードします。

すぱーダの使い方①

「すぱこー」 or 「すぱーダ」で検索すると、

すぐに見つかるよ~!

Page 15: すぱこーRSSフィードを取得するライブラリができました!

15

• SpacoRSSReader.Load メソッドで「すぱこー RSS フィードのURL 」 or 「すぱこー RSS フィードと関連付けた XmlReader 」を指定します。

• あとはプロパティから、すぱこー RSS フィードの要素のデータを取り出すだけの簡単なお仕事作業です!

すぱーダの使い方②

var sr = SpacoRSSReader.Load( “ すぱこー RSS フィードのURL” ) );string title = sr.Title; // すぱこー RSS フィードのタイトルDateTime date = sr.PubDate; // 最終更新日IEnumerable<SpacoRSSItem> items = sr.Items; // アイテムのコレクション

Page 16: すぱこーRSSフィードを取得するライブラリができました!

16

• LoadAsync メソッドで、すぱこー RSS フィードを非同期で読み込むことができます。

エクすぱーダやユニすぱーダなら

var list = new ObservableCollection<SpacoRSSItem>();var cts = new CancellationTokenSource();

using( var xr = XmlReader.Create( “ すぱこー RSS フィードの URL” ) ) {

var sr = await Task.Run( () => SpacoRSSReader.LoadAsync( xr, cts.Token ) );

foreach( var item in sr.Items ) {list.Add( item );

}}

非同期処理

CancellationToken を指定すると、呼び出し元から

非同期処理をキャンセルすることができます

Page 17: すぱこーRSSフィードを取得するライブラリができました!

17

• UWP やストアアプリ、モバイルアプリなど、一部のプラットフォームでは、 XmlReader.Create メソッドで Web 上の XML ファイルを取得できません。

 ⇒ HTTP 経由で取得する必要があります。

• エクすぱーダとユニすぱーダでは、 URL を指定するだけで、 Web上の XML ファイルを HTTP 経由で取得し、 XmlReader オブジェクトを生成することができる機能が搭載されています。

 ⇒ Web プログラミング初心者でも、大丈夫だよ!絶対、大丈夫だよっ!

Web 上から、すぱこー RSS フィードを取得する時

Page 18: すぱこーRSSフィードを取得するライブラリができました!

18

• SpacoRSSReader.Items から LINQ で色々操作してみます。

• 1 話から順に並び替え• 作者を指定して抽出• 投稿日時を指定して抽出

すぱーダを利用したプログラミング

楽しいデモンストレーションの時間だよ!

Page 19: すぱこーRSSフィードを取得するライブラリができました!

19

• ブログ: http://chronoir.net• Qiita : http://qiita.com/nia_tn1012• GitHub : https://github.com/Nia-TN1012• NuGet : https://www.nuget.org/profiles/nia_tn1012• Twitter :• ニア: @nia_tn1012• シアたん: @xiia_Chronoir• ミョウガ: @Myoga1012

Links

フォローよろしくお願いします!

Page 20: すぱこーRSSフィードを取得するライブラリができました!

20

ご清聴ありがとうございました!

Thank you !