初級
ADB ( Adobe Developer Box ) は、Adobe AIR で作成された RIA開発者向けのデスクトップツールであり、主に以下の機能を備えています。
現在、Flex User Groupの大阪のメンバーが中心となって開発を進めており、2009年1月末ごろ Adobeよりベータ版がリリースされる予定です。画像はウィジェットモードで起動中のADBです。
1-2.この連載について
ADB は、RIA開発者に役立つツールになることを目標としていますが、それ以外にも、開発自体をオープンに展開し、RIA開発者の皆さんの参考になればいいなと考えています。従って、ソースコード公開!!開発の状況もこの連載にて随時公開!!という太っ腹プロジェクトになる予定です。
今回はライブラリ選定ADBのRSSリーダー機能まわりで使用したライブラリを紹介したいと思います。
連載第1回では、「要件を固める」→「UI設計」という流れについての話でしたが、その間、実装部隊の方では並行して、要件を実現すべくライブラリを選定、作成しました。私が担当していたRSSリーダー機能を例にとると、以下のような流れです。
どういった機能をライブラリ化するかですが、その辺りはどんな言語でもあまり変わらないと思います。
今回は、オープンソースなど、既存のコードで利用できるものは極力利用する形で進めました。
ADB開発プロジェクトは前述の通り「太っ腹プロジェクト」だということもあり、プロジェクトとしての縛りは緩かったのですが、商用製品を開発するプロジェクトであれば、ソースコードの出所や著作権、利用許諾(ライセンス)等、十分注意する必要があります。
要件に合う適当なものがない場合のみ、独自に作成しました。
「as3syndicationlib」「RSSAutoDiscovery」の内容は、次項以降で紹介します。
as3syndicationlibとは、Adobe Systems社がGoogle Codeという開発ホスティングサービスで配布している、フィード解析ライブラリです。
複数の形式(RSS1.0、2.0、Atom)のフィードを自動判別して解析してくれます。
なお、ライセンスはNew BSD Licenseとなっています。
フィード解析結果は以下のような構造となっており、フィードの形式にかかわらず、同じインタフェース(IFeed)で扱えます。
なお、フィード形式独自の項目を参照したい場合には、取得結果を、形式ごとに定義されているクラスにキャストすれば良いようになっています。
フィード自動探索(RSS auto-discovery)とは、HTMLにRSSがあることを示すタグを入れておき、対応したソフトがRSS feedを発見(discover)できるようにしておける仕組みのことです。今回、適当なライブラリが見当たらなかったため、ADBプロジェクトで簡易なものを実装しました。以下でポイントのみ解説します。
フィードの存在を示す<link>タグをWebページのHTMLから探し出すため、まずはHTMLを解析します。
今回、標準のflash.html.HTMLLoaderクラスを使用してHTMLの解析を行いました。
HTMLLoaderクラスで取得したHTMLの各要素へはgetElementByTagName()でアクセスできるため、_parseHTML()メソッドに記述したように、<html>→<head>→<link>と順番にHTMLタグを辿っています。
linkタグの解析は、_parseLink()メソッドに記述したとおり、<link rel="alternate" type="{フィードの種類}" href="{フィードURL}">に合致するタグを単純に探索しています。
第2回ではRSSリーダ機能で使用した「as3syndicationlib」「RSSAutoDiscovery」について紹介しました。
ADBでは他にも「Tweener」「ActionScript Thread Library」等のライブラリを利用したり、ローカルSQLiteへのアクセス・AIRの自動バージョンUP処理等のライブラリや、リスト・ツリーなどカスタムコンポーネントを作成したりもしています。
ソースコードは公開(される予定)です。是非ご覧ください。
では、引き続き開発中のAdobe Developer Box !次回の連載をお楽しみに!!
Tutorials and samples |
AIR blogs |
More |
AIR Cookbooks |
More |
| 01/20/2012 | Skinnable Transform Tool |
|---|---|
| 01/18/2012 | Recording webcam video & audio in a flv file on local drive |
| 12/12/2011 | Date calculations using 'out-of-the-box' functions |
| 11/29/2011 | Button compatibility with NativeComboBox |