リア充爆発日記

You don't even know what ria-ju really is.

TitaniumのAlloyについて調べたメモ2

前回の続き。

いまさらAlloyのコンセプト確認

公式がこういう順番なんです。理屈が先だとおもしろくないしね。

http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_Concepts

箇条書きに書いていくと、

  • AlloyばBackbone.jsベースのMVCフレームワークです。
    • Backbone.jsベースということはMVCといってもRailsとかのMVCとはちょっと違う云々があると思うけど、なにそれと思った人はググッておいておこう。
  • Controllerは通常、Viewと1対1の関係をとり、 Titanium SDK APIを抽象レイヤを挟まずに直接使う。Controllerは全Viewにアクセスできる。(のでカオスにしようと思えばいくらでもできる)
  • Underscore.jsもビルトインでサポートしてます
  • UIコンポーネントXMLスタイルシートで定義できるけど、Alloyに定義のないUIがあれば、Controllerで書くか、CommonJSモジュールを作ることによって対応できる (筆者は後者の意味はわかってない)
  • 画像とかのassetsはapp/assetsにプラットフォームごとにディレクトリ切ってそこに置け。
  • CoC。ネーミングルールとかは上記リンク参照。
  • Widgetsというロジック込みのUIコンポーネントが用意されているし定義できる
  • Builtinsというよく使われそうな処理をまとめたライブラリがある
  • コンパイルプロセス
    1. クリーンアップ
      • Resourceディレクトリ全消し
    2. Alloyフレームワークのコピー
    3. Build Configuration
      • alloy.jmkがあればロードされる
    4. Model-View-Controller と Widget Generation
      • Resources/alloy/modelsにModelが、Widgetが、Controllerがと言った具体に進む。
    5. Main Application
      • app.jsが作られ、Alloyモジュール少々とメインのControllerであるindex.jsの呼び出し処理が入る。alloy.jsに処理があれば、index.js呼び出しの前に、それらの処理が挿入される。alloy.jmkに 'compile:app.js' タスクが定義されていれば、Resourceディレクトリに書きだされる前にタスクが呼び出される。
    6. Code Optimization
      • UglifyJSを通して圧縮される。コンパイルのターゲットプラットフォームに関係ないファイルは削除される。最後にalloy.jmkに 'post:compile' タスクが定義されていれば呼び出される。

うむ!わかったようなわからないような!

抽象によるソフトウェア設計−Alloyではじめる形式手法−

抽象によるソフトウェア設計−Alloyではじめる形式手法−