スマートフォンでのwebアプリ開発で評判のよさげなSencha Touchをいじってみた。
わりとクセがあるけれども、結構面白いし色々とできそうなので、これも覚えていこうとおもう。
つい最近-2011/11/10-に開発者向けSencha Touch2.0.0が出ている。
Sencha Touch 2 Developer Preview
Sencha Touch1.1の場合は、日本語サイトからもダウンロードできる。
Sencha Touch 1.1
当初はドキュメントも日本語なので、日本語サイトからダウンロードできるSencha Touch1.1を試していた。
ところがサンプルのpull to refreshでおかしくなり、それはsafariの再起動できちんと見れるようになった。その調査過程でSencha英語サイトの方も調べていたら、日本語サイトにはないSencha Touch2.0.0というのがあり、ディスカッションフォーラムまで用意されていた。
Sencha Touch 2.x: Discussion
検索してみると日本語情報として重要そうなのは下記の2つくらいだった。
Sencha Touch 2とはどのようなものか
Sencha Touch 2 First Look
ありえるえりあさんの記事にあったコードがキレイに書ける点及び、こちらのサンプルで明らかに2.0の方が早いことから、
Sencha Touch 1.1 vs. 2.0 layout in slow motion
日本語ドキュメントが無いのがやっかいだけど、どうせなら2.0から覚えていこうと決めた。
2.0.0をダウンロードするとドキュメントやサンプルが入っている。
同じものは、こちらからでも確認できる。
Sencha Docs – Touch 2.0
そうしたサンプル類を見ると、通常のhtmlとcssで作るのではなくSencha Touchがjavascriptで組み上げていくものだと言うことが理解できるだろう。
まずは画面表示前にアラートでHello Worldから始める。
ココで迷ったのがサンプルコードにExt.application({から始まるものとExt.setup({から始まるものの二種類があったことだ。その二種類両方書いて試してみた。
Hello 01
Hello 01b
どちらでも動くようだ。ただし、Ext.application内でもExt.setupされるらしく、
Ext.setup({・・・・
Ext.application({・・・
と書いてみると、既にExt.applicationのところでExt.setupが呼ばれた後だとデバッグでメッセージが出てくる。
また、ドキュメントの検索ボックスにExt.setupと書いても何も出てこないが、Ext.applicationだと語句が出てくるところから、Ext.applicationなのだろうなと推察し、当面はこれで組んで行こうと決める。
問題が出てきたら、もしくは正しいのが何か判明したら、また報告するつもりだ。
Sencha Touchでの組み上げ方だが、UIは大体下記のように、Ext.application({内の
launch: function() {にコンポーネントを組み込んでいくことで可能となるようだ。
Ext.application({ name: 'hellow sencha', icon: 'resources/images/icon.png', glossOnIcon: false, phoneStartupScreen: 'resources/images/phone_startup.png', tabletStartupScreen: 'resources/images/tablet_startup.png', launch: function() { Ext.create('Ext.TabPanel', { fullscreen: true, tabBarPosition: 'bottom', items: [ { title: 'Hello Ext', iconCls: 'home', cls: 'home', html: [ '<h1>Hellow world</h1>', '<br>', 'Hellow SenchaTouch' ].join("") }, { title: 'Hello Ext', iconCls: 'star', cls: 'home2', html : 'Hello SenchaTouch.' } ] }); } });
このjsは
Hello 02
で使用している。
以下の物も、同じようにlaunch: function() {内にコンポーネントを組み込んでいくことで作り上げている。
Hello 03
Hello 03b
Hello 04
Hello 02は画面表示と切り替えテスト、Hello 03とHello 03bは切り替えアニメーションのテスト、Hello 04はオーバーレイのテストだ。
今後だが、イベントハンドラ周り、データロード周りを理解した後に、SenchaTouchで良く使われるらしいMVCでの作り方あたりに入るつもりだ。
その後にeasel.jsとの組みわせ実験などをできたらと考えている。