21
Titanium Mobileで遊んで みた スマートフォン勉強会@関西#16 大阪電気通信大学 寝屋川駅前キャンパス 2011/7/2

Titanium mobileで遊んでみた

  • Upload
    shigure

  • View
    1.474

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Titanium mobileで遊んでみた

Titanium Mobileで遊んでみた

スマートフォン勉強会@関西#16 大阪電気通信大学 寝屋川駅前キャンパス

2011/7/2

Page 2: Titanium mobileで遊んでみた

はじめまして、こんにちは こんにちは、津守です。

大学生のような生き物です。

いつもはC++

モバイルプラットフォームはWindows系

さいきんiPhone

今日はTitanium Mobileで遊んでみようと思います。

Page 3: Titanium mobileで遊んでみた

Titanium Mobileってなぁに? JavaScriptでモバイルアプリケーションを開発できる便利な

iPhone/iPad/Androidのアプリケーションが作れます

最近BlackBerryにも対応しました。

Phone7にも対応する気はあるみたい

OSごとにObjective-C/Java/C#を書き分けなくていい

軽いアプリケーションならOSごとの開発言語で本気出さなくていいのでお手軽

Page 4: Titanium mobileで遊んでみた

せっかくなので導入編から

Page 5: Titanium mobileで遊んでみた

導入編 Titanium Studioをダウンロードする!

http://www.appcelerator.com/products/titanium-studio/

インストールする!

Windows7の非管理者アカウントだと挙動が微妙

起動する!

アカウント作る!

ログインするとIDEがそこに!

Page 6: Titanium mobileで遊んでみた

Titanium Studio Titaniumの開発環境。

Titanium Mobileもこれ。

Aptana StudioというIDEがベース。

Aptana StudioはEclipseがベース。

ようするにJava

ビルドとかデバッグとかできます。

ちなみにデバッグは有料です。

Page 7: Titanium mobileで遊んでみた

Demo 導入編

Page 8: Titanium mobileで遊んでみた

アプリを作ってみました とりあえず簡単なもの!

ということで、携帯百景アプリ作ってみました。

起動→撮影→投稿の簡単設計

Page 9: Titanium mobileで遊んでみた

携帯百景 携帯から写真をアップロードして共有するサービス

わりとゆるふわな感じ

投稿はすべてメールで

SMTP書きたくないのでAPI作りました

Page 10: Titanium mobileで遊んでみた

携帯百景API 正式に一般向けに公開されてるのはないみたい

不便なので野良APIを作りました。

http://www2.refy.net/api/movapic/uploadAndPost

Twitpicの昔のAPI風味です

リクエストすると裏でSMTPを喋ってます

運営のうさぎさんに無許可でやってるのであれげかも

Page 11: Titanium mobileで遊んでみた

Titanium Mobileでカメラアクセス Titanium.Media.showCamera()

これを呼ぶだけ。とても簡単。

成功、エラー、キャンセルにイベントハンドラ渡すと呼んでくれます。

あとは細かい設定がいくつか。

Page 12: Titanium mobileで遊んでみた

ギャラリーアクセス カメラのついでにフォトギャラリー。

Titanium.Media.openPhotoGallery()

呼ぶだけ簡単。

ハンドラその他はカメラとほとんど共通

らくちん!

Page 13: Titanium mobileで遊んでみた

HTTP通信 JavaScriptなのでXHR風味ですよ!

var xhr = Ti.Network.createHTTPClient();

こんな感じで生成します。

あとはonloadとかくっつけてsendするだけ。

みなさんの慣れた環境と同じです

Page 14: Titanium mobileで遊んでみた

ロケーションアクセス Titanium.Geolocation.addEventListener('location‘, cb);

イベントハンドラをつけます。

定期的にコールバックが呼ばれます

位置情報がゲットできます!

簡単です

Page 15: Titanium mobileで遊んでみた

UIの設計 これが面倒。

Titanium.UI.createButton(), etc… で必死生成します。

XMLでUI作ったりするソリューションもあるます

ですが使ったことないので割愛…

Page 16: Titanium mobileで遊んでみた

JavaScriptはどうなるか iOSの場合

コンパイル時にJavaScriptのコードはすべてObjective-Cへ変換されます

変換されたコードはTitanium Mobileのライブラリとまとめてネイティブコードへ

Androidの場合

JavaScriptのまま実機上で実行されます

スクリプト実行が制限されていないので、Google V8エンジンで実行されてるらしいです。

Page 17: Titanium mobileで遊んでみた

JavaScriptとして プロトタイプ使えます

newその他 もちろんおっけーです。

jQueryとかもがんばれば動きます

documentとかwindowとかを定義してほげるそうです

命名とかもだいたいDOMっぽくしてるようで、挙動もあわせてあります

JavaScriptやったことある人がみるとそんなに困らないのではないかなという印象

Page 18: Titanium mobileで遊んでみた

気になる実行速度 iPhoneのばあい

Objective-Cになるのでそこそこ早いです。

TableViewがもたつきます。

それ以外はわりといい感じに動きます。

その代わりメモリをがっばああああととるみたい。

Androidのばあい

インタプリタなのでわりと遅めかと思いきやそうでもない

がんばれてる印象

書き分けめんどくさくてあんまり使ってない…

Page 19: Titanium mobileで遊んでみた

困ったところ iOS向けのビルドがMacでしかできない

デバッグするのにお金払わないといけない

UIに互換性がわりとなくて結局書き分け

ところどころ挙動がおかしいことがしばしば

Page 20: Titanium mobileで遊んでみた

Demo アプリつくったよ!

Page 21: Titanium mobileで遊んでみた

まとめ JavaScriptで開発できるのはとても便利です

特にObjective-CとJavaやらなくていいのはうれしい

実行速度はそれなり。がんばっても勝てない面はある。

開発はTitanium Studioがリリースされてだいぶ楽に。

UI設計をぽとぺたでできるようになるともっと便利になりそう。