ABC2012Spring - Titanium
「Scaling Titanium Mobile」
キュニップ:おぐら じゅんや
■CommonJSを使おう
・Titanium Studioのテンプレートでも使われている
・ウィザードで選択して作れる
・複数人の開発
・CommonJSと異なりResourcesからの相対パスで書く
・パフォーマンスの問題がない
・メンテンナンス性が高い
・単体テストしやすい
■underscore.jsを使おう
・配列や関数に対する操作を簡単に
・関数プログラミング由来のものを多数持っている
・requireでよみこむ
・JSONをUI用のデータに整形・変換に向いてる
・人によって異なる配列の扱いを共通化させる
■CoffeeScript.jsを使おう
・Javascriptに比べて記述量減る
・バグ・ケアレスミス減る
・コールバック記述が簡潔に
・ループがシンプルになる
ex. for each when
・後置ifでプラットフォームゴトの場合分けをシンプルに
・クラスベースに設計しやすい
・文字列の変数を展開ができる
・Auto compile with Guard
■プラットフォームごとのコードを隠蔽する
・普通にやるとiOSとAndroidの場合分けが多数出てくる。。。
・分岐処理をラップして別関数にし、別モジュールにして、差異を隠蔽
■カスタムイベント
・UIだけとはかぎらない
・Application Level Event
->アプリケーション無いでグローバルに有効
->全てのコンテキスト、関数スコープ、CommonJSモジュールから参照できる
->利用にはTi.Appモジュールを使う。
->ハンドラの設定とイベントの発生
・エラー処理が分散する
->イベントを活用
・addEventListenerでfireEventするだけ
・注意
->アプリケーションレベルのイベントハンドラ内で生成したオブジェクトは、
ハンドラを明示的に削除するまでメモリに残る
->不要になったタイミングハンドラを削除
->removeEventListener
・アプリケーション全体に伝播させるイベントでなければ、ビューオブジェクトにaddEventListener