フィードリーダー(RSSリーダー)制作と配布‐AIRのお勉強(8)‐
本日、シンプルフィードリーダー 青春ブロッコリーのバージョン0.10の配布を開始しました。
AIRで作った「青春B初のデスクトップアプリケーション」です。
flash素材‐透明な便箋‐内にて配布中ですので、よろしければご利用くださいませ。
Windows2000、XP、VISTA、MacOS10.4、10.5で使用できます。
AIRランタイムのインストールも必要ですのでご注意ください。
ちなみに、フィードというのはWebサイト毎に生成される「更新情報をまとめたファイル」です。
フィードリーダーというのはWebサイト毎に配信されているフィードをまとめて効率よくチェックするためのツールです。
とてつもない数のWebサイトが存在する現在を反映したツールだからこそ、多数様々な方や会社が制作しているのでしょう。
AIRの勉強を始めて、なにかアプリケーション作りたくなって
「定型XMLデータから項目抽出して表示するだけだからそんなに難しくないだろう」
な~んて軽い気持ちで作り始めて、実力不足と無知を思い知りました。
もっとしっかり準備してから作るべきだったなと。
以下、制作に当たってつまづいた点を列挙します。
他の方の参考になるかはわからないですが。
- XML形式
フィードって、RSSだけじゃないんですよね(当たり前)。
しかもRSSだけじゃない上、RSSの中だけでもいくつかバージョンがある。
さらに、同じRSSのバージョンでも、とあるタグが存在するフィードと存在しないフィードがあったり。
フィードの形式についてももっと勉強して細かい仕様を把握してから作り始めるべきだったなと。
今回配布開始したバージョンではかなり行き当たりばったりな部分ありながらも、RSS2.0、RSS1.0、RSS0.91、Atom1.0、Atom0.3に対応させました。
- 名前空間
XMLって、名前空間があるんですよね。知ってはいたんですが、開発始めてから初めて意識しました。
要素名がかぶらないようにとつけられる名前なのですが、これが対象フィードにて定義されている場合、そのままでは値取得できないんです。
- 時刻取得
今回のフィードリーダーでは全フィードから取得した記事を時間順に並べ替えます。
そのために年月日時分秒を取得するわけです。
これもなんだかんだ手こずりました。
一桁の数値のときに頭に0をつけるかつけないかが統一されていなかったり、何時何分何秒まで表示するところと何時何分まで表示するところと時間は表示しないところがあったり。
結局正規表現で総当りみたいになってしまったのですが、もっと良い方法はないのかなと今でも考え中です。
- 文字コード
コンピュータの中では文字を数値として扱います。一文字一文字に番号をつけているんです。
その番号のつけ方のルールにはいくつか種類があり、番号と文字の対応表を文字コード表と呼びます。
FlashはUTF-8が基本となっているので、それ以外の文字コードを扱うためには内部でそのための処理が必要です。
どうにか自力で文字コードを判別する部分は作り、あとはreadMultiByteメソッド(指定した文字コードにて文字列を読み込む)を使用するだけと思ったら、EUC-JPをうまく読み込んでくれない!
Flash側のバグなのかな? わたしの使い方が悪い?
そのため、文字コードの変換には「WEB2MEMO様」配布のActionScript用日本語文字コード変換ライブラリ『Jcode』のソースを流用させていただきました。
心より感謝申し上げます。
- OPML
OPML(フィードリーダー間でデータを移動するための標準形式)というものの存在を、今回のアプリケーションをほぼ完成まで作ったところで初めて知りました。
それまでは独自フォーマットでのバックアップ機能設けていました。
今にして思えば「OPML知らずにフィードリーダー作るんじゃねえよ」って感じですね。
バージョン0.10としたことからもわかりますように、まだまだ機能的にも完成度的にも不充分です。
「このフィードが読めなかった」等のバグ情報や、追加してほしい機能等ありましたら、ぜひご連絡ください。
できるだけ対応させていただきます。
ご連絡はコンタクトのコンテンツの投稿フォームをご利用ください。
開発ファイルもいずれ配布したいなと思います。
これからもどうぞよろしくお願いいたします。