前回のiPhoneアプリでは、URLの作成およびレスポンスの取得まで行いました。
今回、取得したレスポンスを整形し、簡単なViwerを作成します。
Titanium Mobileのtable viewテンプレート(Master/Detail Application)を利用しました。
Bucket内のファイルの一覧。
選択したファイルの詳細画面。
ファイル名、最終更新日時、サイズを表示します。
今回は、Bucket内のファイルの一覧および詳細情報を表示するだけの簡単なviwerを作成しました。
S3互換ストレージを操作するポイントは、専用URLの作成(もっというとsignatureの生成)ですが、今回は、S3用のモジュールを利用する事で、signature生成手順を特に意識することなく、実装することができました。
前回作成したアプリの仕組みを利用すると、複数ストレージサービスの切り替え、ファイル管理などもできそうです。
(iPhone上でのファイルのupload/downloadは、やった事ないので調べないといけない。。。)
簡単ですが、今日はここまで。
===
<追記>
2012/11/25 まとめを追記しました。
2012年11月24日土曜日
2012年11月23日金曜日
S3互換ストレージ用clientを作成してみた その3
前々回、前回に続き、今回はiPhoneアプリ作成に挑戦します。
ソースコード整理できたら、githubで公開したいと思います。
開発環境はTitanium Mobileを利用します。使用verは2.1.xです。
(ver3.0はかなりエラーでたので、今回はver2.1で作成することにしました)
モジュールとしては、下記を利用しました。
- amazon-s3-url-signer
S3互換ストレージ用URL作成モジュール
https://github.com/dyashkir/amazon-s3-url-signer - crypto(sha1.js)
暗号化モジュール
https://github.com/Gozala/crypto - TiDomParser.js
XML->JSON変換モジュール
http://hamasyou.com/blog/archives/000377
TitaniumMobileを使用するのは久しぶりなので、取り急ぎ下記を実装しました。
- S3互換ストレージ用URLを作成
- レスポンスを取得
- レスポンスをXMLからJSONに変換
実行結果は下記の通りです。
自分のBucket内のファイル一覧を取得しています。
ここまでできれば、fileのget,putも同様の手順で実装可能です。
アプリとしては、UIを作り込む必要がありますが、TitaniumはVer3.0で、alloyというフレームワークが導入されたりと、いろいろと環境変化が激しいようなので、そのあたりを見極めた上で、どのように実装するか考えたいと思っています。
(要は、今はUIの実装までしません)
ソースコード整理できたら、githubで公開したいと思います。
今回はここまで。。。

2012年3月31日土曜日
CloudStack API対応iPhoneアプリ作成に挑戦 その2
前回から少し間が空きましたが、やっとアプリらしくなりましたので、githubで公開しました。
https://github.com/snumano/CloudStack-API-iPhone-App
現時点の機能は主に2点。
・CloudStack APIに対応している複数のクラウドサービスに対応
現時点ではTata、Ninefoldの動作確認済。
Datapipeは個人では申込できなさそうなのです。その他は順次確認予定
・コマンドは、VMとVolumeのlist表示に対応
追加/削除ボタンは表示のみで、まだ機能しません。。。
本アプリは、CloudStackの利点である「複数クラウドサービスをシームレスに管理可能」を実感いただくデモ用アプリになればいいなと考えています。
I released iPhone app at github.It helps for a demonstration of CloudStack API.
https://github.com/snumano/CloudStack-API-iPhone-App
Current version has following functions,
*supports multi cloud services which supoprt CloudStack API.
Tata,Ninefold and more.
*supports a fewcommand
listvirtualmachines,listvolumes
It doesn't support deploy and destroy them.
アプリのスクリーンショットをいくつか紹介します。
Followings are some screenshots of the iPhone app.
TataのAPI KEY、SECRET KEYの登録画面です。
各情報は、各サービスのアカウント情報に表示されているので確認してください。
また、API用のURL(BASE URL、API PATH)は事前に設定してあります。
Setting window.Please submit API KEY,SECRET KEY.
URL(BASE URL、API PATH) is pre-configured.
TataのVMのlist表示(listVirtualMachinesの結果)です。1台しか起動していないので、寂しいですが、正常に表示されています。
右上に「+」ボタンが表示されていますが、現時点では追加(deploy)機能は、未対応なのでクリックしても動作しません。同様に当該VMをスワイプすると、「Delete」ボタンが表示されますが、こちらも未対応です。雰囲気だけでもつかんでいただければ。
Please click 'Tata' and 'VM'.You can see the response of listVirtualMachines.
'Add button' and 'Delete button' are not working now,just dsiplayed.
-----
2012/4/1
英語対応しました。
https://github.com/snumano/CloudStack-API-iPhone-App
現時点の機能は主に2点。
・CloudStack APIに対応している複数のクラウドサービスに対応
現時点ではTata、Ninefoldの動作確認済。
Datapipeは個人では申込できなさそうなのです。その他は順次確認予定
・コマンドは、VMとVolumeのlist表示に対応
追加/削除ボタンは表示のみで、まだ機能しません。。。
本アプリは、CloudStackの利点である「複数クラウドサービスをシームレスに管理可能」を実感いただくデモ用アプリになればいいなと考えています。
I released iPhone app at github.It helps for a demonstration of CloudStack API.
https://github.com/snumano/CloudStack-API-iPhone-App
Current version has following functions,
*supports multi cloud services which supoprt CloudStack API.
Tata,Ninefold and more.
*supports a fewcommand
listvirtualmachines,listvolumes
It doesn't support deploy and destroy them.
アプリのスクリーンショットをいくつか紹介します。
Followings are some screenshots of the iPhone app.
赤枠のアイコンのアプリを起動させます。
Click the app icon.
起動時の画面です。右下の設定ボタンをクリックし、API Keyの登録を行います。
Home window.At the first,click the setting button.
TataのAPI KEY、SECRET KEYの登録画面です。
各情報は、各サービスのアカウント情報に表示されているので確認してください。
また、API用のURL(BASE URL、API PATH)は事前に設定してあります。
Setting window.Please submit API KEY,SECRET KEY.
URL(BASE URL、API PATH) is pre-configured.
右上に「+」ボタンが表示されていますが、現時点では追加(deploy)機能は、未対応なのでクリックしても動作しません。同様に当該VMをスワイプすると、「Delete」ボタンが表示されますが、こちらも未対応です。雰囲気だけでもつかんでいただければ。
Please click 'Tata' and 'VM'.You can see the response of listVirtualMachines.
'Add button' and 'Delete button' are not working now,just dsiplayed.
先のVMをクリックして詳細表示したところです。zonenameが「India」と表示され、しみじみします。
VM detail information window.
いかがでしたでしょうか。
iPhoneにアプリをinstallして各国のクラウドをポケットにいれるもよし、開発環境のMac上で各サービスの生responseを確認するもよし、対応コマンドを増やすもよし。いろいろな楽しみ方ができると思います。
プログラム自体きれいに書けていないところがありますので、ご勘弁いただけたらと思います。
まずは「今年の目標」の1つを完了。
2012/4/1
英語対応しました。
ラベル:
API,
CloudStack,
Titanium

