Upload
nia-tomonaka
View
768
Download
0
Embed Size (px)
Citation preview
1
On : プログラミング生放送勉強会 第 39 回 at 株式会社 DMM.com ラボ(恵比寿)
By : 智中 ニア Nia Tomonaka ( @nia_tn1012 )
すぱこー RSS フィードを取得するライブラリができました!
©2014-2016 Chronoir.net05/03/2023
2
• 智中 ニア ( Nia Tomonaka ) / @nia_tn1012
• 湘南生まれの大学院生• プログラミング言語 : C++ / C# / F# / XAML• 好物 : 紅茶とコーヒー、シラス丼 etc.• 趣味 : 写真撮影 / 音ゲー( Reflec Beat など)
• たまに簡単なイラストを描いています• 最近は UWP アプリ開発や Xamarin 、 Linux サーバー関連の勉強中
Profile
↑→ 現在のアイコンと SD 画像です( Ver. 4.6 )
3
念願の Windows 10 Mobile をゲットだ ZE !
Yeah!
KATANA02 ( FREETEL 製)
4
• シアたんとミョウガからプレゼントです!
明日( 2 月 14 日)はバレンタインデーなので・・・
5
[20/Dec/2014] “参加 &SS プロ生勉強会 @ 東京”[16/May/2015] “参加 < プロ生勉強会 @ 東京”[29/Aug/2015] “参加 & LT プロ生勉強会 @ 東京”[31/Oct/2015] “参加 & LT プロ生勉強会 @ 東京”[10/Dec/2015] “参加 プロ生ちゃん AdventCalendar on Qiita”[12/Dec/2015] “参加 < プロ生勉強会 @ 名古屋”[13/Feb/2016] “参加 < プロ生勉強会 @ 東京”
活動 .log
6
• 「すぱこー RSS フィード」リーダーライブラリ、「すぱーダ」の開発話
今回の My Lightning Talk
7
ところで皆さんは・・・
すぱこーを読んでる?
うん、読んでる
読んでないよ
n 票・残り t 時間
8
うん、読んでるよ!
読んでないよ~
∞ 票・最終結果
プロ生ちゃんファンなら・・・
もちろん読んでるよね?
100%0%
9
• すぱこー RSS フィードからデータを簡単に取得できる .NET 用のクラスライブラリです。• 読み込む方法は LINQ to XML または XmlReader の 2 通りです。
• 要素のデータの形式に適した型に変換されます(例: pubDate など日付のデータは DateTime 型として格納されます)
• 各話のコレクションは、 IEnumerbale<T> 型なので、 LINQ を使って多種多様な操作をすることができます。
(例 : 最近 2 か月分だけを抽出)
What ‘s すぱーダ
10
• SyndicationFeed という、とても便利なクラスがあります。
.NET で RSS フィードを読み込むには?
using( var xr = XmlReader.Create( “ すぱこー RSS フィードの URL” ) ) {
var sr = SpacoRSSReader.Load( xr );
// …}
わーい、簡単だね♪
11
• 例外( XmlException )がスローされてしまいました・・・
しかし、すぱこー RSS フィードでは・・・
ナ、何ダッテー!?
12
そこで・・・
そうだ、ライブラリを作ろう!
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
14
• NuGet パッケージをダウンロードします。
すぱーダの使い方①
「すぱこー」 or 「すぱーダ」で検索すると、
すぐに見つかるよ~!
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; // アイテムのコレクション
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 を指定すると、呼び出し元から
非同期処理をキャンセルすることができます
17
• UWP やストアアプリ、モバイルアプリなど、一部のプラットフォームでは、 XmlReader.Create メソッドで Web 上の XML ファイルを取得できません。
⇒ HTTP 経由で取得する必要があります。
• エクすぱーダとユニすぱーダでは、 URL を指定するだけで、 Web上の XML ファイルを HTTP 経由で取得し、 XmlReader オブジェクトを生成することができる機能が搭載されています。
⇒ Web プログラミング初心者でも、大丈夫だよ!絶対、大丈夫だよっ!
Web 上から、すぱこー RSS フィードを取得する時
18
• SpacoRSSReader.Items から LINQ で色々操作してみます。
• 1 話から順に並び替え• 作者を指定して抽出• 投稿日時を指定して抽出
すぱーダを利用したプログラミング
楽しいデモンストレーションの時間だよ!
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
フォローよろしくお願いします!
20
ご清聴ありがとうございました!
Thank you !