Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,166 views

Published on

プログラミング生放送勉強回第39回のLT資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×