2012年3月5日月曜日
CloudStack API対応iPhoneアプリ作成に挑戦 その1
最近JavaScriptを勉強の一環でTitanium Mobileを触っています。そしてせっかくなので、何らかのoutputを考えています。
で、CloudStack API対応のiPhoneアプリ作成に挑戦することにしました。
CloudStack API用のPerlライブラリを作成した事がある程度で、それ以外は、ほぼ初心者です。
下記stepでの対応を想定しています。
今日はここまでです。
GUIの実装ができたらまた紹介したいと思います。
で、CloudStack API対応のiPhoneアプリ作成に挑戦することにしました。
CloudStack API用のPerlライブラリを作成した事がある程度で、それ以外は、ほぼ初心者です。
下記stepでの対応を想定しています。
- CloudStack API入門
- JavaScript入門
- Titanium Mobile入門
- iPhoneアプリ作成
- JavaScriptでCloudStack APIのURL生成機能を実装
- TitaniumのHTTP Client APIにて上記4-1のURLのレスポンスを取得
- TitaniumにてGUIの実装
- AppStoreで公開
- CloudStack API入門
CloudStack API情報まとめをご参照ください。
この時のoutputとして、CloudStack API用Perlライブラリを公開しました。
今回、CloudStack API対応クラウドとしてTata Communicationのクラウドサービスを利用しています。 - JavaScript入門
参考資料はこちらをご参照ください。 - Titanium Mobile入門
Chapter1-5の途中まで読み、Titanium Mobileの使い方、アプリ作成方法の概要を学習しました。必要な機能は主にJavaScriptで実装することになりそうですが、一部機能についてはTitanium Mobileで提供しているものがありました。楽できます。
<Titanium Mobileで利用した機能>- HTTPClient
- JSON parse
- convert Lower case
- URI encode
- Base64 encode #ライブラリを利用
- HMAC SHA-1 hash #同上
- iPhoneアプリ作成
現在作成中です。4-1,4-2のURLの作成およびレスポンスの取得までできました。
現時点の、iOSシミュレータの画面は下記になります。
Tataのクラウドサービスに対して、listVirtualMachinesのレスポンスです。
今のところ、jsonで取得したレスポンスをそのまま表示しているだけです。GUIはTitanium Mobileのテンプレートのままですね。
今後、VM,Volume,NW等主要なコンポーネントのlist系コマンドの実装および、GUIの実装をすすめたいと思います。
今日はここまでです。
GUIの実装ができたらまた紹介したいと思います。
ラベル:
API,
CloudStack,
Titanium

2012年2月17日金曜日
Titanium Mobile アプリを実機にinstallの際のハマりポイント
Titanium Mobile勉強中です。
アプリを実機にinstallの際のハマりポイントを備忘録として残しておきます。
下記の本で勉強中です。
アプリを実機にinstallの際のハマりポイントを備忘録として残しておきます。
- tiapp.xmlのApplication ID入力
iOS Dev Centerの[iOS Provisioning Portal][App IDs]では、App IDは「Bundle Seed ID」と「Bundle Identifier(ドメインを逆にしたもの)」で構成されます。
しかし、 tiapp.xmlのApplication IDでは 「Bundle Identifier」のみを指定します。(もし、App IDのBundle Identifierの最後の部分をワイルドカード*で指定した場合、アプリ名を付与する必要があります。) - iTunesのversion up
日頃使わないMACだったので。。。
下記の本で勉強中です。
ラベル:
javascript,
Titanium

登録:
投稿 (Atom)