Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / Adobe AIRデベロッパーセンター /

ADB開発中!Adobe Developer Box 開発日記 連載2) RSSライブラリ

著者 檜谷 卓也氏

檜谷 卓也氏

作成日

27 January 2009

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

Tags

必要条件

ユーザーレベル

初級

1.はじめに

1-1.Adobe Developer Boxとは

ADB ( Adobe Developer Box ) は、Adobe AIR で作成された RIA開発者向けのデスクトップツールであり、主に以下の機能を備えています。

  • レコメンド
    RIAエンジニアに役立つ情報が記載されたサイトをレコメンド。
  • RSSリーダー
    RIAエンジニア向けのフィードが登録された RSSリーダー。もちろんユーザーによるフィードの編集が可能で、たくさんのフィードを見やすく表示。
  • PDF検索
    複数のPDFファイルを一発検索。インストール時に「Adobe Flex リソース」のPDFファイルが含まれています。

現在、Flex User Groupの大阪のメンバーが中心となって開発を進めており、2009年1月末ごろ Adobeよりベータ版がリリースされる予定です。画像はウィジェットモードで起動中のADBです。

図1:ウィジェットモードで起動中のADB

1-2.この連載について

ADB は、RIA開発者に役立つツールになることを目標としていますが、それ以外にも、開発自体をオープンに展開し、RIA開発者の皆さんの参考になればいいなと考えています。従って、ソースコード公開!!開発の状況もこの連載にて随時公開!!という太っ腹プロジェクトになる予定です。
今回はライブラリ選定ADBのRSSリーダー機能まわりで使用したライブラリを紹介したいと思います。

2.RSSライブラリ

連載第1回では、「要件を固める」→「UI設計」という流れについての話でしたが、その間、実装部隊の方では並行して、要件を実現すべくライブラリを選定、作成しました。私が担当していたRSSリーダー機能を例にとると、以下のような流れです。

・ライブラリ化できる機能の洗い出し

どういった機能をライブラリ化するかですが、その辺りはどんな言語でもあまり変わらないと思います。

  • 例) RSSリーダー機能 → 『フィード解析』『フィード自動探索』

・既存ライブラリの適用を検討

今回は、オープンソースなど、既存のコードで利用できるものは極力利用する形で進めました。
ADB開発プロジェクトは前述の通り「太っ腹プロジェクト」だということもあり、プロジェクトとしての縛りは緩かったのですが、商用製品を開発するプロジェクトであれば、ソースコードの出所や著作権、利用許諾(ライセンス)等、十分注意する必要があります。

  • 例) 『フィード解析』 → オープンソースを利用(as3syndicationlib)

・足りないものは実装

要件に合う適当なものがない場合のみ、独自に作成しました。

  • 例) 『フィード自動探索』 → 独自に作成(RSSAutoDiscovery)

「as3syndicationlib」「RSSAutoDiscovery」の内容は、次項以降で紹介します。

3.フィード解析(as3syndicationlib)ライブラリ

as3syndicationlibとは、Adobe Systems社がGoogle Codeという開発ホスティングサービスで配布している、フィード解析ライブラリです。
複数の形式(RSS1.0、2.0、Atom)のフィードを自動判別して解析してくれます。
なお、ライセンスはNew BSD Licenseとなっています。

  • as3syndicationlibの入手
    以下サイトからダウンロードしてください。
    http://code.google.com/p/as3syndicationlib/
    (zipファイルを解凍し、bin配下のxmlsyndication.swcを使用します)
  • as3corelibの入手
    as3syndicationlibは、as3corelibという別のライブラリ(こちらもAdobe Systems社がGoogle Codeで公開しています。ライセンスも同じくNew BSD Licenseです)に依存しています。こちらは以下サイトからダウンロードします。
    http://code.google.com/p/as3corelib/
    (zipファイルを解凍し、bin配下のcorelib.swcを使用します)
  • as3syndicationlibの使い方
    サンプルコードを見ていただければ分かりますが、使い方は非常に簡単です。
図2:サンプルコード

フィード解析結果は以下のような構造となっており、フィードの形式にかかわらず、同じインタフェース(IFeed)で扱えます。
なお、フィード形式独自の項目を参照したい場合には、取得結果を、形式ごとに定義されているクラスにキャストすれば良いようになっています。

図3:データ構成

4.フィード自動探索(RSSAutoDiscovery)ライブラリ

フィード自動探索(RSS auto-discovery)とは、HTMLにRSSがあることを示すタグを入れておき、対応したソフトがRSS feedを発見(discover)できるようにしておける仕組みのことです。今回、適当なライブラリが見当たらなかったため、ADBプロジェクトで簡易なものを実装しました。以下でポイントのみ解説します。

・HTMLの解析

フィードの存在を示す<link>タグをWebページのHTMLから探し出すため、まずはHTMLを解析します。
今回、標準のflash.html.HTMLLoaderクラスを使用してHTMLの解析を行いました。

図4:HTMLの解析

・linkタグの探索

HTMLLoaderクラスで取得したHTMLの各要素へはgetElementByTagName()でアクセスできるため、_parseHTML()メソッドに記述したように、<html>→<head>→<link>と順番にHTMLタグを辿っています。

図5:linkタグの探索

・linkタグの解析

linkタグの解析は、_parseLink()メソッドに記述したとおり、<link rel="alternate" type="{フィードの種類}" href="{フィードURL}">に合致するタグを単純に探索しています。

図6:linkタグの解析

5.まとめ

第2回ではRSSリーダ機能で使用した「as3syndicationlib」「RSSAutoDiscovery」について紹介しました。
ADBでは他にも「Tweener」「ActionScript Thread Library」等のライブラリを利用したり、ローカルSQLiteへのアクセス・AIRの自動バージョンUP処理等のライブラリや、リスト・ツリーなどカスタムコンポーネントを作成したりもしています。
ソースコードは公開(される予定)です。是非ご覧ください。

では、引き続き開発中のAdobe Developer Box !次回の連載をお楽しみに!!

Tutorials and samples

Tutorials

  • Introducing Adobe AIR Launchpad
  • Licensing Adobe AIR applications on Android
  • Developing native extensions for Adobe AIR
  • Uploading images from CameraRoll and CameraUI

Samples

  • Licensing Adobe AIR applications on Android
  • Using web fonts with Adobe AIR 2.5
  • Using Badger for Adobe AIR applications

AIR blogs

More
02/02/2012 AIRKinect Extension is a Native Extension for use with Adobe AIR...
02/01/2012 Microsoft Kinect and Adobe AIR
02/01/2012 New Adobe Flash Player 11.2 beta for Desktops and Adobe AIR 3.2 beta
01/30/2012 Using charts inside Mobile Applications with Adobe AIR

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

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement