Sencha Touch2[0]-バージョン選択や基本の書き方。

スマートフォンでの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 03Hello 03bは切り替えアニメーションのテスト、Hello 04はオーバーレイのテストだ。

今後だが、イベントハンドラ周り、データロード周りを理解した後に、SenchaTouchで良く使われるらしいMVCでの作り方あたりに入るつもりだ。
その後にeasel.jsとの組みわせ実験などをできたらと考えている。

Submit a Comment

Spam Protection by WP-SpamFree