20
Ext JSアプリケーション 開発の基本 アプリケーション設計:初級編

第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

Embed Size (px)

Citation preview

Page 1: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

Ext JSアプリケーション開発の基本アプリケーション設計:初級編

Page 2: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

自己紹介

小堤 一弘(こつつみ かずひろ)

株式会社ゼノフィhttp://www.xenophy.com/

code:x

http://code.xenophy.com/

xFrameworkPX

http://px.xFramework.net/

xFrameworkEX

http://ex.xFramework.net/

Page 3: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーション設計

• Ext JSの使い方は、サンプルとかで学べるけど、アプリケーションの作り方はどこにあるの?

Page 4: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーション設計

どこにもありません。

Page 5: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

自分で考えるしかないアプリケーション設計

• サンプルのまねをしてアプリケーションを作っていったけど、実際につくりこんでいくとぐちゃぐちゃになる。

• ベストプラクティスがあれば助かるのになぁ。

Page 6: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションの形態を考える

• Ext.Viewportを使ったフルスクリーンアプリケーションを作る

• 既存のHTMLにコンポーネントを埋め込んで作る

Page 7: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションクラスを考える

• どのような形のアプリケーションでも1つのアプリケーションクラスを作って、そいつがすべてを管理する仕組みはどうだろうか?

Page 8: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションクラスで求められるもの

• アプリケーション内で起こるイベントを管理しなくてはならない。

• アプリケーションのブートストラップ(起動ポイント)にならなくてはならい。

• とか・・が考えられる。

Page 9: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションクラスの親クラス

• Ext.Viewportを使った場合は、Ext.Viewportクラスを親にしたほうがいい?

• いろんな形を考えて・・・Ext.util.Observableクラスがよさそう。

• やってみる・・。

Page 10: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションクラスの定義

Ext.ns( 'Ext.app' );

Ext.app.App = Ext.extend( Ext.util.Observable, {

constructor : function() {

// todo

}

Page 11: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションクラスの実行

Ext.onReady(function(){

new Ext.app.App();

});

Page 12: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

アプリケーションの初期化

• アプリケーションの初期化は、Ext.app.Appクラスのコンストラクタで行う。

Page 13: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

Ext.Viewportを作ってみる

Ext.app.App = Ext.extend( Ext.util.Observable, {

constructor : function() {

this.vp = new Ext.Viewport({

layout: 'fit',

items: [{

Page 14: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

自作コンポーネントを作る?

• さっきの例だとサンプルの書き方をonReadyからアプリケーションのコンストラクタに移動しただけじゃん。

• やっぱり、itemsのコンフィグオプションを指定してパネルを作っている部分をコンポーネント化して作っていきた

Page 15: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

自作コンポーネントを作る!

• 必要なので、作ろう。

• だけど、どうやって作るの?

Page 16: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

Ext.Panelを継承したクラスを作る

Ext.MyPanel = Ext.extend( Ext.Panel, {

initComponent : function() {

Ext.apply( this, {

title: 'MyPanel版:テストアプリケーション',

html: 'MyPanel版:テストアプリケーションパネルの内容'

});

Ext.MyPanel.superclass.initComponent.call( this );

}

});

Ext.reg( 'mypanel', Ext.MyPanel );

Page 17: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

Ext.Panelを継承したクラスを作るExt.ns( 'Ext.app' );

Ext.app.App = Ext.extend( Ext.util.Observable, {

constructor : function() {

this.vp = new Ext.Viewport({

layout: 'fit',

items: [{

xtype: 'mypanel'

}]

});

}

});

Page 18: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

まだまだ続く複雑なアプリケーション

• パネル1個じゃアプリじゃない。

• サンプルみたく複雑なレイアウトをしてみる。

• 複数のコンポーネント間でイベントを使って処理を行う。

Page 19: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

次回予告

• もうちょっと、アプリケーションらしい形を作って、イベント制御を行ってみよう!

Page 20: 第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料

ご静聴、ありがとうございましたm(_ _)m