【tiTokyo】Appcelerator Deep Dive
■Speaker
Ricardo Alcocer
Appcelerator Technical Evangelist
■自己紹介
・プラットフォームエバンジェリスト
・2009年からTitaniumを使ってアプリ開発
・いい意味でのハッカーです
■2種類のTitanium
・Titanium Classic
→ 多くのファイルが必要
・MVCパターン
→ Appcelerator Alloy
・大規模アプリ開発に有効
・必要なファイル数、コードの大幅な減少
・AlloyはJSからXMLを利用して高度なインタラクティブ性を提供
■UI定義
・XMLで記述
・かなりHTMLライクなコードスタイル
・class、onclick属性など
・コントローラの記述
■Themes
・見た目を変える。CSSのよう
・Themesという名前のディレクトリを作るだけ
・その下にそれぞれのテーマごとのスタイルを保存
・それらのテーマ設定をconfig.jsonファイルにjson形式で定義
■Widget作成によるコードの再利用
・違うアプリに再利用できる。特にエンタープライズに重要
ex. Login機能
・感覚的にはミニアプリケーション
・アプリと同様のフォルダー構造
ex. バージョン
■Widgetの使い方
・config.jsonファイルのdependencies項目にWidgetを定義する
・xmlファイルに"Require"を定義して読み込む
・スニペット的に読み込む
→ xml中の定義がrequireの1行になる
→ イベントリスナーで登録するfunctionもWidgetのを使う
■アプリへのデータ追加
・Alloy → Backbone.jsの利用が可能
・Alloy Model
→ データベースを作成
→ SQL、プロパティを使うことも可能
■Modelファイル
・json形式
・xmlファイルのdataCollection属性等でTableViewにバインドすることが可能
■TableRowを作る二つのやり方
①Alloy.createController("xmlファイル名", jsonObj)
・xmlファイルにTableRowだけ定義
・tssファイルでデザインを別にすることもできる
→ デザインの変更をtssだけで行える
→ tssにプラットフォームごとに分けた定義もできる
②データバインディング
・dataCollectionでmodelを指定
・mustacheっぽいテンプレートを用意
・fetch({query: "select…"})もできる
・データを持ってくるときに毎回行う関数を指定することもできる
■Alloy More
・Sync Adapters
・Migrations
・Underscore.js対応
・CLI、ACS
■今日Alloy 1.0リリース!
・Ti 3.0以降で対応
・Android fastdev
・最新のadapter modelに対応した新たなSQL Adapter
・Ti のコンテンツアシストは3.1.0で正式対応
■Alloyの今後
・3.1でAlloyアプリのデバッグ機能
→ デバッグ行ずれ解消
・アプリの動的スタイリング
→ web上からテーマを取り込むことも今後可能になる
・全てのオブジェクトにデータバインディングを可能にしていきたい
■下記で公開しているよb
https://github.com/ricardoalcocer
@ricardoalcocer