Titanium Mobileで遊んでみた
スマートフォン勉強会@関西#16 大阪電気通信大学 寝屋川駅前キャンパス
2011/7/2
はじめまして、こんにちは こんにちは、津守です。
大学生のような生き物です。
いつもはC++
モバイルプラットフォームはWindows系
さいきんiPhone
今日はTitanium Mobileで遊んでみようと思います。
Titanium Mobileってなぁに? JavaScriptでモバイルアプリケーションを開発できる便利な
の
iPhone/iPad/Androidのアプリケーションが作れます
最近BlackBerryにも対応しました。
Phone7にも対応する気はあるみたい
OSごとにObjective-C/Java/C#を書き分けなくていい
軽いアプリケーションならOSごとの開発言語で本気出さなくていいのでお手軽
せっかくなので導入編から
導入編 Titanium Studioをダウンロードする!
http://www.appcelerator.com/products/titanium-studio/
インストールする!
Windows7の非管理者アカウントだと挙動が微妙
起動する!
アカウント作る!
ログインするとIDEがそこに!
Titanium Studio Titaniumの開発環境。
Titanium Mobileもこれ。
Aptana StudioというIDEがベース。
Aptana StudioはEclipseがベース。
ようするにJava
ビルドとかデバッグとかできます。
ちなみにデバッグは有料です。
Demo 導入編
アプリを作ってみました とりあえず簡単なもの!
ということで、携帯百景アプリ作ってみました。
起動→撮影→投稿の簡単設計
携帯百景 携帯から写真をアップロードして共有するサービス
わりとゆるふわな感じ
投稿はすべてメールで
SMTP書きたくないのでAPI作りました
携帯百景API 正式に一般向けに公開されてるのはないみたい
不便なので野良APIを作りました。
http://www2.refy.net/api/movapic/uploadAndPost
Twitpicの昔のAPI風味です
リクエストすると裏でSMTPを喋ってます
運営のうさぎさんに無許可でやってるのであれげかも
Titanium Mobileでカメラアクセス Titanium.Media.showCamera()
これを呼ぶだけ。とても簡単。
成功、エラー、キャンセルにイベントハンドラ渡すと呼んでくれます。
あとは細かい設定がいくつか。
ギャラリーアクセス カメラのついでにフォトギャラリー。
Titanium.Media.openPhotoGallery()
呼ぶだけ簡単。
ハンドラその他はカメラとほとんど共通
らくちん!
HTTP通信 JavaScriptなのでXHR風味ですよ!
var xhr = Ti.Network.createHTTPClient();
こんな感じで生成します。
あとはonloadとかくっつけてsendするだけ。
みなさんの慣れた環境と同じです
ロケーションアクセス Titanium.Geolocation.addEventListener('location‘, cb);
イベントハンドラをつけます。
定期的にコールバックが呼ばれます
位置情報がゲットできます!
簡単です
UIの設計 これが面倒。
Titanium.UI.createButton(), etc… で必死生成します。
XMLでUI作ったりするソリューションもあるます
ですが使ったことないので割愛…
JavaScriptはどうなるか iOSの場合
コンパイル時にJavaScriptのコードはすべてObjective-Cへ変換されます
変換されたコードはTitanium Mobileのライブラリとまとめてネイティブコードへ
Androidの場合
JavaScriptのまま実機上で実行されます
スクリプト実行が制限されていないので、Google V8エンジンで実行されてるらしいです。
JavaScriptとして プロトタイプ使えます
newその他 もちろんおっけーです。
jQueryとかもがんばれば動きます
documentとかwindowとかを定義してほげるそうです
命名とかもだいたいDOMっぽくしてるようで、挙動もあわせてあります
JavaScriptやったことある人がみるとそんなに困らないのではないかなという印象
気になる実行速度 iPhoneのばあい
Objective-Cになるのでそこそこ早いです。
TableViewがもたつきます。
それ以外はわりといい感じに動きます。
その代わりメモリをがっばああああととるみたい。
Androidのばあい
インタプリタなのでわりと遅めかと思いきやそうでもない
がんばれてる印象
書き分けめんどくさくてあんまり使ってない…
困ったところ iOS向けのビルドがMacでしかできない
デバッグするのにお金払わないといけない
UIに互換性がわりとなくて結局書き分け
ところどころ挙動がおかしいことがしばしば
Demo アプリつくったよ!
まとめ JavaScriptで開発できるのはとても便利です
特にObjective-CとJavaやらなくていいのはうれしい
実行速度はそれなり。がんばっても勝てない面はある。
開発はTitanium Studioがリリースされてだいぶ楽に。
UI設計をぽとぺたでできるようになるともっと便利になりそう。
Recommended