今度は iPhone アプリで Picasa Web Album を使うサンプルを作成した。(ソース)
Google data API のObjective-C 版は以下の場所に紹介してある。
http://code.google.com/p/gdata-objectivec-client/
ソースをダウンロードするとサンプルコードも一緒についてくるが、iOS 用のサンプルは、OAuth のサンプルしかない。Picasa Web Album にアクセスするサンプルはOS X用のサンプル(GooglePhotoSample)がある。
これを参考にiOS用に書き換えるしかなさそうだ。
プロジェクトの作成
今回は単純にするために、Window based application で作成した。Window は TextView だけで構成され、取得したデータをこの TextViewに表示するだけの簡単なものにする。
プロジェクトの設定
まずは、Google Data API をリンクするための設定。Google Data API ライブラリのプロジェクトは GData.xcodeproj。この中に、ライブラリはOSX用のGDataFrameworkとiOS用のGDtataTouchStaticLibがある。GooglePhotoSampleのプロジェクトには、このライブラリのプロジェクト( GData.xcodeproj)自体が取り込まれている。これに倣って、GData.xcodeprojをプロジェクトに追加する。
Target Dependencies
GDataFramework の代わりに GDtataTouchStaticLib を設定。
Link Binary With Libraries
GDataFramework の代わりに GDtataTouchStaticLib を設定。
さらに、libxml2 も必要だった。
Header Search Path
OSXでは Framework Search Path を指定する。Framework にヘッダファイルも含まれるためだろう。
iOSでは、実際のヘッダファイルの場所を指定。API の Source フォルダの下(Recursiveに指定)と、libxml2 のフォルダを指定する。なお、Source フォルダの場所を指定するために、GDATA_SRC というユーザー定義を作成した。
ヘッダファイルのimport
OSX版のサンプルでは、
#import "GooglePhotosSampleWindowController.h" #import "GData/GDataServiceGooglePhotos.h" #import "GData/GDataEntryPhotoAlbum.h" #import "GData/GDataEntryPhoto.h" #import "GData/GDataFeedPhoto.h"
このように GData/ をつけてヘッダファイルを指定していた。Sourceの下にある実際のヘッダファイルは GData というフォルダの下にはないが、このような書き方が可能なのは、デッダファイルはFrameworkに含まれているからだと思われる。
iOS版ではこのような書き方はできないが、Header Search Path に実際のヘッダファイルの場所を再帰的に検索するよう指定したので、フォルダの階層は意識せず、ただヘッダファイル名だけを指定すればよい。
処理
OSX版のサンプルでは、ユーザー名とパスワードを入力してボタンを押すと、アルバムの一覧を表示し、選択されたアルバムの情報と写真の一覧を表示し、画像のアップロードなども可能だが、今回はまず、ただAPIが使えることを確かめたかっただけなので、できるだけシンプルに、だたアルバムの情報を取得して表示するだけにした。OSX版のソースから、アルバムの情報を取得する処理だけを取り出してコピーした。ユーザー名とパスワードはソース内に直書き(なので、事項する際は自分のアカウントで書き換えてください)、アルバムの一覧を取得して、リストの先頭のアルバムの情報だけを表示する。
最初の行はアルバムのリストで、この例では1つ(DropBox)だけ。このDropBoxの情報を下に表示している。









2012年5月13日 10:04 午後 |
[…] Picasaを使う(iPhone)でPicasaWebAlbumのAPIでアルバム一覧を取得するところまでやったので、今回は画像のプレビューまで実装してみた。(ソース) […]