<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ExtJSで楽しくRIA業務アプリ開発</title>
	<atom:link href="http://extjs.blog.sus4.co.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://extjs.blog.sus4.co.jp</link>
	<description>株式会社sus4 開発チーム</description>
	<lastBuildDate>Wed, 01 Jun 2011 09:32:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sencha Touch + PhoneGapでAndroid2.1でのフォームがずれる/残るバグの対処法</title>
		<link>http://extjs.blog.sus4.co.jp/2011/06/01/sencha-touch-android21-form-behavior/</link>
		<comments>http://extjs.blog.sus4.co.jp/2011/06/01/sencha-touch-android21-form-behavior/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 09:31:27 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=800</guid>
		<description><![CDATA[Sencha TouchとPhone Gapを使って、ハイブリッドアプリを作っているときに、
Android2.1,2.1updateでフォームがおかしくなる現象に遭遇しました。

OS:
Android 2.1
JS:
Sencha Touch 1.1

現象には以下のようないくつかの種類があります。
画面遷移後もフォームが画面の上に残る
フォーカスしたあとにスクロールするとフォームがずれる
これらの根本的な原因はAndroidがフィールドの入力の際にinputフィールドとは別に入力フィールドが画面の上に表示して入力を実装していることのようです。]]></description>
			<content:encoded><![CDATA[<p>Sencha TouchとPhone Gapを使って、ハイブリッドアプリを作っているときに、<br />
Android2.1, 2.1updateでフォームがおかしくなる現象に遭遇しました。</p>
<p>OS:<br />
Android 2.1</p>
<p>JS:<br />
Sencha Touch 1.1</p>
<p>現象には以下のようないくつかの種類があります。</p>
<p>画面遷移後もフォームが画面の上に残る<br />
<div id="attachment_807" class="wp-caption aligncenter" style="width: 178px"><a href="http://extjs.blog.sus4.co.jp/files/2011/06/form3.png" title="フォームが残る" rel="lightbox[800]"><img src="http://extjs.blog.sus4.co.jp/files/2011/06/form3-168x300.png" alt="次の画面遷移してもフォームが残る" title="フォームが残る" width="168" height="300" class="size-medium wp-image-807" /></a><p class="wp-caption-text">次の画面遷移してもフォームが残る</p></div></p>
<p>フォーカスしたあとにスクロールするとフォームがずれる<br />
<div id="attachment_801" class="wp-caption aligncenter" style="width: 178px"><a href="http://extjs.blog.sus4.co.jp/files/2011/06/device2.png" title="スクロールでフォームがずれる" rel="lightbox[800]"><img src="http://extjs.blog.sus4.co.jp/files/2011/06/device2-168x300.png" alt="スクロールでフォームがずれる" title="スクロールでフォームがずれる" width="168" height="300" class="size-medium wp-image-801" /></a><p class="wp-caption-text">スクロールでフォームがずれる</p></div></p>
<p>これらの根本的な原因はAndroidがフィールドの入力の際にinputフィールドとは別に入力フィールドが画面の上に表示して入力を実装していることのようです。<br />
Android端末では、WebView上のテキストフィールドやパスワードフィールドは、ネイティブ側で上書きされているタメです。<br />
Android 2.1系ではこのWebTextViewが良くない動きをしているようです。</p>
<p><span id="more-800"></span></p>
<p>そのため、テキストフィールドやパスワードフィールドが残ってしまう等現象が発生します。<br />
これはPhoneGapを使っていなくてもブラウザであっても同じ不具合が発生します。<br />
Sencha Touch の Kitchen Sink Demoでも再現します。<br />
　→　<a href="http://dev.sencha.com/deploy/touch/examples/kitchensink/">http://dev.sencha.com/deploy/touch/examples/kitchensink/</a></p>
<p>これれSench のForumにも上がっているようですが、OPENのままなです。<br />
　→　<a href="http://www.sencha.com/forum/showthread.php?118678-OPEN-660-Android-Password-Field-superfocus-persistance&#038;p=579440&#038;viewfull=1&#038;langid=14">http://www.sencha.com/forum/showthread.php?118678-OPEN-660-Android-Password-Field-superfocus-persistance&#038;p=579440&#038;viewfull=1&#038;langid=14</a></p>
<p>PhoneGap単体でも起こるらしいです。<br />
　→　<a href="http://stackoverflow.com/questions/5681013/input-has-different-style-on-focus">http://stackoverflow.com/questions/5681013/input-has-different-style-on-focus</a></p>
<p>この問題を回避するにはJavaScript単体で回避することは不可能で、Androidのネイティブコードから処理を行う必要があります。</p>
<p>ちなみに、上書きを行っているクラスは、WebTextViewクラスで行われています。<br />
　→　<a href="http://www.androidjavadoc.com/2.3/android/webkit/WebTextView.html">http://www.androidjavadoc.com/2.3/android/webkit/WebTextView.html</a></p>
<p>また、上書きを行った際は、WebView のChildView として実行されるので、<br />
WebViewクラスのremoveAllViewsInLayoutメソッドを使用して、<br />
ChildViewをクリアすることで、本現象を解消することができます。</p>
<p>PanelがActiveになったタイミングや、スクロール開始時、フォーカスがあたったタイミング、フォーカスが外れたタイミングで、<br />
以下のJavaScript コードを実行することで、ChildViewをクリアすることが可能です。</p>
<pre class="brush: js; ">

//PhoneGapを利用する
//ネイティブ側でこのメソッドを実装しておき、Phonegapを経由してコールする。
mywebview.removeAllViewsInLayout();
</pre>
<p>以下は、サンプルのJavaコードです。</p>
<pre class="brush: java; ">

=== MAIN CLASS ===
public class App extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.init();

        final MyWebView myWebView = new MyWebView(appView, this);
        appView.addJavascriptInterface(myWebView, &quot;mywebview&quot;);

        super.loadUrl(&quot;file:///android_asset/www/index.html&quot;);
    }
}
=== MAIN CLASS ===

=== MyWebView CLASS ===
public class MyWebView extends Activity {
    public WebView webView;
    public DroidGap droidGap;

    public MyWebView(WebView webView, DroidGap droidGap) {
        this.webView = webView;
        this.droidGap = droidGap;
    }

    /**
     * Remove All ChildView on WebView
     *
     */
    public synchronized void removeAllViewsInLayout() {
        try {
            Runnable runnable = new Runnable() {
                public void run() {
                    webView.removeAllViewsInLayout();
                };
            };
            droidGap.runOnUiThread(runnable);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
=== MyWebView CLASS ===
</pre>
<p>上のようにJava側でメソッド（webView.removeAllViewsInLayoutメソッド）を作成して、JavaScriptからはPhoneGap経由でネイティブのメソッドをコールすることで、ChildViewをクリアして、HTMLの上に表示される別の入力フィールドを取り除きます。<br />
残念ながら必ずネイティブのコードを利用しないといけないので、JSだけで解決できませんがPhoneGap等を使いネイティブにラップしてる場合はこのやり方が使えそうです。</p>
<p>本当は、なんとかJSだけで解決したいですね</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2011%2F06%2F01%2Fsencha-touch-android21-form-behavior%2F&amp;linkname=Sencha%20Touch%20%2B%20PhoneGap%E3%81%A7Android2.1%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%8C%E3%81%9A%E3%82%8C%E3%82%8B%2F%E6%AE%8B%E3%82%8B%E3%83%90%E3%82%B0%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2011/06/01/sencha-touch-android21-form-behavior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>0.95のハマリどころ</title>
		<link>http://extjs.blog.sus4.co.jp/2010/09/19/0-95%e3%81%ae%e3%83%8f%e3%83%9e%e3%83%aa%e3%81%a9%e3%81%93%e3%82%8d/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/09/19/0-95%e3%81%ae%e3%83%8f%e3%83%9e%e3%83%aa%e3%81%a9%e3%81%93%e3%82%8d/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 09:56:33 +0000</pubDate>
		<dc:creator>野村 亮之</dc:creator>
				<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=796</guid>
		<description><![CDATA[0.93から０.９５にアップデートした際に、動かなかったところをメモ。]]></description>
			<content:encoded><![CDATA[<p>0.93から０.９５にアップデートした際に、動かなかったところをメモ。</p>
<ul>
<li>itemsに直接オブジェクトを書くと、レンダーしてくれない（泣。0.93までしてくれていて便利だったのに。１つのComponentを仕込むだけでも、配列で書きましょう。</li>
<li>Ext.platform消滅。Ext.is.xxxで判断するように、サンプルの方は書き直されていました。</li>
<li>NestedListがStoreを使うようになったみたい（これは聞いただけなので、自分自身ではまったところではない）。</li>
</ul>
<p>itemsのところだけが、見つけるのが大変でしたが、あとはエラーを吐いてくれるので、Touch本体のソースを見ながら修正しました。<br />
いやー、まだまだ仕様変わりそうだなぁ。</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F09%2F19%2F0-95%25e3%2581%25ae%25e3%2583%258f%25e3%2583%259e%25e3%2583%25aa%25e3%2581%25a9%25e3%2581%2593%25e3%2582%258d%2F&amp;linkname=0.95%E3%81%AE%E3%83%8F%E3%83%9E%E3%83%AA%E3%81%A9%E3%81%93%E3%82%8D"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/09/19/0-95%e3%81%ae%e3%83%8f%e3%83%9e%e3%83%aa%e3%81%a9%e3%81%93%e3%82%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext.Carouselのインジケーター設定 &#124; Sencha Touch Tips</title>
		<link>http://extjs.blog.sus4.co.jp/2010/09/01/sencha-touch-tips-carousel-indicato/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/09/01/sencha-touch-tips-carousel-indicato/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 02:15:15 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[ExtJSチュートリアルｓｕｓ４版]]></category>
		<category><![CDATA[ExtJS勉強会＠名古屋資料]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=786</guid>
		<description><![CDATA[Sencha Touchにはいかにもタッチスクリーン向けなパネルとして、Ext.Carouselがあります。今回はこのExt.Carouselのインジケーターについてのちょっとしたサンプルを紹介します。
インジケーターについての記述はほとんどAPIリファレンスに載っていないので、ソースコードを見ないとわかりません。]]></description>
			<content:encoded><![CDATA[<p>Sencha Touchにはいかにもタッチスクリーン向けなパネルとして、Ext.Carouselがあります。<br />
このパネルはカードレイアウトのパネルの一種で複数のカードを左右（または上下）に一列にならべて、<br />
スワイプジェスチャーによって切り替えることができます。</p>
<p>各カードの下にはインジケーターとして、○がアイテムの数だけ並んで現在のアイテムの位置は●になります。<br />
今回はこのインジケーターの表示/非表示を簡単に切り替えるサンプルです。<br />
インジケーターについての記述はほとんどAPIリファレンスに載っていないので、ソースコードを見ないとわかりません。</p>
<p><a href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Carousel">Ext.Carousel &#8211; Sencha Touch API Documentation<br />
http://dev.sencha.com/deploy/touch/docs/?class=Ext.Carousel</a></p>
<p><strong>・サンプルコード</strong><br />
<script type="text/javascript" src="http://jsdo.it/blogparts/gDkH/js"></script>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://jsdo.it/satake.sus4/gDkH" title="Show/Hide Carousel Indicator">Show/Hide Carousel Indicator &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p>インジケーターの初期設定はExt.Carouselのindicatorコンフィグで行えます。</p>
<blockquote><p>
indicator : Boolean<br />
Provides an indicator while toggling between child items to let the user know where they are in the card stack.
</p></blockquote>
<p>APIリファレンスによると受け付けるのはBooleanとのことですが、ソースコードを見ると以下のようになっています。<br />
インジケーターについての記述はこれくらいで、他の情報がありません。なのでソースコードを見ます。</p>
<pre class="brush: js; ">

//Ext.Carouselクラス

    initComponent: function() {
       ・
       ・
       ・
        if (this.indicator) {
            var cfg = Ext.isObject(this.indicator) ? this.indicator : {};
            this.indicator = new Ext.Carousel.Indicator(Ext.apply({}, cfg, {
                direction: this.direction,
                carousel: this,
                ui: this.ui
            }));
        }

        Ext.Carousel.superclass.initComponent.call(this);
    },
   ・
   ・
   ・
</pre>
<p>indicatorコンフィグにオブジェクトが渡された場合、Ext.Carousel.Indicatorクラスのコンフィグオプションとしてバイパスするようになっています。<br />
またCarouselが生成されると、このインスタンスのindicatorにはExt.Caorousel.Indicatorオブジェクトが設定されます。</p>
<p>つまり</p>
<ul>
<li>Ext.CarouselのindicatorコンフィグにはExt.Carousel.Indicatorクラスのコンフィグが渡せる。</li>
<li>Ext.Carouselのindicatorコンフィグにtrueを渡すとデフォルトのExt.Carousel.Indicator、falseだと何も生成しない。</li>
<li>Ext.CarouselオブジェクトのindicatorプロパティによってExt.Carousel.Indicatorオブジェクトが参照できる。</li>
</ul>
<p>Ext.Carousel.IndicatorクラスはExt.Componentのサブクラスなので、Ext.Componentで設定できるコンフィグは受け付けることができます。サンプルコードではインジケーターの初期値にhiddenとshowAnimationを設定しています。</p>
<pre class="brush: js; ">

indicator:{
  hidden:true,
  showAnimation:{
    type:&#039;fade&#039;
  }
}
</pre>
<p>サンプルコードではさらにツールバーの稲妻ボタンで、インジケーターの表示/非表示を切り替えています。</p>
<pre class="brush: js; ">

if (carousel.indicator.isVisible()){
  carousel.indicator.show();
}else{
  carousel.indicator.hide();
}
</pre>
<p>ここではコンフィグで設定した、showAnimationで設定したアニメーションで表示が切り替えられます。ただし現状では非表示するときのアニメーションしか効いてないようです。<br />
インジケーターもコンポーネントとして扱えるので、もっと複雑なことできそうです。</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F09%2F01%2Fsencha-touch-tips-carousel-indicato%2F&amp;linkname=Ext.Carousel%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%B1%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%AD%E5%AE%9A%20%7C%20Sencha%20Touch%20Tips"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/09/01/sencha-touch-tips-carousel-indicato/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext JS/Sencha Touch入門40　Ajaxリクエスト処理</title>
		<link>http://extjs.blog.sus4.co.jp/2010/08/05/ext-tutorial40/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/08/05/ext-tutorial40/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 02:06:27 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[ExtJSチュートリアルｓｕｓ４版]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Ext.Ajax]]></category>
		<category><![CDATA[Ext.Ajax.request]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[Toolbar]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[チュートリアル]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=765</guid>
		<description><![CDATA[今回はExt JS,Sencha Touchのどちらでも非常によく使うAaxの処理を紹介します。
サンプルコードはSencha Touchですが、Ajaxリクエストの処理はExt JSでもほぼ同じです。]]></description>
			<content:encoded><![CDATA[<p>今回はExt JS,Sencha Touchのどちらでも非常によく使うAjaxの処理を紹介します。</p>
<p>サンプルコードはSencha Touchですが、Ajaxリクエストの処理はExt JSでもほぼ同じです。<br />
<div id="attachment_774" class="wp-caption aligncenter" style="width: 208px"><a href="http://extjs.blog.sus4.co.jp/files/2010/08/picture-8.png" title="Ajax サンプル" rel="lightbox[765]"><img src="http://extjs.blog.sus4.co.jp/files/2010/08/picture-8-198x300.png" alt="Ajax サンプル" title="Ajax サンプル" width="198" height="300" class="size-medium wp-image-774" /></a><p class="wp-caption-text">Ajax サンプル</p></div></p>
<p>まずAjaxでリクエストする先を用意する必要があります。<br />
今回はPHPで作成しました。<br />
<strong>・PHP</strong></p>
<pre class="brush: php; ">

&lt;?php
//サンプル

//3秒待つ
sleep(3);

//POST値の処理
$param = $_POST[&#039;id&#039;];
$res[&#039;id&#039;] = $param;

if ($param) {
    $res[&#039;success&#039;] = true;
}else {
    $res[&#039;success&#039;] = false;
}

//JSONで返す
header(&#039;Content-Type: application/json&#039;);
echo json_encode($res);
die();
?&gt;
</pre>
<p>3秒処理を遅らせています。<br />
レスポンスにはJSON形式でPOSTされた情報とサーバーサイドでの処理が正しく終わったらsuccessにtrueを返すようにしています。</p>
<p>HTMLファイルはSencha Touchの基本形のものでよいです。<br />
<strong>・HTML</strong></p>
<pre class="brush: html; ">

&lt;!DOCTYPE html&gt;
&lt;html manifest=&quot;index.manifest&quot;&gt;
&lt;head&gt;
    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
    &lt;title&gt;Ajax Sample&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;../../st/resources/css/ext-touch.css&quot; type=&quot;text/css&quot;&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;../../st/ext-touch-debug.js&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;index.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>今回のサンプルではパネルをひとつ作ってツールバー上に、Ajaxリクエストをキックするボタンを配置します。このボタンをタップするとAjax リクエストが実行されるようにします。</p>
<p>・Javascript</p>
<pre class="brush: js; ">

Ext.setup({
    onReady: function() {

        //リクエスト処理
        var ajax = function(callback) {
            //ローディングマスク
            panel.el.mask(
                false,
                &#039; &lt;div style=&quot;margin:50% auto; text-align:center;color:#EEE;&quot;&gt;&lt;img src=&quot;loader.gif&quot;/&gt; &lt;br /&gt;お待ちください...&lt;/div&gt;&#039;);

            //Ajax リクエスト
            Ext.Ajax.request({
                url:&#039;post.php&#039;,
                params:{
                    id:&#039;test&#039;
                },
                success:function(result,opt){
                    //マスクを外す
                    panel.el.unmask();
                    var res = Ext.decode(result.responseText);
                    if (res.success) {
                        window.alert(&#039;Success&#039;);
                        if (Ext.isFunction(callback)) {callback()};
                    }
                },
                failure:function(result,opt){
                    window.alert(&#039;リクエスト失敗。ネットワーク接続を確認してください。&#039;);
                }
            });
        };

        //パネルの生成
        var panel = new Ext.Panel({
            fullscreen: true,
            styleHtmlContent:true,
            dockedItems:[
                {
                    xtype:&#039;toolbar&#039;,
                    dock:&#039;top&#039;,
                    items:[
                        {
                            ui:&#039;mask&#039;,
                            iconCls:&#039;action&#039;,
                            handler:function(){
                                //コールバック関数
                                var callback = function(){
                                    panel.update(&#039;Success!&#039;);
                                };

                                //Ajax処理実行
                                ajax(callback);
                            }
                        }
                    ]
                }
            ],
            html:&#039;Ajax Request Sample&#039;
        });
    }
});
</pre>
<p>前回のHello, World　+ Tbarのサンプルによく似ていますが、今回はxtypeでツールバーを作成しています。<br />
xtypeについては<a target="_blank" href="http://extjs.blog.sus4.co.jp/2009/11/11/extjs-tutorial5/">コチラ</a></p>
<p>ボタンのコンフィグオプションで<br />
ui:&#8217;mask&#8217;,<br />
iconCls:&#8217;action&#8217;<br />
が設定されています。iconClsではボタンに配置する画像をCSSで設定できますが、今回はSencha Touchに予め用意されているactionクラスをそのまま使います。<br />
Sencha Touchのパッケージ内のexamplesのiconsサンプルをみるとどんなアイコンがあるのかが分かります。</p>
<p><strong>Ajax リクエスト処理</strong><br />
Ext JSおよびSencha TouchではExt.Ajaxクラスを使用してAjax処理を行ないます。このクラスはシングルトンですので、Ajax処理を呼びたい箇所でExt.Ajaxのrequestメソッドを呼び出します。パラメーターはURLなので設定はオブジェクトで渡します。</p>
<p><strong>・Ext.Ajax.request</strong><br />
Ext.Ajax.requestの引数に渡しているもの</p>
<ul>
<li>url:(String)リクエスト先のURL</li>
<li>params:(Object) パラメータ</li>
<li>success:(Function) Ajaxリクエスト成功時のコールバック関数</li>
<li>failure:(Function) Ajaxリクエスト失敗時のコールバック関数 </li>
</ul>
<p>最も単純なAjaxリクエストへ渡す設定は上の4つのものになります。<br />
paramsに設定されているパラメータをurlの先にPOSTして,正しいレスポンスが返ってきたときにsuccessに設定されているコールバック関数が実行されます。リクエスト自体が失敗した場合(404などが返ってきた場合。)にfailureに設定されているコールバックが実行されます。</p>
<p>サンプルではajaxという関数にAjaxの処理をまとめています。<br />
Ext.Ajax.request()の部分で実際にAjaxを実行します。</p>
<p>ajax関数の中では、リクエスト中に画面全体にマスクを掛ける処理を、行っています。</p>
<p><strong>・ローディングマスク</strong><br />
<div id="attachment_775" class="wp-caption aligncenter" style="width: 208px"><a href="http://extjs.blog.sus4.co.jp/files/2010/08/picture-10.png" title="ローディングマスク" rel="lightbox[765]"><img src="http://extjs.blog.sus4.co.jp/files/2010/08/picture-10-198x300.png" alt="ローディングマスクを表示" title="ローディングマスク" width="198" height="300" class="size-medium wp-image-775" /></a><p class="wp-caption-text">ローディングマスクを表示</p></div></p>
<pre class="brush: js; ">

panel.el.mask(
                false,
                &#039; &lt;div style=&quot;margin:50% auto; text-align:center;color:#EEE;&quot;&gt;&lt;img src=&quot;loader.gif&quot;/&gt; &lt;br /&gt;お待ちください...&lt;/div&gt;&#039;);
</pre>
<p>Ext.Elementのmaskメソッドでそのエレメントにマスクをかける処理を実行します。Ext JSとSencha Touchでは引数が違うので注意が必要です。<br />
Sencha Touchのマスク処理はスタイルがあんまり良くないので、独自で設定する必要があります。ローディング用の画像もないので適当なものを用意する必要があります。今回はこんなのGifアニメを作って設定しています。<br />
<div id="attachment_769" class="wp-caption aligncenter" style="width: 62px"><a href="http://extjs.blog.sus4.co.jp/files/2010/08/loader.gif" title="loader" rel="lightbox[765]"><img src="http://extjs.blog.sus4.co.jp/files/2010/08/loader.gif" alt="ローディング用Gifアニメ" title="loader" width="52" height="52" class="size-full wp-image-769" /></a><p class="wp-caption-text">ローディング用Gifアニメ</p></div></p>
<p>マスクを外すときは同様にExt.Elementのunmaskメソッドで行ないます。サンプルでは<br />
successのコールバックの中でpanel.elをunmaskを実行しています。</p>
<pre class="brush: js; ">

success:function(result,opt){
　//マスクを外す
　panel.el.unmask();
　　　　　・
　　　　　・
　　　　　・
}
</pre>
<p><strong>・コールバック処理</strong></p>
<pre class="brush: js; ">

success:function(result,opt){
  //マスクを外す
  panel.el.unmask();
  var res = Ext.decode(result.responseText);
  if (res.success) {
    window.alert(&#039;Success&#039;);
    if (Ext.isFunction(callback)) {callback()};
  }
},
failure:function(result,opt){
  window.alert(&#039;リクエスト失敗。ネットワーク接続を確認してください。&#039;);
}
</pre>
<p>リクエスト成功/失敗時はwindow.alertを使って結果を表示してます。<br />
また今回のサンプルではsuccess時にさらに呼び出し元でコールバックを設定して、パネル内の要素を&#8221;Success&#8221;に書き換えています。</p>
<p><strong>・レスポンスボディーの取り出し</strong><br />
successのコールバックの第一引数にレスポンスがオブジェクトとして渡されます。<br />
サンプルではresultという名前に設定しています。resultの中のresponseTextにレスポンスのボディーが格納されています。<br />
サンプルのPHPの場合ではJSONの文字列を返しています。レスポンスボディーはそのままではただのテキストです、そのため文字列からJSONに変換する必要があります。<br />
Sencha TouchでもExt JSと同じようにExt.util.JSONクラスを使ってJSONの変換を行います。<br />
今回は文字列からオブジェクトへの変換(JSON.decode)処理を使います。</p>
<pre class="brush: js; ">

success:function(result,opt){
  //文字列からオブジェクトに変換する
  var res = Ext.decode(result.responseText);

  //resはオブジェクトとして扱えるようになる。
  if (res.success) {
    window.alert(&#039;Success&#039;);
   　　・
　　　・
　　　・
  }
}
</pre>
<p>Ext.decodeはExt.util.JSON.decodeへのエイリアスです。Ext.decodeで呼び出した方が簡素なのでこちらを使っています。<br />
このExt.decodeを使ってレスポンスボディの文字列をJavascriptのオブジェクトとして扱えるように変換します。<br />
変換されたレスポンスボディはオブジェクトとして扱えるので、res.successのようにドットシンタックスで任意のプロパティ値を取得できるようになります。</p>
<p>以上、Ext.Ajax.requestの簡単な使い方です。詳しくはAPIリファレンスをご覧ください。<br />
<a target="_blank" href="http://www.sencha.com/deploy/touch/docs/?class=Ext.Ajax">Sencha Touch API Documentation<br />
http://www.sencha.com/deploy/touch/docs/?class=Ext.Ajax</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F08%2F05%2Fext-tutorial40%2F&amp;linkname=Ext%20JS%2FSencha%20Touch%E5%85%A5%E9%96%8040%E3%80%80Ajax%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/08/05/ext-tutorial40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7月のExt JS勉強会（東京）「Sencha Touchのはじめかた　」まとめ</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/29/tutorial-tokyo-20100728/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/29/tutorial-tokyo-20100728/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 11:52:18 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[dockedItems]]></category>
		<category><![CDATA[Ext.Panel]]></category>
		<category><![CDATA[Ext.Toolbar]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[HelloWorld]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=741</guid>
		<description><![CDATA[7月のExt JS勉強会（東京）のまとめ
]]></description>
			<content:encoded><![CDATA[<p></p>
<p>7月の勉強会(東京)のまとめになります。</p>
<hr />開発環境<br />
→　好きなやり方。とりあえずささっと試したいならjsdo.itがおすすめ。コードの共有もできる。デバイスに依存しない部分なら結構使える。</p>
<p>検証機(タッチパネルデバイス)<br />
→　iPhone 3GS以降 or iPad　が無難。Mac があるならiPhone　シュミレーターが一番安定している。iPhone 3G,Android端末は微妙。</p>
<p>APIリファレンス<br />
→　発表し忘れ項目。Sencha Touchを学ぶうえで公式のAPIリファレンスはとても重要。Ext JSほど充実していないが、サンプルコードも載っているのですごく参考になります。Sencha Touchのパッケージにも入っていますが、以下のURLで見れます。もちろん英語です。<br />
<a href="http://www.sencha.com/deploy/touch/docs/">http://www.sencha.com/deploy/touch/docs/</a></p>
<p>本家フォーラム<br />
→　Sencha はExt の頃からforumで活発な議論が交わされています。Sencha のメンバーからのリプライも早いので、バグっぽいものを見つけたらとりあえずforum内を見てみると以外とすでに質問があがっていたりします。Sencha Touchのライブラリ自体に怪しい部分がたくさんあるので、困ったら覗いてみると良いかもしれません。<br />
<a href="http://www.sencha.com/forum/">http://www.sencha.com/forum/</a></p>
<p><span id="more-741"></span></p>
<p><strong>Hello,World!</strong><br />
とにかく短い行数でSencha Touchアプリを書く。<br />
HTML + JSで30行くらいかけば、とりあえずSencha Touchで動くWebアプリになっている。<br />
XCodeのプロジェクトテンプレートのviewベースのテンプレートのようなものを目指しました。<br />
コードはjsdo.itにあがっている Hello, World!になります。<br />
勉強会当日のサンプルコード間違ってました。すいません。jsdo.it上も修正済みです。</p>
<p><script src="http://jsdo.it/blogparts/dPu2/js" type="text/javascript"></script></p>
<p><a title="Hello, World!" href="http://jsdo.it/satake.sus4/dPu2">Hello, World! &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p>多くのSench TouchのHTMLは以下のようにシンプルなものになります。<br />
 <strong>・HTML</strong></p>
<pre class="brush: html; ">

 &lt;html&gt;
 &lt;head&gt;
 &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
 &lt;title&gt;helloworld&lt;/title&gt;
 &lt;!-- 1. Sencha Touch CSSの読み込み--&gt;
 &lt;link rel=&quot;stylesheet&quot; href=&quot;st/resources/css/ext-touch.css&quot; type=&quot;text/css&quot;&gt;
 &lt;!-- 2. Sencha Touch ライブラリの読み込み--&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;st/ext-touch-debug.js&quot;&gt;&lt;/script&gt;
 &lt;!-- 3. Sencha Touch アプリケーションの読み込み--&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;main.js&quot;&gt;&lt;/script&gt;
 &lt;/head&gt;
 &lt;body&gt;&lt;/body&gt;
 &lt;/html&gt;
</pre>
<p>この中でやることは3つ。</p>
<ul>
<li>Sencha TouchのCSSを読み込む</li>
<li>Sencha TouchのJSを読み込む(3種類から選べるますが,ext-touch-debug.js)</li>
<li>自分のアプリケーションのJSファイル</li>
</ul>
<p>Sencha Touchの中には3種類のライブラリがあります。ext-touch.jsが本番用の圧縮されたライブラリです。<br />
 運用環境ではこのライブラリを使うとファイル読み込みファイルが小さくなります。<br />
 ただし、難読化されているのでライブラリ中のバグが見つけにくくなります。開発中は-debugのついた2つのライブラリから選択するが無難です。<br />
 ext-touch-debug.jsとext-touch-debug-w-comments.jsはファイル名の通りコメントがあるかないかの違いがあります。コメント付きは当然ファイルが大きくなるので、ext-touch-debug.jsを選んでおくとちょうどよいかもしれません。</p>
<p>ではmain.jsの中を見ていきます</p>
<p><strong>・javascript</strong></p>
<pre class="brush: js; ">

 Ext.setup({
 onReady: function() {
 var panel = new Ext.Panel({
 fullscreen: true,
 styleHtmlContent:true,
 html:&#039;Hello, Sencha Touch!!&#039;
 });
 }
 });
</pre>
<p>これだけです。なるべくよけいな物を排除しました。ポイントはExt.setup()とその引数のオブジェクトです。複雑なアプリを作る場合でも、このサンプルのような処理を必ず行います。</p>
<p>Ext.setup()でアプリの起動時の動作を定義します。引数にアプリの基本設定をオブジェクトの形式で渡します。(オブジェクトリテラル)</p>
<pre class="brush: js; ">

 Ext.setup(
 {
 //オブジェクトリテラル
 }
 );
</pre>
<p>Ext JSおよびSencha Touchではこのオブジェクトでコンポーネントの基本設定を記述する方法をよく取ります。</p>
<p>引数に渡されているオブジェクトはこんな感じです。</p>
<pre class="brush: js; ">

 {
 onReady: function() {
 //起動の処理
 }
 }
</pre>
<p> onReadyというプロパティに関数をセットしています。この関数がSencha Touchアプリの起動ポイントになります。複雑なアプリでも基本的にこのonReadyに設定されている部分から処理が始まっていきます。</p>
<p>さらに、その処理の中身をみると、以下のようになっています。</p>
<pre class="brush: js; ">

 var panel = new Ext.Panel({
 fullscreen: true,
 styleHtmlContent:true,
 html:&#039;Hello, Sencha Touch!!&#039;
 });
</pre>
<p> panelという変数で新しいExt.Panelを作成しています。このパネルの引数にもパネルの初期設定がオブジェクトが渡されています。<br />
 ここで今回のサンプルの基本となるパネルを作成します。Sencha Touchでは様々なパネルが用意さていますが、このサンプルでは最も基本的なExt.Panelクラスのパネルを作成しています。<br />
 Ext.Panelクラスにはコンフィグオプションと呼ばれるもので作成するパネルを定義することができます。new Ext.Panel()の引数に渡されてるオブジェクトの中身が今回作成するExt.Panelのコンフィグオプション設定になります。<br />
 コンフィグオプションはクラスごとにあらかじめ定義されている、<br />
 特別なオプションのことでAPIリファレンスを見るとどのクラスがどんなコンフィグオプションを持っているかが分かります。<br />
 <a href="http://extjs.blog.sus4.co.jp/files/2010/07/picture-5.png" title="Ext.PanelのAPIリファレンス" rel="lightbox[741]"><img class="aligncenter size-medium wp-image-746" title="Ext.PanelのAPIリファレンス" src="http://extjs.blog.sus4.co.jp/files/2010/07/picture-5-300x201.png" alt="Ext.PanelのAPIリファレンス" width="300" height="201" /></a><br />
 <a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.Panel">http://www.sencha.com/deploy/touch/docs/?class=Ext.Panel</a><br />
 今回のサンプルではfullscreen,styleHtmlContent,htmlの３つだけを使っています。</p>
<p>・fullscreen:boolean パネルのwidthとheightを可能であれば100%に設定する。初期値false。これをtrueにするとmonitorOrientationのコンフィグが強制的にtrueに設定されるそうです。</p>
<p>・styleHtmlContent:多分boolean(APIリファセンス間違ってる) 自動的にHTMLコンテンツ用のスタイルを適応します。初期値はfalse。これをtrueにするとSencha Touchで定義されているパネルないHTMLコンテンツ用のスタイルを設定します。パネルの内容がコンポーネント等でなくHTMLの時はtrueにしておくと良いようです。具体的には以下のCSSがパネルのHTML要素に設定されます。</p>
<blockquote><p>
-webkit-user-select: auto;<br />
 color: #333;<br />
 font-size: 0.8em;<br />
 line-height: 1.5;<br />
 padding: 1.5em;</p></blockquote>
<p>・html:パネル内のHTMLコンテンツを設定。パネルがレンダリングされた後にこのHTMLが描画されます。</p>
<p>以上がHello, Worldサンプルのためのすべてのコードになります。<br />
 jsdo.it上であればHTMLファイルの方を記述する必要がないので、javascriptを10行書いて、Sencha Touchのライブラリ(jsとcss)を追加すればおしまいです。</p>
<p><strong>・実行結果</strong><br />
 <a href="http://extjs.blog.sus4.co.jp/files/2010/07/picture-7.png" title="Hello, World" rel="lightbox[741]"><img class="aligncenter size-medium wp-image-748" title="Hello, World" src="http://extjs.blog.sus4.co.jp/files/2010/07/picture-7-207x300.png" alt="Hello, World" width="207" height="300" /></a></p>
<p><strong>Hello,Worldにツールバーを追加するサンプル<br />
 </strong><br />
 <script src="http://jsdo.it/blogparts/z1IF/js" type="text/javascript"></script></p>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a title="Hello, World + tbar" href="http://jsdo.it/satake.sus4/z1IF">Hello, World + tbar &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p><strong>・HTML</strong><br />
同じ</p>
<p><strong>・Javascript</strong></p>
<pre class="brush: js; ">

Ext.setup({
onReady: function() {
//dockするアイテム
var tbar = new Ext.Toolbar({
dock:&#039;top&#039;,　//dockする場所,
title:&#039;Hello, World&#039;,　//Toolbarの見出し
items:[
{
text:&#039;ボタン&#039;
}
]
});

//Dock先
var panel = new Ext.Panel({
fullscreen: true,
styleHtmlContent:true,
dockedItems:tbar,　//ここでtbarをdockedItemsに設定。
html:&#039;Hello, Sencha Touch!!&#039;
});
}
});
</pre>
<p>つぎにHello,Worldにツールバーを追加します。Ext JSではtbarというコンフィグオプションで設定していました。Sencha TouchではdockeItemsというコンフィグで設定します。<br />
APIリファレンスによると<br />
dockedItems:このパネルにドックされるコンポーネントまたはコンポーネントのまとまり(配列)<br />
となっています。<br />
コンポーネントであればなんでも設置できそうです。ここにExt.Toolbarオブジェクトを渡すことでiPhoneぽいUIのツールバーをパネルに追加できます。<br />
まずExt.Toolbarを作成します。</p>
<pre class="brush: js; ">

//dockするアイテム
var tbar = new Ext.Toolbar({
dock:&#039;top&#039;,　//dockする場所,
title:&#039;Hello, World&#039;,　//Toolbarの見出し
items:[
{
text:&#039;ボタン&#039;
}
]
});
</pre>
<p>Ext.Toolbarにも様々なコンフィグオプションがあります。詳しくはAPIリファレンスで確認してください。ここではdock,title,itemsの3つを設定します。<br />
<a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.Toolbar">http://www.sencha.com/deploy/touch/docs/?class=Ext.Toolbar</a></p>
<p>・dock：String(ドックさせる場所)。APIリファレンスに載っていませんが、親パネルのどの位置に自分を設置するかを指定します。選べる位置は4種類,top,bottom,left,rightです。<br />
・title：String このツールバーの見出しのテキストを設定します。<br />
・items：Object/Array　このツールバーの子の要素を設定します。</p>
<p>今回のサンプルではExt.Toolbarのitemsにnew したクラスでなくオブジェクトを渡しています。今のところはサンプルのように書けばボタンが作れると思っておいてよいです。そのうちブログでも取り上げるかもしれません。defaultsコンフィグとxtypeでボタンを生成しています。こちらの記事を参考にしていただけるよいかもしれません。<br />
<a href="http://extjs.blog.sus4.co.jp/2009/11/11/extjs-tutorial5/">http://extjs.blog.sus4.co.jp/2009/11/11/extjs-tutorial5/</a></p>
<p>これでExt.Toolbarがtbarという変数で作成できたので、これをパネルのdockedItemsに設定します。</p>
<pre class="brush: js; ">

//Dock先
var panel = new Ext.Panel({
fullscreen: true,
styleHtmlContent:true,
dockedItems:tbar,　//ここでtbarをdockedItemsに設定。
html:&#039;Hello, Sencha Touch!!&#039;
});
</pre>
<p><strong>・実行結果</strong><br />
<a href="http://extjs.blog.sus4.co.jp/files/2010/07/picture-6.png" title="Hello, Worldにツールバーを追加" rel="lightbox[741]"><img class="aligncenter size-medium wp-image-747" title="Hello, Worldにツールバーを追加" src="http://extjs.blog.sus4.co.jp/files/2010/07/picture-6-200x300.png" alt="Hello, Worldにツールバーを追加" width="200" height="300" /></a></p>
<p>ツールバーがあるだけで、iPhoneアプリっぽくなりました。<br />
Sencha Touchアプリの基本は今回のHello, Worldになります。これを改造していくことでより複雑なアプリが作れるようになります。Sencha Touch付属のexamplesの中を眺めてみるとよいかもしれません。</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F29%2Ftutorial-tokyo-20100728%2F&amp;linkname=7%E6%9C%88%E3%81%AEExt%20JS%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%88%E6%9D%B1%E4%BA%AC%EF%BC%89%E3%80%8CSencha%20Touch%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F%E3%80%80%E3%80%8D%E3%81%BE%E3%81%A8%E3%82%81"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/29/tutorial-tokyo-20100728/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-07-29</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/29/twitter-updates-for-2010-07-29/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/29/twitter-updates-for-2010-07-29/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 06:14:00 +0000</pubDate>
		<dc:creator>野村 亮之</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/2010/07/29/twitter-updates-for-2010-07-29/</guid>
		<description><![CDATA[
UStream中継10分ぐらい前から始まりました  (#extjapan live at http://ustre.am/gab3 ) #
配信レート若干下げました。皆さん調子よさそうでしょうか？  (#extjapan live at http://ustre.am/gab3 ) #
@shirotorabyakko http://extjs.blog.sus4.co.jp/　でいろいろ公開しています in reply to shirotorabyakko #
これはいいな　Yubizo Engine  (#extjapan live at http://ustre.am/gab3 ) #

Powered by Twitter Tools
]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>UStream中継10分ぐらい前から始まりました  (#extjapan live at <a href="http://ustre.am/gab3" rel="nofollow">http://ustre.am/gab3</a> ) <a href="http://twitter.com/extjs_nagoya/statuses/19730061457" class="aktt_tweet_time">#</a></li>
<li>配信レート若干下げました。皆さん調子よさそうでしょうか？  (#extjapan live at <a href="http://ustre.am/gab3" rel="nofollow">http://ustre.am/gab3</a> ) <a href="http://twitter.com/extjs_nagoya/statuses/19730868530" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/shirotorabyakko" class="aktt_username">shirotorabyakko</a> <a href="http://extjs.blog.sus4.co.jp/　でいろいろ公開しています" rel="nofollow">http://extjs.blog.sus4.co.jp/　でいろいろ公開しています</a> <a href="http://twitter.com/shirotorabyakko/statuses/19731703808" class="aktt_tweet_reply">in reply to shirotorabyakko</a> <a href="http://twitter.com/extjs_nagoya/statuses/19731786768" class="aktt_tweet_time">#</a></li>
<li>これはいいな　Yubizo Engine  (#extjapan live at <a href="http://ustre.am/gab3" rel="nofollow">http://ustre.am/gab3</a> ) <a href="http://twitter.com/extjs_nagoya/statuses/19732591907" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F29%2Ftwitter-updates-for-2010-07-29%2F&amp;linkname=Twitter%20Updates%20for%202010-07-29"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/29/twitter-updates-for-2010-07-29/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha Touch 入門:Sencha Touchのはじめかた（Ext JS &amp; Sencha Touch勉強会7月＠東京）のサンプルコード</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/27/sencha-studygroup-tokyo20100728/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/27/sencha-studygroup-tokyo20100728/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 12:27:19 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[dockedItems]]></category>
		<category><![CDATA[Ext.Carousel]]></category>
		<category><![CDATA[Ext.Toolbar]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[jsdo.it]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[勉強会]]></category>
		<category><![CDATA[勉強会まとめ]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=736</guid>
		<description><![CDATA[2010/7/25のExt JS &#038; Sencha Touch勉強会7月＠東京でのsus4　佐竹の担当箇所のSencha Touch入門篇で使うサンプルコードをjsdo.itで公開しました。]]></description>
			<content:encoded><![CDATA[<p>2010/7/25のExt JS &amp; Sencha Touch勉強会7月＠東京でのsus4　佐竹の担当箇所のSencha Touch入門篇で使うサンプルコードをjsdo.itで公開しました。<br />
明日の勉強会では、PCのブラウザでも動作するサンプルばかりですので、jsdo.it上でも動作を確認できます。<br />
また簡単なサンプルばかりですので、forkしていただいて実際に手を動かしてももらうとより理解が深まると思います。<br />
勉強会では持ち時間的に２,３つしか紹介できないと思います。<br />
勉強会のアジェンダはこちらです。</p>
<p><a href="http://extjs.blog.sus4.co.jp/2010/07/27/getting-started-width-sencha-touch-tokyo/">Sencha Touch 入門: Ext JS &amp; Sencha Touch勉強会7月＠東京(2010/7/25 )のアジェンダ</a></p>
<p><strong>Sencha Touchのはじめかたサンプルコード</strong></p>
<p><strong>Sencha Hello, World!</strong><br />
<script src="http://jsdo.it/blogparts/dPu2/js" type="text/javascript"></script> <a title="Hello, World!" href="http://jsdo.it/satake.sus4/dPu2">Hello, World! &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<hr />
<span id="more-736"></span><br />
<strong>Sencha Hello, World! + tbar</strong> <script src="http://jsdo.it/blogparts/z1IF/js" type="text/javascript"></script></p>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a title="Hello, World + tbar" href="http://jsdo.it/satake.sus4/z1IF">Hello, World + tbar &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<hr />
<p><strong>Sencha Touch Complex Docked Items</strong><br />
<script src="http://jsdo.it/blogparts/eh7b/js" type="text/javascript"></script> <a title="Sencha Touch Complex Docked Items" href="http://jsdo.it/satake.sus4/eh7b">Sencha Touch Complex Docked Items &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a> </p>
<hr />
<p><strong>Sencha Carousel (Edit)</strong><br />
<script src="http://jsdo.it/blogparts/czlu/js" type="text/javascript"></script></p>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a title="Sencha Carousel (Edit)" href="http://jsdo.it/satake.sus4/czlu">Sencha Carousel (Edit) &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<hr />
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F27%2Fsencha-studygroup-tokyo20100728%2F&amp;linkname=Sencha%20Touch%20%E5%85%A5%E9%96%80%3ASencha%20Touch%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F%EF%BC%88Ext%20JS%20%26%23038%3B%20Sencha%20Touch%E5%8B%89%E5%BC%B7%E4%BC%9A7%E6%9C%88%EF%BC%A0%E6%9D%B1%E4%BA%AC%EF%BC%89%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/27/sencha-studygroup-tokyo20100728/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha Touch 入門: Ext JS &amp; Sencha Touch勉強会7月＠東京(2010/7/25 )のアジェンダ</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/27/getting-started-width-sencha-touch-tokyo/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/27/getting-started-width-sencha-touch-tokyo/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 05:44:06 +0000</pubDate>
		<dc:creator>佐竹 裕行</dc:creator>
				<category><![CDATA[ExtJSチュートリアルｓｕｓ４版]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/?p=732</guid>
		<description><![CDATA[2010/7/25のExt JS &#038; Sencha Touch勉強会7月＠東京でのsus4　佐竹の担当箇所のSencha Touch入門篇アジェンダです。
]]></description>
			<content:encoded><![CDATA[<p></p>
<p>2010/7/25のExt JS &amp; Sencha Touch勉強会7月＠東京でのsus4　佐竹の担当箇所のSencha Touch入門篇アジェンダです。</p>
<p>時間と場所は下記の通りです。残念ながら既に定員に達しているようです。<br />
当日はUstreamでも配信も予定されているようですので、こちらでご覧ください。<br />
<a href="http://www.ustream.tv/channel/extjapan" target="_blank">http://www.ustream.tv/channel/extjapan</a><br />
以下 Ext Japanブログより転載</p>
<blockquote><p>日時：2010年7月28日（水）19:00～21:00（18:45開場）<br />
募集人数：45名<br />
場所：東京都港区東新橋1-9-1 東京汐留ビルディング9Fソフトバンク株式会社内（今回はいつもと会場が違いますので、ご注意ください。）<br />
参加費：無料<br />
アジェンダ：<br />
Senchaへのブランド変更について（直鳥）<br />
Sencha Touch入門（株式会社sus4 佐竹様）<br />
Sencha TouchとYubizoで作るネイティブアプリ（株式会社アイキューブドシステムズ 佐々木様）<br />
SpreadOfficeとSencha Touch（小堤）<br />
ホワイトクラウド シェアードHaaSのご紹介（ソフトバンクテレコム株式会社 加藤様）</p></blockquote>
<p>&#8212;&#8211;</p>
<p><strong>Sencha Touch入門：Sencha Touchのはじめかた　佐竹裕行 &#8211; 株式会社sus4</strong></p>
<p><strong>・Sencha TouchでつくるiPhone/iPadアプリ</strong></p>
<p><strong>・Sencha Touchの環境</strong><br />
エディタ等<br />
デバッグコンソール</p>
<p><strong>・Hello, World!</strong><br />
Sencha Touchのアプリを作る。<br />
HTML + JS合わせても30行くらいで<br />
APIリファレンス、デバッグ環境など</p>
<p><strong>・付属サンプルCarouselの解説</strong><br />
以前書いたブログの記事ベースにもう少し詳しく、Sencha Touchアプリの作り方を紹介します。<br />
<a href="http://extjs.blog.sus4.co.jp/2010/06/28/sencha-ex-carousel/" target="_blank">http://extjs.blog.sus4.co.jp/2010/06/28/sencha-ex-carousel/</a></p>
<p>&#8212;&#8211;</p>
<p>時間的にSencha Touchのさわり位しかできないと思いますが、<br />
実際に手を動かしてSencha Touchを作ることと、その際のTipsが紹介できれば良いかなと思います。<br />
APIリファレンスの読み方、フォーラム利用等。<br />
内容はできるだけ簡単にして、ExtJSを知らなくても分かる内容です。<br />
まさに入門という内容で、サンプルもできる限り簡単なものにしました。<br />
Hello,World!に至ってはHTML + JS合わせても30行程度コードを書くだけです。<br />
Sencha Touchの開発の雰囲気がつかめれば良いかなと思っています。<br />
またSencha Touchのパッケージに含まれるexamplesを自力で読めるようになるのが目標です。</p>
<p><strong>事前の準備しておくと良いもの：</strong><br />
・Sencha Touch ライブラリのダウンロード<br />
<a href="http://extjs.co.jp/products/touch/" target="_blank">http://extjs.co.jp/products/touch/</a></p>
<p>・iPhone、iPad、Androidでバイスの実機　もしくは　XCode付属iPhoneシュミレーター<br />
Android,iPhone 3G以下はあまりおすすめできません。<br />
XCodeはダウンロードに数GBかかるので事前にインストールしておくいていただくとスムーズです。</p>
<p>・ExtJS自体を知らない方はこのブログのチュートリアルの以前の記事を読んでおいていただけると良いかと思います。<br />
<a href="http://extjs.blog.sus4.co.jp/2009/10/29/勉強会ext-onreadyからはじめるextjsのまとめ/" target="_blank">勉強会ext-onreadyからはじめるextjsのまとめ</a><br />
<a href="http://extjs.blog.sus4.co.jp/tag/sencha-touch/">sus4 Ext JSブログ内Sencha Touchの記事</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F27%2Fgetting-started-width-sencha-touch-tokyo%2F&amp;linkname=Sencha%20Touch%20%E5%85%A5%E9%96%80%3A%20Ext%20JS%20%26%23038%3B%20Sencha%20Touch%E5%8B%89%E5%BC%B7%E4%BC%9A7%E6%9C%88%EF%BC%A0%E6%9D%B1%E4%BA%AC%282010%2F7%2F25%20%29%E3%81%AE%E3%82%A2%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%80"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/27/getting-started-width-sencha-touch-tokyo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-07-18</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/18/twitter-weekly-updates-for-2010-07-18/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/18/twitter-weekly-updates-for-2010-07-18/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 06:14:00 +0000</pubDate>
		<dc:creator>野村 亮之</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/2010/07/18/twitter-weekly-updates-for-2010-07-18/</guid>
		<description><![CDATA[
ちょっと宣伝です。うちの森中がやります。インタネット動画マーケティングセミナー from 名古屋 to 熊本。本日20時15分頃開始予定。USTのチャンネルはこちらです。→ http://www.ustream.tv/channel/dougana #

Powered by Twitter Tools
]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>ちょっと宣伝です。うちの森中がやります。インタネット動画マーケティングセミナー from 名古屋 to 熊本。本日20時15分頃開始予定。USTのチャンネルはこちらです。→ <a href="http://www.ustream.tv/channel/dougana" rel="nofollow">http://www.ustream.tv/channel/dougana</a> <a href="http://twitter.com/extjs_nagoya/statuses/18675089256" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F18%2Ftwitter-weekly-updates-for-2010-07-18%2F&amp;linkname=Twitter%20Weekly%20Updates%20for%202010-07-18"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/18/twitter-weekly-updates-for-2010-07-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-07-17</title>
		<link>http://extjs.blog.sus4.co.jp/2010/07/17/twitter-updates-for-2010-07-17/</link>
		<comments>http://extjs.blog.sus4.co.jp/2010/07/17/twitter-updates-for-2010-07-17/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 06:14:00 +0000</pubDate>
		<dc:creator>野村 亮之</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://extjs.blog.sus4.co.jp/2010/07/17/twitter-updates-for-2010-07-17/</guid>
		<description><![CDATA[
ちょっと宣伝です。うちの森中がやります。インタネット動画マーケティングセミナー from 名古屋 to 熊本。本日20時15分頃開始予定。USTのチャンネルはこちらです。→ http://www.ustream.tv/channel/dougana #

Powered by Twitter Tools
]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>ちょっと宣伝です。うちの森中がやります。インタネット動画マーケティングセミナー from 名古屋 to 熊本。本日20時15分頃開始予定。USTのチャンネルはこちらです。→ <a href="http://www.ustream.tv/channel/dougana" rel="nofollow">http://www.ustream.tv/channel/dougana</a> <a href="http://twitter.com/extjs_nagoya/statuses/18675089256" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fextjs.blog.sus4.co.jp%2F2010%2F07%2F17%2Ftwitter-updates-for-2010-07-17%2F&amp;linkname=Twitter%20Updates%20for%202010-07-17"><img src="http://extjs.blog.sus4.co.jp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://extjs.blog.sus4.co.jp/2010/07/17/twitter-updates-for-2010-07-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

