Genius Framework 1.2.0 をリリースしました。
いつの間にか branches が出来ていたので、
今回 trunk と tags を作って、既存のファイルは全て trunk に移しました。
今後のロードマップとしては、
7月22日に行われる Spark project 勉強会 #01 を目処に
Version 1.5.0 をリリースし、これを安定版として、
tags にスナップショットを置く予定です。
それまでは、trunk の方が変わりやすい状況が続くと思いますので、
ご注意下さい。
Version 1.0.0 からの主な変更点をまとめておきます。
1. コントローラ層に Thread ライブラリ を採用
それまでは Cairngorm ライクな、コントローラ + イベント + コマンド + デリゲート + サービス
という形で構成されていたコントローラ層とサービス層のコードを Thread ライブラリ を用いることで
簡単に書けるようになりました。
互換性のため、古い書き方も残してありますが、
今回、サンプルは全て Thread を用いたスタイルで書き直してあります。
Thread ライブラリの詳しい使い方などはこちら↓
http://www.libspark.org/htdocs/as3/thread-files/document/
2. ApplicationManager のプロパティの変更
ページ関係のプロパティは全て廃止し、page は state プロパティの子供として
表現するように変更しました。代わりに、defaultState プロパティを追加し、
defaultState のデフォルトの値を { page: 'Intro' } としています。
baseURL や api は一つになることばかりではないため、
別途 Config クラスを作って、そこで管理する形にします。
以下のプロパティを廃止
baseURL
api
defaultPage
currentPage
pages
以下のプロパティを追加
defaultState
3. Model のメソッドの変更
getItemById メソッドを廃止し、代わりに getItem メソッドを追加しました。
getItem メソッドは、オプションの引数を与えない限り、getItemById メソッドと
同じ動きをします。さらに、第二引数に任意のキーを与えることで、
「id」以外のキーでアイテムを取得することが出来るようになりました。
第三引数は、名前空間を持った XML を扱うためのオプションです。
また、merge メソッドのインターフェイスとアルゴリズムを変更しました。
getItem メソッドと同じように、オプション引数を加えたことで、
「id」以外のキーをプライマリキーとしたデータをマージすることが出来るように
なりました。
サンプルの、AmazonLoadThread クラスでこの新しい merge メソッドを
使って名前空間付き、かつ「ASIN」というキーをプライマリキーにした XML
を扱っていますので、参考にして下さい。
http://tinyurl.com/6f859n
4. WindowBase の追加
AIR 用のクラスとして、mx.core.Window クラスを継承した、
WindowBase クラスを追加しました。
WindowBase の initializeView メソッドは作成時に呼ばれます。
updateView メソッドは作成時に加え、WINDOW_ACTIVATE イベント発生時にも
呼ばれるようになっています。