kaz_konno's blog: walkthisway

Titanium Mobileの事など。

グローバルオブジェクトの甘い誘惑 〜 Ti.App編

Titanium Mobileを使い始めた人のほとんどが、Kitchen Sinkに習ってアプリを作ってみるところからスタートすると思います。このKitchen Sinkのコードのあちこちをコピペしていくだけでも簡単なアプリが作れてしまいます。

すると、自ずとプログラムの書き方は、Windowを作成する毎にurl: 'hoge.js'のように数珠つなぎのようになっていきます。
実際、いろいろとやっているうちに、Window間、Tab間でのデータのやり取りが難しいと感じるはずです。

そこで手軽に使えるのがTi.Appオブジェクトです。

Ti.App.hoge = 'Global';

これでTi.App.hogeオブジェクトは、グローバル変数的に使えるため、どこでも参照できて便利です。

しかし、無駄にグローバルオブジェクトを保持しておくのは、ネームスペースを汚染するだけでなく、変数の衝突やメモリーリークに繋がる可能性が増すので最小限に留めておく方が良いでしょう。

Titanium Mobileは、その仕組み上、アプリケーションコード自体がネイティブにコード変換される訳ではなく、インタプリンタで実行されます。そのため、少しでも無駄を省いてパフォーマンス向上を図る事が大事です。