よし、Phonegap でラップされ、Android 2.2 で HTC Desire にコンパイルされた Sencha Touch フレームワークをテストしています。このアプリケーションの目的は、フレームワークとその機能に慣れることです。
MVC モデルを使用しています。アプリケーションは、プロキシを使用して json ファイルからデータ ストアに読み込まれるアイテムのリストで構成されます。これらの項目のいずれかをクリックすると、詳細ページが表示されます。
app.views.viewport.setActiveItem(app.views.placesList, options.animation);
ただし、移行前に何らかのラグがあり、白い画面がごく短時間表示されます。私はそれをより明確にするためにビデオを作りました:
http://www.youtube.com/watch?v=uW8hspMKqfc
以下のコードは、私のアプリケーションの構造と機能を示しています。
モデル
app.models.Place = Ext.regModel("app.models.Place", {
fields: [
{name: "name", type: "string"},
{name: "location", type: "string"}
]
});
app.stores.places = new Ext.data.Store({
model: "app.models.Place",
proxy: {
type: 'ajax',
url : 'js/app/data/products.json',
reader: {
type: 'json',
root: 'products'
}
}
});
意見
app.views.PlacesList = Ext.extend(Ext.Panel, {
fullscreen: true,
scroll: 'vertical',
dockedItems: [{
xtype: 'toolbar',
title: 'PlacesList'
}],
items: [{
xtype: 'list',
store: app.stores.places,
itemTpl: '{name}',
onItemDisclosure: function () {
Ext.dispatch({
controller: app.controllers.places,
action: 'show'
});
}
}],
initComponent: function() {
app.stores.places.load();
app.views.PlacesList.superclass.initComponent.apply(this, arguments);
}
});
コントローラ
app.controllers.places = new Ext.Controller({
show: function(options) {
app.views.viewport.setActiveItem(app.views.placeDetail, options.animation);
},
back: function(options) {
app.views.viewport.setActiveItem(app.views.placesList, options.animation);
}
});
経験したラグは、Sencha Touch に付随するものなのか、それともコードに起因するものなのか疑問に思っています。
前もって感謝します、
ジェラルド