Titanium Mobile SDKを参考書を見ながら一通り触ってみました。参考書は現在二冊出ていて、どっちを買うか非常に迷ったのですが、出版された時期は古いもののサンプルが豊富だったTitanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)の方を使いました。若干古い部分があるのですが、出版元のページに補完する資料があるのでなんとかなります。
ちなみに先日出たセミナーで監修の増井さんが、あと2冊出版準備中と仰ってました。Titaniumの需要が伸びているってことでしょうね。
ということで、Tabインターフェイスを作るサンプルと、Twitterの投稿をテーブルで表示するサンプルを実際に作って実機で動かしてみたのですが、ウワサ通りに非常に簡単ですね。もしiPhoneでTwitterの投稿を一覧表示するアプリを作れ、と言われたら、JSON解析のライブラリを入れて、HTTPの非同期処理を入れて、UITableViewのdelegateメソッドを作って・・と、やっぱりそれなりにかかります。delegateなどはObjective-Cに慣れていないとなかなかすぐには書けないですし。それに対してTitaniumは、シンプルなJavaScriptでサクサク作れてしまい、Objective-Cの様な独特の書き方などは一切出てきません。JavaScriptなので当然JSONとの相性も良く、各種APIを使ったネットワークアプリにも向いてそうです。ただし、例えばTableViewのデータソースが大きくなった時にパフォーマンスはどうなのかなど、Objective-Cで培われた様々な定石が適用できないため、細かなチューニングやカスタマイズはTitanium Mobile SDKが対応している範囲でしかできないという制限があります。
そしてAndroidアプリへの対応です。僕はAndroidのプログラムをネイティブでちゃんとやったことがないので、Javaとの比較はあまりできないのですが、恐らくTitaniumで書くJavaScriptよりはコードの量は多くなるはずです。しかしなんと言っても、そんなレベルの僕でさえAndroidで動くアプリを作れてしまう、というのが最大の利点でしょう。iPhoneとAndroidでそれぞれ書きだしたアプリにはUI上の違いが多少ありますが、大枠ではほぼ同じ動作をします。
本の後半は眼を通しただけなのですが、カメラやセンサーなどの入出力やSQLiteを使ったデータベースアプリまで、幅広くTitanium Mobile SDKがカバーしているようなので、高度なグラフィックを使うゲームや高いパフォーマンスを要求されるアプリ以外は、あらかたTitaniumでカバーできそうです。
もちろんXcodeとObjective-C(EclipseとJava)でガリガリ書いたほうが細かなカスタマイズもできるしいいアプリになるとは思うのですが、戦略上低コストかつAndroidまで対応しなければいけない場合には、Titaniumはぴったりです。アプリのプロトタイピングにも向いているかもしれません。
スポンサーリンク