|
|
第5回 アプリケーションを実装する前回は,iPhoneアプリケーション開発を解説するにあたり必要な,オブジェクトの基本知識や開発の流れを紹介した。今回は,アプリケーションの実装に入っていこう。今回紹介するのは,RSSを読み込み,パースしてその一覧をテーブル内に表示する,という機能だ。 パース・データとしてRSSを例に説明しているが,内容としてはXML全般に適用できる話である。XMLでのWebアプリケーション連携を考える際には役に立つだろう。 iPhoneのXMLパーサーiPhoneには,近年の様々なスクリプト言語に見られる,全自動でオブジェクト化を行ってくれるような強力なXMLパーサーは搭載されていない。だが,単純にXMLタグをパースしていくだけの単純なものであれば,2通りの選択肢がある。
・libxml2 ライブラリ libxmlライブラリは,Linuxでよく知られた高機能なXMLパース・ライブラリで,多くのプラットフォームに移植され利用されている。スクリプト言語などで実装されているXML処理系でも,このlibxmlをラッピングしたり,内部的に利用したりしているものが多い。特徴としては,実績があり高機能であること,高速であることなどが挙げられる。 デメリットとしては,C言語のAPIであるためiPhone内で利用するためにはObjective-Cのオブジェクトを適切に渡すためのラッピング・オブジェクトを改めて作成しなければならないという面倒さがある。 それに対して,NSXMLPerserは,Objective-C用のAPIとしてiPhoneで提供されるFoundationフレームワーク内に用意されているXMLのパーサー・オブジェクトだ。内部的にはlibxmlを利用している。言ってみれば,libxmlのよく使いそうな機能をObjective-Cでうまく使えるようにラッピングしておいたもの,といったところだ。 厄介な部分を吸収してくれる代わりに,Objective-Cのオブジェクトをあれこれ生成したりするので,やはりlibxmlをそのまま使うよりもだいぶ遅くなってしまう傾向がある。 これらの特性を比較すると,「手軽に済ませたい」「一つひとつのXMLの規模があまり巨大ではない」というような場合にはNSXMLParserを,大量のXML処理を行い,その重さがアプリケーションの性能に影響を及ぼすような規模になるようなら,libxmlを使って自前のXMLオブジェクト実装を,といった使い分けをするとよいだろう。 ここでは,その手軽さの面からNSXMLParserを使った実装を紹介していく。 NSXMLParserを使ったRSSパーサーの実装
RSSパーサーの実装の仕組みとしては, さて,まずはパース対象となるRSSの例として,ITproトップページのRSSを見てみよう。 http://itpro.nikkeibp.co.jp/rss/ITpro.rdf
先頭部分の
RSSデータ(ITpro.rdf)の抜粋
この部分にある 最初に,RSSParserとItemいう名前で,新たに二つのNSObjectサブクラスを作成していく。これらはそれぞれ,RSSのパーサーを実装するオブジェクトと,RSSデータ一つ一つの内容を格納するオブジェクトである。
>>実装内容を順に紹介
連載新着連載目次へ >>
|