Titanium Mobileで開発するiPhone/Androidアプリを読んで

北尾雅人著「Titanium Mobileで開発するiPhone/Androidアプリ」を週末に読んできて、今日、読み終わりました。写経しつつ読むことをやりましたが、週末の一日丸一日をかけて、約12日間で読み終わりました。

本を読んでの感想です。

  1. おきまりのHello Worldから始めますが、そのあと、簡単なTwitterクライアントを作って、スクリプトファイルの分割、共通ソースのオブジェクト化、国際化などが出てきます。
  2. 実践的なサンプルアプリは、ユーザ認証やツイート機能、カメラで撮影した画像付きのツイート機能があるTwitterクライアントTinyTweet、食べログAPI、GPS、データベースを使ったアプリTabeNaviで、大変勉強になりました。
  3. ただし、サポートサイトで公開されているサンプルソースが完成版で、途中経過のソースコードがなく、写経、デバッグに苦労しました。本のソースコードでは省略が多かったり、本の先を読んだり、サンプルソース全体を読んでコードを入力しないとアプリが動作しないことがありました。章、節ごとに途中のサンプルソースを公開してよと言いたいです。特に、実行時にレイアウトがおかしなることがあり、コード入力ミスなのかと疑い、時間を食いました。結局、これはTitanuim SDKのバージョンに依存した現象で、レイアウトでwidthを画面幅に設定するなどして解決しました。
  4. データベース操作では、生のsql文を実行していて、Androidに比べ、データベース機能はいまいちだなと思いました。
  5. iOSがターゲットの場合、xib2jsというアプリを使うと、XcodeのInterface Builderで作ったxibファイルからxib2jsでjsファイルを得られると本の付録には書かれていますが、Xcode 4.3ではxibファイルがないようで、それができませんでした。
  6. 付録のモジュールを使う内容は、AdMobの場合ですが、ti.admobフォルダーのコピー先がよく分からず、検証はできませんでした。ただし、AdMobなどの広告をアプリに導入する際は、モジュールが必要かと思いますので、ググる必要があります。
  7. Androidではバックグラウンドで処理を実行するServiceがありますが、それがTitanuim Mobileで利用できるかは、サンプルや簡易リファレンスで出てこなかったので、分かりません。
  8. この本は、API簡易リファレンスがついているので、開発の時は役立ちそうです。

この本ではなく、Titanium MobileでAndroidやiOSアプリを開発することに関しての感想です。

  1. JavaScriptで開発するのは、それが動的言語であるため、コーディングのとき、コードアシストが貧弱で、変数やメソッド、その引数のサジェストがあまりなかったり、全くなかったりして、コーディングミスすると、アプリ実行時でないと分からないです。
  2. アプリの動作がTitanium SDKのバージョンに依存するところがあります。
  3. GUIと処理との分離がされていないため、アプリ実行時でないと、アプリのレイアウトがわからないという欠点があります。
  4. Web APIを利用する場合、取得データがJSONのときは、JavaScriptとの相性がいいため、開発しやすさはあります。
  5. Titanuium Mobileで開発するとき、ターゲットがAndroidの場合、GUIの見かけが貧弱です。本の付録には、JSSを使ったレイアウトの記述がありますが、Androidの場合、それで改善されるかわかりません。

したがって、全体的に考えると、JavaやObjective-Cで開発するのに比べ、開発が楽とは言いがたいです。ただし、同じコードで、AndroidとiOS両方に対応したいときはTitanium Mobileで開発するのもいいかもしれません。