SlideShare ist ein Scribd-Unternehmen logo
1 von 117
jQuery Mobile入門
白石俊平 @Shumpei
自己紹介
   株式会社オープンウェブ・テクノロジー代表
   シーエー・モバイル株式会社 Web先端技術
    フェロー
   HTML5とか勉強会主催、html5j.org管理人
   Google API Expert (HTML5)
   Microsoft Most Valuable Professional 2011 (IE)
この資料について
   テキストとして、オライリー刊「jQuery
    Mobile」を使用します。
   ハンズオンの部分は、オライリーのサイトか
    らサンプルをダウンロードして実践してくだ
    さい。
   とはいえ、書籍が手元になくても、この資料
    だけで学べることを目指しました。
jQuery Mobileとは
   スマートフォン向けのWebサイト開発フレー
    ムワーク
   現在のバージョンは1.0.1
     1.1が現在リリース候補に
jQuery Mobileの特徴
   ネイティブアプリに近い操作感
   テーマの切り替えが可能
   JavaScriptの知識がなくてもそこそこ使える
   jQueryに依存している
   マルチプラットフォーム
ネイティブアプリに近い操作感
   CSS/JavaScriptを駆使して、「ネイティブア
    プリに近い」操作感を実現する
     UIコンポーネント・・・フォーム要素やリストな
      ど、用意されているコンポーネントがすべてブラ
      ウザネイティブのUIに近づけてあり、操作しやす
      い
     ページ遷移がなめらかなアニメーションで実現さ
      れる(画面のリフレッシュが発生しない)
   jQuery Mobileのドキュメントがデモになって
    いる。
テーマの切り替えが可能
   jQuery Mobileは、CSSの切り替えのみで大幅
    にUIを変更することが可能。
     色合いを変えるだけならば「スウォッチ」の変更
     だけで可能
JavaScriptの知識がなくてもそこそ
こ使える
   マークアップに特別な属性(data-*属性)を加
    えていくだけで、簡単にスマートフォン対応
    サイトを作成できる。
jQueryに依存している
   jQueryに強く依存している。
   バージョン1.0.1では、jQuery1.6系に対応。
   バージョン1.1(現在はまだ正式リリース前)
    では、jQuery1.7系に対応。
   少し凝ったことをやるなら、jQueryの知識が
    あったほうが良い。
マルチプラットフォーム
   デスクトップを含め、22のプラットフォーム
    に対して同様のユーザ体験を提供できる
     Android 2.1-4.0
     iOS 3.2-5.0

   プログレッシブ・エンハンスメントのアプ
    ローチにより、古いブラウザに対しても最低
    限の情報提供は行える。
jQuery Mobileを使用したサイトは
増加中
   DODA、マイナビバイト、マイナビ派遣、
    じゃらんnetなど、続々と利用事例は増加中
   jQuery Mobileを使った国内スマホサイトまと
    め
   大手によって採用されていることからも、安
    心して使えるフレームワーク。
jQuery Mobileをはじめよう
jQuery Mobileをはじめよう
   インストール
   はじめてのjQuery Mobileページ
   2ページからなるWebサイト
準備作業
   XAMPPのインストール
   jQuery Mobileのサンプルをダウンロード
   サンプルをXAMPP/htdocs内に展開
jQuery Mobileのインストール
     JavaScriptとCSSを読み込むだけ
     CDNを利用する場合
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-
1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js">
</script>
<script
src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-
1.0.1.min.js">
</script>

     ファイルをダウンロードし、自分のサイトで
      配信することも可能
はじめてのjQuery Mobileページ

   ヘッダとフッタを持つjQueryページを作って
    みましょう。
はじめてのjQuery Mobileページ

     1-1.htmlをコピーして1-1a.htmlとし、body要
      素内に以下のコードを記述してください。




<section id="page1" data-role="page">
  <header data-role="header"><h1>jQuery Mobile</h1></header>
  <div class="content" data-role="content">
    <p>はじめてのページ!</p>
  </div>
  <footer data-role="footer"><h1>O'Reilly</h1></footer>
</section>

                                  結果は1-2.htmlと同じになります。
はじめてのjQuery Mobileページ

     ポイント
       data-role属性を使用して、要素に役割を与えてい
          る(page, header, content, footer)
         jQuery Mobileはdata属性を多用します



<section id="page1" data-role="page">
  <header data-role="header"><h1>jQuery Mobile</h1></header>
  <div class="content" data-role="content">
    <p>はじめてのページ!</p>
  </div>
  <footer data-role="footer"><h1>O'Reilly</h1></footer>
</section>
2ページからなるWebサイト
   ページ遷移のあるWebサイトを作成してみま
    しょう。
2ページからなるWebサイト
     1-1a.htmlのbody要素内に、2ページ目を追加
      しましょう。
<section id="page2" data-role="page">
  <header data-role="header"><h1>jQuery Mobile</h1></header>
  <div class="content" data-role="content">
    <p>2ページ目</p>
  </div>
  <footer data-role="footer"><h1>O'Reilly</h1></footer>
</section>

     page1に、page2へのリンクを追加しましょう。

<p><a href="#page2">2ページ目へGo!</a></p>


                                  結果は1-3.htmlと同じになります。
2ページからなるWebサイト
   ポイント
     1ページ=1ブロック

     ページ間のリンクは、スムーズなアニメーション
      で実現される
     すべてのページが一意なURLを持ち、戻るボタン
      で戻ることが出来る。
アプリケーションの構造とナビ
ゲーション
内部ページと外部ページ
   jQuery Mobileにおけるページとは、data-
    role="page"が付与されたブロック要素。
   すべてのページを1枚のHTMLに収めることが
    できるが、HTMLが巨大になる
   ページを外部のファイルに記述し、必要に応
    じてロードすることもできる。
     →外部ページ
内部ページの利用
   1-1a.htmlをコピーして、2-1a.htmlとしてくだ
    さい。(フォルダはchapter-2に置いてくださ
    い)
   ページを追加して3ページとし、
    「1P→2P→3P→1P」と遷移するようにリン
    クしてください。
     テキストのP.11を参照




                     結果は2-1.htmlと同じになります。
外部ページの利用
     今作成した2-1a.htmlの3ページ目に、以下のリ
      ンクを追加しましょう。
<p><a href="external.html">外部ページへGo!</a></p>




                             結果は2-2.htmlとほぼ同じになります。
外部ページの利用
   ポイント
     外部ページはAjaxで自動的にロードされる

     ロードされたページは元ページのDOMに組み込
    まれる
      ID属性の衝突が発生しないように注意!

     外部ページの中で読み込まれるのは最初のページ
    (data-role="page"が付与されたブロック)のみ。
    それ以外の部分は無視される。
ダイアログ
   ダイアログの指定方法
     ダイアログのページにdata-role="dialog"と指定す
      る
     リンクにdata-rel="dialog"と指定する
ダイアログ
   2-2a.html のページ2をダイアログにしてみま
    しょう。
ページ遷移のアニメーション
   ページ遷移のアニメーションは変更できる
     data-transition・・・アニメーションの種類を指
      定
     data-direction・・・"reverse"と指定すれば、アニ
      メーションが逆方向に
ページ遷移のアニメーション
   2-1a.htmlを題材に、様々なアニメーションを
    試してみましょう。
              data-transitionに指定可能な値
      fade        flip          pop
      slide       slidedown     slideup
ページの要素
ページの要素
   リストビュー
   ナビゲーションバー
   ヘッダー・フッター
   ボタン
   チェックボックスとラジオボタン
   フリップトグル
   選択メニュー
   スライダー
   レイアウトグリッド
リストビュー
   スマホで一般的な一覧UIを簡単に実現できる
     読み取り専用の一覧

     他のページにジャンプする一覧

     リストに区切りを入れる

     リストビューを入れ子で指定する

     リスト項目の分割

     カウントのバブル表示

     サムネイルとアイコン
読み取り専用のリストビュー
   data-role="listview"を指定する
   3-1.htmlを3-1a.htmlにコピーして、ブラウザ
    でアクセスしてみましょう。
読み取り専用のリストビュー
   ポイント
     ul/ol要素にdata-role="listview"を指定する
リストビューの項目から他のペー
  ジにジャンプする
     3-1a.htmlを修正して、li要素の内容をリンクに
      しましょう。
<ul data-role="listview">
  <li><a href="#">項目</a></li>
  …
</ul>
リストに区切りを入れる
     3-1a.htmlを修正して、リストに区切りを入れ
      ましょう。
     data-role="divider"を指定したli要素を追加しま
      す。
<ul data-role="listview">
  <li data-role="divider">区切り</li>
  <li><a href="#">項目</a></li>
  …
</ul>
リストビューを入れ子で指定する

   リストのli要素内に、更にul/ol要素を記述する
    と、入れ子構造の中をインタラクティブに移
    動できる
リストビューを入れ子で指定する

     3-1a.htmlを修正して、番号付きのリストを、
      番号なしのリストの入れ子にしましょう。
<ul data-role="listview">
  ...
  <li>
    <h3>番号付きの箇条書き</h3>
    <ol data-role="listview">
      <li><a href="#">項目</a></li>
      <li><a href="#">項目</a></li>
      <li><a href="#">項目</a></li>
    </ol>
  </li>
</ul>
リスト項目の分割
   リストのli要素内に、リンクを2つ以上並べる
    と、最後のリンクがボタンに変化する
   3-1a.htmlを修正して、li要素に2つ以上のa要素
    が含まれるようにしてみましょう。
カウントのバブル表示
   リストのli要素内に、ui-li-countというクラス
    を持つインライン要素を含めると、バブル表
    示される



   3-1a.htmlを修正して試してみましょう。
     <li>
       <a href="#">項目</a>
       <span class="ui-li-count">3</span>
     </li>
ナビゲーションバー
   リンクのグループをタブ、もしくはボタン表
    示することができる。
ナビゲーションバー
   1-2.htmlをコピーして3-9a.htmlを作成し、編
    集します。
   以下のコードをheader要素内に記述しましょ
    う。
       <nav data-role="navbar">
       <a href="#">1</a>
       <a href="#">二</a>
       <a href="#">さん</a>
       </nav>

   上記のリンクを、順序なしリスト(ul)で囲
    み、見た目の違いを確認しましょう。
ヘッダー・フッター
   data-roleにheader/footerと指定すれば、ヘッ
    ダとフッタを作れます。
   ヘッダとフッタは、以下のような表示方法を
    行えます。
     標準・・・フッタの位置は、コンテンツの高さに
      依存する
     固定・・・ヘッダ・フッタが常に画面端に固定さ
      れる。data-position="fixed"を指定する
     フルスクリーン・・・コンテンツがフルスクリー
      ン表示され、タップするとヘッダー・フッターが
      表示される。ページにdata-fullscreen="true"を指
      定する。
ヘッダー・フッター
   1-2.htmlをコピーして3-10a.htmlを作成し、編
    集します。
   固定モードを試しましょう。
     ヘッダ・フッタにdata-position="fixed"を指定しま
     す。
   フルスクリーンモードを試しましょう。
     固定モードの状態で、ページに対してdata-
     fullscreen="true"を指定します。
フォーム要素
   jQuery Mobileでは、様々なフォーム要素を自
    動的にモバイル用に最適化してくれる。
   フォーム要素のデモ
ボタン
   input要素/button要素によるボタンは、ユーザ
    が押しやすいサイズのUIへと勝手に変換され
    ます。
   data-role="button"とすることで、任意の要素
    をボタンに見せることができる。
   ボタンの幅をコンテンツに合わせるには、
    data-inline="true"の指定が必要
ボタン
     1-2.htmlをコピーして3-13a.htmlを作成し、編
      集します。
     以下のコードをコンテンツ領域に記述し、
      様々なボタンを試しましょう。




<a href="#" data-role="button">リンクベースのボタン</a>
<input type="submit" value="送信" data-inline="true">
<input type="reset" value="リセット" data-inline="true">


                                結果は3-13.htmlと同じになります。
ボタンのコントロールグループ
   data-role="controlgroup"を付与したブロック
    要素で、ボタンをグループ化することができ
    る。
   data-type="horizontal"を指定すると横向きに
    ボタンが並ぶ。
ボタン
   1-2.htmlをコピーして3-14a.htmlを作成し、編
    集します。
   以下のコードをコンテンツ領域に記述し、
    様々なボタンを試しましょう。


    <div data-role="controlgroup">
      <span data-role="button">リンクベースのボタン</span>
      <span data-role="button">リンクベースのボタン</span>
      <span data-role="button">リンクベースのボタン</span>
    </div>
ボタンのコントロールグループ
   3-13a.htmlを編集し、
(ボタンの)アイコン
   ボタンにdata-icon属性を指定すると、アイコン付
    きのボタンにできる。
                      data-icon属性で指定できる値
           alert     arrow-d   arrow-l   arrow-r   arrow-u
           back      check     delete    forward   gear
           grid      home      info      minus     plus
           refresh   search    star


   また、data-iconpos属性でアイコンの表示位置を
    変更できる。
       bottom/left/right/top/notext(アイコンのみ)
(ボタンの)アイコン
   1-2.htmlをコピーして3-15a.htmlを作成し、編
    集します。
   以下のコードをページ内に記述しましょう。
    <button data-icon="gear" data-iconpos="left">
      ボタン
    </button>


   アイコンや表示位置をいろいろ変更してみま
    しょう。
カスタムアイコン
   カスタムのアイコンを使用するには、data-
    icon属性に定義済み以外の値(例えばdata-
    icon="smile"を使用する。
   →すると、そのボタンには「ui-icon-smile」と
    いうクラスが付与される
カスタムアイコン
   3-15a.htmlを編集します。
   以下のコードをページ内に記述しましょう。
    <style>
      .ui-icon-smile {
        background-image: url(http://bit.ly/smileicon);
        background-size: 18px 18px;
      }
    </style>
    <button data-icon="smile" data-iconpos="left">
      ボタン
    </button>
ヘッダ上のボタン
   ヘッダに、ボタン化したリンクを配置するこ
    とができる。
     a要素を2つまで記述でき、左右に一つずつ配置
      される。
     ボタンを1つだけ、右側に配置したい場合は、ui-
      btn-rightというクラスを使用する
ヘッダ上のボタン
   1-3.htmlをコピーしてheaderButtons.htmlを作
    成し、編集します。
   以下のコードをヘッダに記述し、結果を確認
    します。
<a href="#"
  data-role="button"
  data-icon="gear"
  data-iconpos="notext"
  class="ui-btn-right">設定</a>
戻るボタンの自動挿入
   ページにdata-add-back-btn="true"と記述する
    と、ヘッダに戻るボタンが自動的に挿入され
    ます。

   headerButtons.htmlの2ページ目に戻るボタン
    を追加しましょう。
チェックボックスとラジオボタン

   特に何もしなくても、ユーザが押しやすいUI
    になります。
   3-16.htmlを表示し、ソースを確認しましょう。
フリップトグル
   select要素に、data-role="slider"を指定すると、
    オン/オフを切り替えられるスイッチを作成
    できます。
   3-17.htmlを表示し、ソースを確認しましょう。
フィールドのグループ化
   ラベルとフィールドのセットを表すためのブ
    ロックを作成できる
   data-role要素に"fieldcontain"を指定した
    div/fieldset要素でフォーム要素を囲む
    <div data-role="fieldcontain">
      <label for="username">ユーザ名:</label>
      <input type="text">
    </div>
選択メニュー
   select要素は、data-native-menu="false"を指
    定することで、jQuery Mobile独自の選択メ
    ニューを利用できる。
   3-20.htmlを表示し、ソースを確認しましょう。
スライダー
   rangeタイプのinput要素を用いることで、スラ
    イダーUIが表示されます。
   3-21.htmlを表示し、ソースを確認しましょう。
レイアウトグリッド
   グリッドレイアウトを行うためのCSSフレー
    ムワークが用意されています。
   ui-grid-[a-e]でグリッドのカラム数を指定しま
    す。ui-grid-aは2列です。
   グリッド内にui-block-[a-e]でセルを配置して
    いきます。ui-block-aは、行を折り返す効果を
    持ちます。
レイアウトグリッド
   1-2.htmlをコピーして3-22a.htmlを作成し、以
    下のコードを記述します。
    <style>
      *[class^='ui-block-'] p{
        border: 1px solid gray;
      }
    </style>
    <div class="ui-grid-a">
      <div class="ui-block-a"><p>1-1</p></div>
      <div class="ui-block-b"><p>1-2</p></div>
      <div class="ui-block-a"><p>2-1</p></div>
    </div>
テーマの切り替え
テーマとスウォッチ
   テーマ・・・インターフェース全般
   スウォッチ・・・テーマの色
   data-theme属性を用いて、スウォッチを切り
    替えられる。
     デフォルトテーマではa-eを選択できる

     初期状態ではc
テーマとスウォッチ
   3-1.html(リストビューのサンプル)をコピー
    して4-1a.htmlを作成し、様々なテーマを試し
    てみましょう。
     data-theme属性にa-eのいずれかを指定します。

     ページだけでなく、リストビューなどにも指定で
     きます。
スウォッチをカスタマイズする
   4-1a.htmlに、以下のスタイルを追加してくだ
    さい(jQuery MobileのCSSよりも後に記述し
    てください。
   リストビューのテーマをaに設定してください。
    <style>
    .ui-btn-up-a {
      background-image:-webkit-linear-gradient(red, #333);
    }
    </style>
スウォッチをカスタマイズする
   スウォッチを作成・編集できる
    「ThemeRoller」というWebアプリがある。
スウォッチをカスタマイズする
   ThemeRollerを使用して作成したテーマをダウ
    ンロードして読み込み、利用してみましょう。
                     左上のメニューから
                     テーマをダウンロー
                       ドできる
スウォッチをカスタマイズする
   jQuery Mobile Bootstrapという、Twitter
    Bootstrapを意識したテーマが利用可能
   こちらもダウンロードして使ってみましょう。
jQuery MobileのAPI
:jqmData()セレクタ
   jQuery Mobileはdata-属性を多用するため、
    jqmData()という特別なセレクタが用意されて
    いる。
    // すべてのページを取得する
    $(':jqmData(role="page")')

    // すべてのリストビューを取得する
    $(':jqmData(role="listview")')
UIウィジェットが持つメソッド
   各UIウィジェットは、jQuery UIと同様にメ
    ソッドを使って操作できる

リストビュー         listview()    スライダー    slider()
テキスト入力         textinput()   選択メニュー   selectmenu()
ボタン            button()

   更に、個々のウィジェットに対して以下のよ
    うなメソッドを使用できる。
     enable/disable/refresh
UIウィジェットが持つメソッド

   1-13.htmlをコピーしてformMethods.htmlを作
    成し、以下のコードを入力してください。
    <script>
    $(function() {
      var linkButton = $('a:jqmData(role="button")');
      var submitButton = $('input[type="submit"]');
      var resetButton = $('input[type="reset"]');
      linkButton.click(function() {
        resetButton.button("disable");
      });
      submitButton.click(function() {
        resetButton.button("refresh");
      });
    });
    </script>
$.mobile.changePage(to, options)

   ページ遷移を行う
     to・・・URL文字列、もしくはページをラップした
      jQueryオブジェクト
     options(省略可)(主なもののみ)
       changeHash:   URLのハッシュを変更するか(true)
       reloadPage: ページを強制的に再読み込みするか(false)
       showLoadMsg: ローディングメッセージを表示するか
        (true)
       role: ページのdata-role属性の値を指定
       transition: 遷移アニメーション
        ($.mobile.defaultPageTransition)
       reverse: 遷移を逆向きにするか(false)
$.mobile.changePage(to, options)

   1-3.htmlをコピーしてchangePage.htmlを作成
    し、2ページ目へのリンクを以下のボタンに差
    し替えてください。

    <button
      onclick="
        $.mobile.changePage(
          '#page2', {transition: 'flip'});">
    2ページ目へGo!
    </button>
$.mobile.showPageLoadingMsg()
$.mobile.hidePageLoadingMsg()
   jQuery Mobileの「読み込み中」ダイアログを
    表示あるいは非表示にする
タッチイベント
   タッチスクリーンに対するイベント。ブラウ
    ザごとの差異を抽象化している
     tap・・・タップされた

     taphold・・・1秒以上タップされたまま

     swipe・・・スワイプされた

     swipeleft・・・左にスワイプされた

     swiperight・・・右にスワイプされた
仮想マウスイベント
   PCのマウスイベントとタッチイベントを統一
    して扱える
     vmouseover

     vmousedown

     vmousemove

     vmouseup

     vclick

     vmousecancel
APIを利用したサンプル(1)

   5.2.1.1のサンプル(「スワイプイベントから
    ページ遷移を発生させる」)を書きなおした
    もの。
   1-3.htmlをコピーしてswipePages.htmlを作成
    し、次のページに示すスクリプトをhead要素
    内に挿入してください。
APIを利用したサンプル(1)
<script>
  $(function() {
  var pages = $(':jqmData(role="page")');
  pages.each(function() {
    $(this).bind('swipeleft', function() {
      var next = $(this).next();
      if (next.length === 0)
        next = $(pages[0]);
      $.mobile.changePage(next);
    });
    $(this).bind('swiperight', function() {
      var prev = $(this).prev();
      if (prev.length === 0)
        prev = $(pages[pages.length - 1]);
      $.mobile.changePage(prev, { reverse: true });
    });
  });
  });
</script>
外部ページの読み込みに伴うイベント

   pagebeforeload
   pageload
   pageloadfailed
ページ遷移に伴うイベント
   pagebeforehide
   pagebeforeshow
   pagehide
   pageshow
   pagebeforechange
   pagechange
   pagechangefailed
ページの生成・削除に伴うイベント

   pagebeforecreate・・・初期化直前
   pagecreate・・・DOM構築直後
   pageinit・・・jQMによる拡張完了後
   pageremove・・・ページ削除時のイベント。
    外部ページは、ユーザがそこを離れると削除
    される。
APIを利用したサンプル(2)

   ページに関するイベントをコンソールに表示
    します。
   2-2.htmlをコピーしてpageEvents.htmlを作成
    し、次のページに示すスクリプトをhead要素
    内に挿入してください。
APIを利用したサンプル(2)
<script>
$(function() {
  $(':jqmData(role="page")').live('pagebeforecreate',
function() {
    console.log('ページ' + this.id +
      'においてpagebeforecreateイベントが発生しました!');
    $(this).bind(
      'pagecreate pagebeforehide pagebeforeshow' +
      'pagehide pageshow pagebeforechange pagechange',
      function(e) {
        console.log('ページ' + this.id +
        'において' + e.type + 'イベントが発生しました!');
      });
  });
});
</script>
その他のイベント
   updatelayout・・・UIコンポーネントのレイア
    ウトが変化すると呼び出される(検索機能付
    き
   orientationchange・・・デバイスの方向が変
    化した際呼び出される
   アニメーションの終了
jQuery Mobileの設定
   主な設定項目(完全なリストはこちら)
     activeBtnClass: アクティブなボタンのクラス
     activePageClass: アクティブなページのクラス
     defaultPageTransition: デフォルトのページ遷移
      アニメーション
     defaultDialogTransition:デフォルトのダイアログ
      表示アニメーション
     loadingMessage: ローディング中の文字列
     ns: 名前空間。data属性に文字列が追加される。
      (例えば、ns='my'とすると、data-my-roleなどに
      なる。)
jQuery Mobileの設定
   jQuery Mobileが読み込まれるより先に、
    documentにmobileinitイベントのハンドラを指
    定し、その中で$.mobileオブジェクトに設定
    項目を指定します。
   次のページの例を見てください。
APIを利用したサンプル(1)

   1-3.htmlをコピーしてconfig.htmlを作成し、次
    のページに示すスクリプトをhead要素内に挿
    入してください。
    <script src="jquery.js"></script>
    <script>
    $(document).bind('mobileinit', function() {
      $.mobile.defaultPageTransition = 'flip';
    });
    </script>
    <script src="jquery.mobile.js"></script>
jQuery Mobileでつくってみよう
6章のサンプルを作ってみましょう

   本のソースコードとかけ離れてしまってもい
    いので、自分で一から作ってみましょう!
   1-3.htmlをコピーしてmy_jqmTweet.htmlを作
    成し、編集していきましょう。
まず、画面のモックを作る
   このアプリは、3画面からなります。
     ツイート一覧画面

     ツイート詳細画面

     設定画面
ツイート一覧画面
    まずはリストビューを
     使って、右のようなUIを
     実現しましょう。
    画面のIDは
     "pageTweetList"としま
     しょう。

<ul data-role="listview">
  <li><a href="#">ツイート!</a></li>
  <li><a href="#">ツイート!</a></li>
  <li><a href="#">ツイート!</a></li>
</ul>
ツイート詳細画面
   まずは画面に「ツイート!」
    という文字列が出ているだ
    け、で構いません。
   画面のIDは
    「pageTweetDetail」とし、
    一覧画面から遷移するよう
    にしましょう。
設定画面
    まず、設定画面に飛ぶためのボタンを一覧画
     面のヘッダに作成します。
    一覧画面のheader要素内に、以下のコードを
     記述してボタンを作りましょう。

<a href="#pageSettings"
  data-transition="flip"
  data-role="button"
  data-icon="gear"
  data-iconpos="notext"
  class="ui-btn-right">設定</a>
設定画面
   次ページのような見た目になるよう、フォー
    ム要素を配置してください。
   ページのIDは"pageSettings"とします。
   上のテキストフィールドは、IDを"username"
    としたtextタイプのinput要素で作ります。
   下のテキストフィールドはIDを"slider"とした
    rangeタイプのinput要素で作ります。min="5",
    max="50"としてください。
設定画面
JavaScriptプログラミング
   今回は、本に書いてあるコードではなく、白
    石が独自に書いたコードを使いましょう。
     コードが短い(本:      218行、独自版: 53行)
     jQuery Mobileにとって、より望ましいコードに
      なっている($(document).ready()ではなく
      pageshowを使う、など)
   独自版のコードが理解できたら、本のコード
    にもトライしてみてください。
コードを書く準備
   以下のコードを、body要素の一番下に記述し
    てください。
   スコープと変数の宣言を行なっています。
$(function() {
  var userName = 'Shumpei',   //   Twitterのユーザ名
      currentTweet = null,    //   詳細画面に表示するツイート
      updateNeeded = true,    //   一覧画面の更新が必要か
      maxCount = 20;          //   一覧に表示するツイート数

  // 残りのコードはここに記述
});
Twitterからツイートを読み込む
   一覧画面の表示時に、Ajaxでツイートを読み
    込みます。
// ツイート一覧画面が表示されると呼び出される
$('#pageTweetList').live('pageshow', function() {
 // 更新が必要ない
  if (!updateNeeded) return;
  var page = $('#pageTweetList');
  var list = page.find('ul').empty();
  // ツイートを取得する
   $.get(
    'http://search.twitter.com/search.json?callback=?' +
    '&rpp=' + maxCount +
    '&q=from:' + userName,
    function(data) {
      // 次のページの処理はここに記述
    }, 'json');
});
ツイートから一覧を作成
   1ツイート=1つのli要素としてリストビューを更新します。

var tweets = data.results;
tweets.forEach(function(tweet) {
  var iconSrc = tweet.profile_image_url;
  var text = tweet.text;
  var link = $('<a href="#pageTweetDetail"/>');
  // リンクをクリックされたら、変数を更新する
   link.data('tweet', tweet).click(function() {
    currentTweet = $(this).data('tweet');
  });
  $('<img/>', {src: iconSrc}).appendTo(link);
  $('<span/>', {text: text}).appendTo(link);
  $('<li/>').append(link).appendTo(list);
});
// リストビューをリフレッシュ
list.listview("refresh");
updateNeeded = false;
詳細画面を表示する際の処理
   リンクをクリックされると、変数currentTweetに該当のツイートが
    格納されます(前ページ参照)
   詳細画面の表示時に、currentTweetの情報をページに書き出します。

// 詳細画面が表示されると呼び出される
$('#pageTweetDetail').live('pageshow', function() {
  if (!currentTweet) return;
  $(this).find(':jqmData(role="content")')
    .text(currentTweet.text);
});
設定画面を表示する際の処理
   画面表示時に、設定項目の値を更新します。
   設定が変更されたら、変数を変更すると同時にupdateNeeded(一
    覧の更新が必要かどうかを表すフラグ)をtrueにします。

// 設定画面が表示されると呼び出される
$('#pageSettings').live('pageshow', function() {
  $('#username').val(userName).change(function() {
    userName = $(this).val();
    updateNeeded = true;
  });
  $('#slider').val(maxCount).slider('refresh')
  .change(function() {
    maxCount = $(this).val();
    updateNeeded = true;
  });
});
時間が余ったら
   ツイートの取得に失敗した際のエラーページ
    を追加してみましょう。
     本とは異なり、changePage()メソッドを使って
     やってみてください。
   テーマを変えてみましょう
   すべてのページに戻るボタンを追加してみま
    しょう。
   本の6.4以降のインターフェース改良にトライ
    してみましょう。
jQuery Mobileの開発環境
   DreamWeaver5.5
   codiqa
   ApplicationCraft
DreamWeaver5.5
   デザインを確認しながらコードを編集できる。
   data属性の補完に対応している
codiqa
   ブラウザ上でjQuery Mobileのコードを編集可
    能
   ドラッグ&ドロップで画面を構築していける
ApplicationCraft
   ブラウザ上で動作する統合開発環境
   ドラッグ&ドロップで画面を構築していける
jQuery Mobile以外の主なモバイル
フレームワーク
   Sencha Touch
   Kendo UI
   PhoneGap
Sencha Touch
   jQuery Mobileの競合
   JavaScriptの知識が必須
   デフォルトのUIコンポーネントが美しい
   ネイティブアプリの作成ツールを備える
Kendo UI Mobile
   jQuery Mobileとほぼ同じコンセプト
   ネイティブUIにかなり近い。
   営利企業が開発しており、基本的に有償
PhoneGap
   Web技術(HTML/CSS/JavaScript)で、ス
    マートフォンやタブレットのネイティブアプ
    リを作成するためのフレームワーク
   DreamWeaverで、jQuery Mobileと組み合わせ
    て開発できる
終わりに
   jQuery Mobileの魅力は、以下のところにある
    と考えます。
     数分でモックが作れてしまうほどの生産性

     カスタマイズ性

     オープンソースで、開発が活発

   1.1ではパフォーマンスの向上や細かな改善が
    図られており、今後が非常に期待できるフ
    レームワークでもあります。
ご清聴ありがとうございました。

           @Shumpei

Weitere ähnliche Inhalte

Was ist angesagt?

Oktopartial Introduction
Oktopartial IntroductionOktopartial Introduction
Oktopartial IntroductionTakeshi AKIMA
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2Nishida Kansuke
 
Webapp startup example_to_dolist
Webapp startup example_to_dolistWebapp startup example_to_dolist
Webapp startup example_to_dolistShinichiro Kumeuchi
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんHayato Mizuno
 
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するWordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するTakashi Uemura
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestWTomoko Sato
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩Chieko Aihara
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on AndroidYuki Anzai
 
HTML5開発最前線
HTML5開発最前線HTML5開発最前線
HTML5開発最前線yoshikawa_t
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~hokori matu
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマHideki MACHIDA
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMiho Nakano
 
Word press34
Word press34Word press34
Word press34BREN
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)Horiguchi Seito
 
20141206 handson
20141206 handson20141206 handson
20141206 handsonSix Apart
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャMayu Kimura
 
ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回Hitsuji
 

Was ist angesagt? (20)

Oktopartial Introduction
Oktopartial IntroductionOktopartial Introduction
Oktopartial Introduction
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
Webapp startup example_to_dolist
Webapp startup example_to_dolistWebapp startup example_to_dolist
Webapp startup example_to_dolist
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
 
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するWordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestW
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on Android
 
HTML5開発最前線
HTML5開発最前線HTML5開発最前線
HTML5開発最前線
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
 
Wp html5
Wp html5Wp html5
Wp html5
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
Word press34
Word press34Word press34
Word press34
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
 
20141206 handson
20141206 handson20141206 handson
20141206 handson
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
 
ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回
 

Andere mochten auch

【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろうMitsuo Kawashima
 
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編Monaca
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1Nishida Kansuke
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Satoru Mikami
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理Kiyoshi Sawada
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)parrotstudio
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップKiyoshi Sawada
 
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するEWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するKiyoshi Sawada
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するKiyoshi Sawada
 
入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみた入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみたyusuke ueki
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるKiyoshi Sawada
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するKiyoshi Sawada
 
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法Yuki Yokoyama
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるKiyoshi Sawada
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 
jQueryで作るカスタム投稿の画像スライダーライブラリ
jQueryで作るカスタム投稿の画像スライダーライブラリjQueryで作るカスタム投稿の画像スライダーライブラリ
jQueryで作るカスタム投稿の画像スライダーライブラリTakashi Uemura
 
少人数から始めるできるだけ楽をするB2Bアプリ開発
少人数から始めるできるだけ楽をするB2Bアプリ開発少人数から始めるできるだけ楽をするB2Bアプリ開発
少人数から始めるできるだけ楽をするB2Bアプリ開発Atsuhiko Kimura
 

Andere mochten auch (20)

【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
 
漢は黙ってjQuery
漢は黙ってjQuery漢は黙ってjQuery
漢は黙ってjQuery
 
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
実践Sass 前編
実践Sass 前編実践Sass 前編
実践Sass 前編
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
 
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するEWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみた入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみた
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
jQueryで作るカスタム投稿の画像スライダーライブラリ
jQueryで作るカスタム投稿の画像スライダーライブラリjQueryで作るカスタム投稿の画像スライダーライブラリ
jQueryで作るカスタム投稿の画像スライダーライブラリ
 
少人数から始めるできるだけ楽をするB2Bアプリ開発
少人数から始めるできるだけ楽をするB2Bアプリ開発少人数から始めるできるだけ楽をするB2Bアプリ開発
少人数から始めるできるだけ楽をするB2Bアプリ開発
 

Ähnlich wie jQuery Mobile入門

Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Nakazawa Yuichi
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料Nobumasa Ura
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionSatomi Tsujita
 
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドTetsuji Hayashi
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210cmtomoda
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tipsyoshikawa_t
 
Flash Builder4 と FlashCatalyst を使ってみた
Flash Builder4 と FlashCatalyst を使ってみたFlash Builder4 と FlashCatalyst を使ってみた
Flash Builder4 と FlashCatalyst を使ってみたguest0ba46c3
 
Web1.0のハイブリッドアプリ開発
Web1.0のハイブリッドアプリ開発Web1.0のハイブリッドアプリ開発
Web1.0のハイブリッドアプリ開発Kenta Tsuji
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideYusuke Tochigi
 
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在yoshikawa_t
 
jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方yoshikawa_t
 
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & TipsjQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tipsyoshikawa_t
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)Yoshiki Ushida
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】dcubeio
 
jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2yoshikawa_t
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshoptakashi ono
 

Ähnlich wie jQuery Mobile入門 (20)

Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
jQuery Mobileの基礎
jQuery Mobileの基礎jQuery Mobileの基礎
jQuery Mobileの基礎
 
Flash Builder4 と FlashCatalyst を使ってみた
Flash Builder4 と FlashCatalyst を使ってみたFlash Builder4 と FlashCatalyst を使ってみた
Flash Builder4 と FlashCatalyst を使ってみた
 
Web1.0のハイブリッドアプリ開発
Web1.0のハイブリッドアプリ開発Web1.0のハイブリッドアプリ開発
Web1.0のハイブリッドアプリ開発
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
Firefoxosハンズオン
FirefoxosハンズオンFirefoxosハンズオン
Firefoxosハンズオン
 
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在
 
jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方
 
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & TipsjQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
 
jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
 

Mehr von Shumpei Shiraishi

コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術Shumpei Shiraishi
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んでShumpei Shiraishi
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んでShumpei Shiraishi
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るShumpei Shiraishi
 
変身×フランツ・カフカ
変身×フランツ・カフカ変身×フランツ・カフカ
変身×フランツ・カフカShumpei Shiraishi
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでShumpei Shiraishi
 
「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んでShumpei Shiraishi
 
HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門Shumpei Shiraishi
 
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだことShumpei Shiraishi
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありきShumpei Shiraishi
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトShumpei Shiraishi
 
この人と結婚していいの?を読んで
この人と結婚していいの?を読んでこの人と結婚していいの?を読んで
この人と結婚していいの?を読んでShumpei Shiraishi
 

Mehr von Shumpei Shiraishi (20)

俺的GEB概論(前半)
俺的GEB概論(前半)俺的GEB概論(前半)
俺的GEB概論(前半)
 
コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術コンセプトのつくりかた - アイデアをかたちにする技術
コンセプトのつくりかた - アイデアをかたちにする技術
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探る
 
変身×フランツ・カフカ
変身×フランツ・カフカ変身×フランツ・カフカ
変身×フランツ・カフカ
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
 
「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで「1秒でわかる!アパレル業界ハンドブック」を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで
 
漫☆画太郎論
漫☆画太郎論漫☆画太郎論
漫☆画太郎論
 
HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門HTML5時代のフロントエンド開発入門
HTML5時代のフロントエンド開発入門
 
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありき
 
秒速一億円
秒速一億円秒速一億円
秒速一億円
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
 
この人と結婚していいの?を読んで
この人と結婚していいの?を読んでこの人と結婚していいの?を読んで
この人と結婚していいの?を読んで
 
20130921レジュメ2
20130921レジュメ220130921レジュメ2
20130921レジュメ2
 

Kürzlich hochgeladen

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Kürzlich hochgeladen (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

jQuery Mobile入門

  • 2. 自己紹介  株式会社オープンウェブ・テクノロジー代表  シーエー・モバイル株式会社 Web先端技術 フェロー  HTML5とか勉強会主催、html5j.org管理人  Google API Expert (HTML5)  Microsoft Most Valuable Professional 2011 (IE)
  • 3. この資料について  テキストとして、オライリー刊「jQuery Mobile」を使用します。  ハンズオンの部分は、オライリーのサイトか らサンプルをダウンロードして実践してくだ さい。  とはいえ、書籍が手元になくても、この資料 だけで学べることを目指しました。
  • 4. jQuery Mobileとは  スマートフォン向けのWebサイト開発フレー ムワーク  現在のバージョンは1.0.1  1.1が現在リリース候補に
  • 5. jQuery Mobileの特徴  ネイティブアプリに近い操作感  テーマの切り替えが可能  JavaScriptの知識がなくてもそこそこ使える  jQueryに依存している  マルチプラットフォーム
  • 6. ネイティブアプリに近い操作感  CSS/JavaScriptを駆使して、「ネイティブア プリに近い」操作感を実現する  UIコンポーネント・・・フォーム要素やリストな ど、用意されているコンポーネントがすべてブラ ウザネイティブのUIに近づけてあり、操作しやす い  ページ遷移がなめらかなアニメーションで実現さ れる(画面のリフレッシュが発生しない)  jQuery Mobileのドキュメントがデモになって いる。
  • 7. テーマの切り替えが可能  jQuery Mobileは、CSSの切り替えのみで大幅 にUIを変更することが可能。  色合いを変えるだけならば「スウォッチ」の変更 だけで可能
  • 8. JavaScriptの知識がなくてもそこそ こ使える  マークアップに特別な属性(data-*属性)を加 えていくだけで、簡単にスマートフォン対応 サイトを作成できる。
  • 9. jQueryに依存している  jQueryに強く依存している。  バージョン1.0.1では、jQuery1.6系に対応。  バージョン1.1(現在はまだ正式リリース前) では、jQuery1.7系に対応。  少し凝ったことをやるなら、jQueryの知識が あったほうが良い。
  • 10. マルチプラットフォーム  デスクトップを含め、22のプラットフォーム に対して同様のユーザ体験を提供できる  Android 2.1-4.0  iOS 3.2-5.0  プログレッシブ・エンハンスメントのアプ ローチにより、古いブラウザに対しても最低 限の情報提供は行える。
  • 11. jQuery Mobileを使用したサイトは 増加中  DODA、マイナビバイト、マイナビ派遣、 じゃらんnetなど、続々と利用事例は増加中  jQuery Mobileを使った国内スマホサイトまと め  大手によって採用されていることからも、安 心して使えるフレームワーク。
  • 13. jQuery Mobileをはじめよう  インストール  はじめてのjQuery Mobileページ  2ページからなるWebサイト
  • 14. 準備作業  XAMPPのインストール  jQuery Mobileのサンプルをダウンロード  サンプルをXAMPP/htdocs内に展開
  • 15. jQuery Mobileのインストール  JavaScriptとCSSを読み込むだけ  CDNを利用する場合 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile- 1.0.1.min.css" /> <script src="http://code.jquery.com/jquery-1.6.4.min.js"> </script> <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile- 1.0.1.min.js"> </script>  ファイルをダウンロードし、自分のサイトで 配信することも可能
  • 16. はじめてのjQuery Mobileページ  ヘッダとフッタを持つjQueryページを作って みましょう。
  • 17. はじめてのjQuery Mobileページ  1-1.htmlをコピーして1-1a.htmlとし、body要 素内に以下のコードを記述してください。 <section id="page1" data-role="page"> <header data-role="header"><h1>jQuery Mobile</h1></header> <div class="content" data-role="content"> <p>はじめてのページ!</p> </div> <footer data-role="footer"><h1>O'Reilly</h1></footer> </section> 結果は1-2.htmlと同じになります。
  • 18. はじめてのjQuery Mobileページ  ポイント  data-role属性を使用して、要素に役割を与えてい る(page, header, content, footer)  jQuery Mobileはdata属性を多用します <section id="page1" data-role="page"> <header data-role="header"><h1>jQuery Mobile</h1></header> <div class="content" data-role="content"> <p>はじめてのページ!</p> </div> <footer data-role="footer"><h1>O'Reilly</h1></footer> </section>
  • 19. 2ページからなるWebサイト  ページ遷移のあるWebサイトを作成してみま しょう。
  • 20. 2ページからなるWebサイト  1-1a.htmlのbody要素内に、2ページ目を追加 しましょう。 <section id="page2" data-role="page"> <header data-role="header"><h1>jQuery Mobile</h1></header> <div class="content" data-role="content"> <p>2ページ目</p> </div> <footer data-role="footer"><h1>O'Reilly</h1></footer> </section>  page1に、page2へのリンクを追加しましょう。 <p><a href="#page2">2ページ目へGo!</a></p> 結果は1-3.htmlと同じになります。
  • 21. 2ページからなるWebサイト  ポイント  1ページ=1ブロック  ページ間のリンクは、スムーズなアニメーション で実現される  すべてのページが一意なURLを持ち、戻るボタン で戻ることが出来る。
  • 23. 内部ページと外部ページ  jQuery Mobileにおけるページとは、data- role="page"が付与されたブロック要素。  すべてのページを1枚のHTMLに収めることが できるが、HTMLが巨大になる  ページを外部のファイルに記述し、必要に応 じてロードすることもできる。  →外部ページ
  • 24. 内部ページの利用  1-1a.htmlをコピーして、2-1a.htmlとしてくだ さい。(フォルダはchapter-2に置いてくださ い)  ページを追加して3ページとし、 「1P→2P→3P→1P」と遷移するようにリン クしてください。  テキストのP.11を参照 結果は2-1.htmlと同じになります。
  • 25. 外部ページの利用  今作成した2-1a.htmlの3ページ目に、以下のリ ンクを追加しましょう。 <p><a href="external.html">外部ページへGo!</a></p> 結果は2-2.htmlとほぼ同じになります。
  • 26. 外部ページの利用  ポイント  外部ページはAjaxで自動的にロードされる  ロードされたページは元ページのDOMに組み込 まれる  ID属性の衝突が発生しないように注意!  外部ページの中で読み込まれるのは最初のページ (data-role="page"が付与されたブロック)のみ。 それ以外の部分は無視される。
  • 27. ダイアログ  ダイアログの指定方法  ダイアログのページにdata-role="dialog"と指定す る  リンクにdata-rel="dialog"と指定する
  • 28. ダイアログ  2-2a.html のページ2をダイアログにしてみま しょう。
  • 29. ページ遷移のアニメーション  ページ遷移のアニメーションは変更できる  data-transition・・・アニメーションの種類を指 定  data-direction・・・"reverse"と指定すれば、アニ メーションが逆方向に
  • 30. ページ遷移のアニメーション  2-1a.htmlを題材に、様々なアニメーションを 試してみましょう。 data-transitionに指定可能な値 fade flip pop slide slidedown slideup
  • 32. ページの要素  リストビュー  ナビゲーションバー  ヘッダー・フッター  ボタン  チェックボックスとラジオボタン  フリップトグル  選択メニュー  スライダー  レイアウトグリッド
  • 33. リストビュー  スマホで一般的な一覧UIを簡単に実現できる  読み取り専用の一覧  他のページにジャンプする一覧  リストに区切りを入れる  リストビューを入れ子で指定する  リスト項目の分割  カウントのバブル表示  サムネイルとアイコン
  • 34. 読み取り専用のリストビュー  data-role="listview"を指定する  3-1.htmlを3-1a.htmlにコピーして、ブラウザ でアクセスしてみましょう。
  • 35. 読み取り専用のリストビュー  ポイント  ul/ol要素にdata-role="listview"を指定する
  • 36. リストビューの項目から他のペー ジにジャンプする  3-1a.htmlを修正して、li要素の内容をリンクに しましょう。 <ul data-role="listview"> <li><a href="#">項目</a></li> … </ul>
  • 37. リストに区切りを入れる  3-1a.htmlを修正して、リストに区切りを入れ ましょう。  data-role="divider"を指定したli要素を追加しま す。 <ul data-role="listview"> <li data-role="divider">区切り</li> <li><a href="#">項目</a></li> … </ul>
  • 38. リストビューを入れ子で指定する  リストのli要素内に、更にul/ol要素を記述する と、入れ子構造の中をインタラクティブに移 動できる
  • 39. リストビューを入れ子で指定する  3-1a.htmlを修正して、番号付きのリストを、 番号なしのリストの入れ子にしましょう。 <ul data-role="listview"> ... <li> <h3>番号付きの箇条書き</h3> <ol data-role="listview"> <li><a href="#">項目</a></li> <li><a href="#">項目</a></li> <li><a href="#">項目</a></li> </ol> </li> </ul>
  • 40. リスト項目の分割  リストのli要素内に、リンクを2つ以上並べる と、最後のリンクがボタンに変化する  3-1a.htmlを修正して、li要素に2つ以上のa要素 が含まれるようにしてみましょう。
  • 41. カウントのバブル表示  リストのli要素内に、ui-li-countというクラス を持つインライン要素を含めると、バブル表 示される  3-1a.htmlを修正して試してみましょう。 <li> <a href="#">項目</a> <span class="ui-li-count">3</span> </li>
  • 42. ナビゲーションバー  リンクのグループをタブ、もしくはボタン表 示することができる。
  • 43. ナビゲーションバー  1-2.htmlをコピーして3-9a.htmlを作成し、編 集します。  以下のコードをheader要素内に記述しましょ う。 <nav data-role="navbar"> <a href="#">1</a> <a href="#">二</a> <a href="#">さん</a> </nav>  上記のリンクを、順序なしリスト(ul)で囲 み、見た目の違いを確認しましょう。
  • 44. ヘッダー・フッター  data-roleにheader/footerと指定すれば、ヘッ ダとフッタを作れます。  ヘッダとフッタは、以下のような表示方法を 行えます。  標準・・・フッタの位置は、コンテンツの高さに 依存する  固定・・・ヘッダ・フッタが常に画面端に固定さ れる。data-position="fixed"を指定する  フルスクリーン・・・コンテンツがフルスクリー ン表示され、タップするとヘッダー・フッターが 表示される。ページにdata-fullscreen="true"を指 定する。
  • 45. ヘッダー・フッター  1-2.htmlをコピーして3-10a.htmlを作成し、編 集します。  固定モードを試しましょう。  ヘッダ・フッタにdata-position="fixed"を指定しま す。  フルスクリーンモードを試しましょう。  固定モードの状態で、ページに対してdata- fullscreen="true"を指定します。
  • 46. フォーム要素  jQuery Mobileでは、様々なフォーム要素を自 動的にモバイル用に最適化してくれる。  フォーム要素のデモ
  • 47. ボタン  input要素/button要素によるボタンは、ユーザ が押しやすいサイズのUIへと勝手に変換され ます。  data-role="button"とすることで、任意の要素 をボタンに見せることができる。  ボタンの幅をコンテンツに合わせるには、 data-inline="true"の指定が必要
  • 48. ボタン  1-2.htmlをコピーして3-13a.htmlを作成し、編 集します。  以下のコードをコンテンツ領域に記述し、 様々なボタンを試しましょう。 <a href="#" data-role="button">リンクベースのボタン</a> <input type="submit" value="送信" data-inline="true"> <input type="reset" value="リセット" data-inline="true"> 結果は3-13.htmlと同じになります。
  • 49. ボタンのコントロールグループ  data-role="controlgroup"を付与したブロック 要素で、ボタンをグループ化することができ る。  data-type="horizontal"を指定すると横向きに ボタンが並ぶ。
  • 50. ボタン  1-2.htmlをコピーして3-14a.htmlを作成し、編 集します。  以下のコードをコンテンツ領域に記述し、 様々なボタンを試しましょう。 <div data-role="controlgroup"> <span data-role="button">リンクベースのボタン</span> <span data-role="button">リンクベースのボタン</span> <span data-role="button">リンクベースのボタン</span> </div>
  • 52. (ボタンの)アイコン  ボタンにdata-icon属性を指定すると、アイコン付 きのボタンにできる。 data-icon属性で指定できる値 alert arrow-d arrow-l arrow-r arrow-u back check delete forward gear grid home info minus plus refresh search star  また、data-iconpos属性でアイコンの表示位置を 変更できる。  bottom/left/right/top/notext(アイコンのみ)
  • 53. (ボタンの)アイコン  1-2.htmlをコピーして3-15a.htmlを作成し、編 集します。  以下のコードをページ内に記述しましょう。 <button data-icon="gear" data-iconpos="left"> ボタン </button>  アイコンや表示位置をいろいろ変更してみま しょう。
  • 54. カスタムアイコン  カスタムのアイコンを使用するには、data- icon属性に定義済み以外の値(例えばdata- icon="smile"を使用する。  →すると、そのボタンには「ui-icon-smile」と いうクラスが付与される
  • 55. カスタムアイコン  3-15a.htmlを編集します。  以下のコードをページ内に記述しましょう。 <style> .ui-icon-smile { background-image: url(http://bit.ly/smileicon); background-size: 18px 18px; } </style> <button data-icon="smile" data-iconpos="left"> ボタン </button>
  • 56. ヘッダ上のボタン  ヘッダに、ボタン化したリンクを配置するこ とができる。  a要素を2つまで記述でき、左右に一つずつ配置 される。  ボタンを1つだけ、右側に配置したい場合は、ui- btn-rightというクラスを使用する
  • 57. ヘッダ上のボタン  1-3.htmlをコピーしてheaderButtons.htmlを作 成し、編集します。  以下のコードをヘッダに記述し、結果を確認 します。 <a href="#" data-role="button" data-icon="gear" data-iconpos="notext" class="ui-btn-right">設定</a>
  • 58. 戻るボタンの自動挿入  ページにdata-add-back-btn="true"と記述する と、ヘッダに戻るボタンが自動的に挿入され ます。  headerButtons.htmlの2ページ目に戻るボタン を追加しましょう。
  • 59. チェックボックスとラジオボタン  特に何もしなくても、ユーザが押しやすいUI になります。  3-16.htmlを表示し、ソースを確認しましょう。
  • 60. フリップトグル  select要素に、data-role="slider"を指定すると、 オン/オフを切り替えられるスイッチを作成 できます。  3-17.htmlを表示し、ソースを確認しましょう。
  • 61. フィールドのグループ化  ラベルとフィールドのセットを表すためのブ ロックを作成できる  data-role要素に"fieldcontain"を指定した div/fieldset要素でフォーム要素を囲む <div data-role="fieldcontain"> <label for="username">ユーザ名:</label> <input type="text"> </div>
  • 62. 選択メニュー  select要素は、data-native-menu="false"を指 定することで、jQuery Mobile独自の選択メ ニューを利用できる。  3-20.htmlを表示し、ソースを確認しましょう。
  • 63. スライダー  rangeタイプのinput要素を用いることで、スラ イダーUIが表示されます。  3-21.htmlを表示し、ソースを確認しましょう。
  • 64. レイアウトグリッド  グリッドレイアウトを行うためのCSSフレー ムワークが用意されています。  ui-grid-[a-e]でグリッドのカラム数を指定しま す。ui-grid-aは2列です。  グリッド内にui-block-[a-e]でセルを配置して いきます。ui-block-aは、行を折り返す効果を 持ちます。
  • 65. レイアウトグリッド  1-2.htmlをコピーして3-22a.htmlを作成し、以 下のコードを記述します。 <style> *[class^='ui-block-'] p{ border: 1px solid gray; } </style> <div class="ui-grid-a"> <div class="ui-block-a"><p>1-1</p></div> <div class="ui-block-b"><p>1-2</p></div> <div class="ui-block-a"><p>2-1</p></div> </div>
  • 67. テーマとスウォッチ  テーマ・・・インターフェース全般  スウォッチ・・・テーマの色  data-theme属性を用いて、スウォッチを切り 替えられる。  デフォルトテーマではa-eを選択できる  初期状態ではc
  • 68. テーマとスウォッチ  3-1.html(リストビューのサンプル)をコピー して4-1a.htmlを作成し、様々なテーマを試し てみましょう。  data-theme属性にa-eのいずれかを指定します。  ページだけでなく、リストビューなどにも指定で きます。
  • 69. スウォッチをカスタマイズする  4-1a.htmlに、以下のスタイルを追加してくだ さい(jQuery MobileのCSSよりも後に記述し てください。  リストビューのテーマをaに設定してください。 <style> .ui-btn-up-a { background-image:-webkit-linear-gradient(red, #333); } </style>
  • 70. スウォッチをカスタマイズする  スウォッチを作成・編集できる 「ThemeRoller」というWebアプリがある。
  • 71. スウォッチをカスタマイズする  ThemeRollerを使用して作成したテーマをダウ ンロードして読み込み、利用してみましょう。 左上のメニューから テーマをダウンロー ドできる
  • 72. スウォッチをカスタマイズする  jQuery Mobile Bootstrapという、Twitter Bootstrapを意識したテーマが利用可能  こちらもダウンロードして使ってみましょう。
  • 74. :jqmData()セレクタ  jQuery Mobileはdata-属性を多用するため、 jqmData()という特別なセレクタが用意されて いる。 // すべてのページを取得する $(':jqmData(role="page")') // すべてのリストビューを取得する $(':jqmData(role="listview")')
  • 75. UIウィジェットが持つメソッド  各UIウィジェットは、jQuery UIと同様にメ ソッドを使って操作できる リストビュー listview() スライダー slider() テキスト入力 textinput() 選択メニュー selectmenu() ボタン button()  更に、個々のウィジェットに対して以下のよ うなメソッドを使用できる。  enable/disable/refresh
  • 76. UIウィジェットが持つメソッド  1-13.htmlをコピーしてformMethods.htmlを作 成し、以下のコードを入力してください。 <script> $(function() { var linkButton = $('a:jqmData(role="button")'); var submitButton = $('input[type="submit"]'); var resetButton = $('input[type="reset"]'); linkButton.click(function() { resetButton.button("disable"); }); submitButton.click(function() { resetButton.button("refresh"); }); }); </script>
  • 77. $.mobile.changePage(to, options)  ページ遷移を行う  to・・・URL文字列、もしくはページをラップした jQueryオブジェクト  options(省略可)(主なもののみ)  changeHash: URLのハッシュを変更するか(true)  reloadPage: ページを強制的に再読み込みするか(false)  showLoadMsg: ローディングメッセージを表示するか (true)  role: ページのdata-role属性の値を指定  transition: 遷移アニメーション ($.mobile.defaultPageTransition)  reverse: 遷移を逆向きにするか(false)
  • 78. $.mobile.changePage(to, options)  1-3.htmlをコピーしてchangePage.htmlを作成 し、2ページ目へのリンクを以下のボタンに差 し替えてください。 <button onclick=" $.mobile.changePage( '#page2', {transition: 'flip'});"> 2ページ目へGo! </button>
  • 79. $.mobile.showPageLoadingMsg() $.mobile.hidePageLoadingMsg()  jQuery Mobileの「読み込み中」ダイアログを 表示あるいは非表示にする
  • 80. タッチイベント  タッチスクリーンに対するイベント。ブラウ ザごとの差異を抽象化している  tap・・・タップされた  taphold・・・1秒以上タップされたまま  swipe・・・スワイプされた  swipeleft・・・左にスワイプされた  swiperight・・・右にスワイプされた
  • 81. 仮想マウスイベント  PCのマウスイベントとタッチイベントを統一 して扱える  vmouseover  vmousedown  vmousemove  vmouseup  vclick  vmousecancel
  • 82. APIを利用したサンプル(1)  5.2.1.1のサンプル(「スワイプイベントから ページ遷移を発生させる」)を書きなおした もの。  1-3.htmlをコピーしてswipePages.htmlを作成 し、次のページに示すスクリプトをhead要素 内に挿入してください。
  • 83. APIを利用したサンプル(1) <script> $(function() { var pages = $(':jqmData(role="page")'); pages.each(function() { $(this).bind('swipeleft', function() { var next = $(this).next(); if (next.length === 0) next = $(pages[0]); $.mobile.changePage(next); }); $(this).bind('swiperight', function() { var prev = $(this).prev(); if (prev.length === 0) prev = $(pages[pages.length - 1]); $.mobile.changePage(prev, { reverse: true }); }); }); }); </script>
  • 84. 外部ページの読み込みに伴うイベント  pagebeforeload  pageload  pageloadfailed
  • 85. ページ遷移に伴うイベント  pagebeforehide  pagebeforeshow  pagehide  pageshow  pagebeforechange  pagechange  pagechangefailed
  • 86. ページの生成・削除に伴うイベント  pagebeforecreate・・・初期化直前  pagecreate・・・DOM構築直後  pageinit・・・jQMによる拡張完了後  pageremove・・・ページ削除時のイベント。 外部ページは、ユーザがそこを離れると削除 される。
  • 87. APIを利用したサンプル(2)  ページに関するイベントをコンソールに表示 します。  2-2.htmlをコピーしてpageEvents.htmlを作成 し、次のページに示すスクリプトをhead要素 内に挿入してください。
  • 88. APIを利用したサンプル(2) <script> $(function() { $(':jqmData(role="page")').live('pagebeforecreate', function() { console.log('ページ' + this.id + 'においてpagebeforecreateイベントが発生しました!'); $(this).bind( 'pagecreate pagebeforehide pagebeforeshow' + 'pagehide pageshow pagebeforechange pagechange', function(e) { console.log('ページ' + this.id + 'において' + e.type + 'イベントが発生しました!'); }); }); }); </script>
  • 89. その他のイベント  updatelayout・・・UIコンポーネントのレイア ウトが変化すると呼び出される(検索機能付 き  orientationchange・・・デバイスの方向が変 化した際呼び出される  アニメーションの終了
  • 90. jQuery Mobileの設定  主な設定項目(完全なリストはこちら)  activeBtnClass: アクティブなボタンのクラス  activePageClass: アクティブなページのクラス  defaultPageTransition: デフォルトのページ遷移 アニメーション  defaultDialogTransition:デフォルトのダイアログ 表示アニメーション  loadingMessage: ローディング中の文字列  ns: 名前空間。data属性に文字列が追加される。 (例えば、ns='my'とすると、data-my-roleなどに なる。)
  • 91. jQuery Mobileの設定  jQuery Mobileが読み込まれるより先に、 documentにmobileinitイベントのハンドラを指 定し、その中で$.mobileオブジェクトに設定 項目を指定します。  次のページの例を見てください。
  • 92. APIを利用したサンプル(1)  1-3.htmlをコピーしてconfig.htmlを作成し、次 のページに示すスクリプトをhead要素内に挿 入してください。 <script src="jquery.js"></script> <script> $(document).bind('mobileinit', function() { $.mobile.defaultPageTransition = 'flip'; }); </script> <script src="jquery.mobile.js"></script>
  • 94. 6章のサンプルを作ってみましょう  本のソースコードとかけ離れてしまってもい いので、自分で一から作ってみましょう!  1-3.htmlをコピーしてmy_jqmTweet.htmlを作 成し、編集していきましょう。
  • 95. まず、画面のモックを作る  このアプリは、3画面からなります。  ツイート一覧画面  ツイート詳細画面  設定画面
  • 96. ツイート一覧画面  まずはリストビューを 使って、右のようなUIを 実現しましょう。  画面のIDは "pageTweetList"としま しょう。 <ul data-role="listview"> <li><a href="#">ツイート!</a></li> <li><a href="#">ツイート!</a></li> <li><a href="#">ツイート!</a></li> </ul>
  • 97. ツイート詳細画面  まずは画面に「ツイート!」 という文字列が出ているだ け、で構いません。  画面のIDは 「pageTweetDetail」とし、 一覧画面から遷移するよう にしましょう。
  • 98. 設定画面  まず、設定画面に飛ぶためのボタンを一覧画 面のヘッダに作成します。  一覧画面のheader要素内に、以下のコードを 記述してボタンを作りましょう。 <a href="#pageSettings" data-transition="flip" data-role="button" data-icon="gear" data-iconpos="notext" class="ui-btn-right">設定</a>
  • 99. 設定画面  次ページのような見た目になるよう、フォー ム要素を配置してください。  ページのIDは"pageSettings"とします。  上のテキストフィールドは、IDを"username" としたtextタイプのinput要素で作ります。  下のテキストフィールドはIDを"slider"とした rangeタイプのinput要素で作ります。min="5", max="50"としてください。
  • 101. JavaScriptプログラミング  今回は、本に書いてあるコードではなく、白 石が独自に書いたコードを使いましょう。  コードが短い(本: 218行、独自版: 53行)  jQuery Mobileにとって、より望ましいコードに なっている($(document).ready()ではなく pageshowを使う、など)  独自版のコードが理解できたら、本のコード にもトライしてみてください。
  • 102. コードを書く準備  以下のコードを、body要素の一番下に記述し てください。  スコープと変数の宣言を行なっています。 $(function() { var userName = 'Shumpei', // Twitterのユーザ名 currentTweet = null, // 詳細画面に表示するツイート updateNeeded = true, // 一覧画面の更新が必要か maxCount = 20; // 一覧に表示するツイート数 // 残りのコードはここに記述 });
  • 103. Twitterからツイートを読み込む  一覧画面の表示時に、Ajaxでツイートを読み 込みます。 // ツイート一覧画面が表示されると呼び出される $('#pageTweetList').live('pageshow', function() { // 更新が必要ない if (!updateNeeded) return; var page = $('#pageTweetList'); var list = page.find('ul').empty(); // ツイートを取得する $.get( 'http://search.twitter.com/search.json?callback=?' + '&rpp=' + maxCount + '&q=from:' + userName, function(data) { // 次のページの処理はここに記述 }, 'json'); });
  • 104. ツイートから一覧を作成  1ツイート=1つのli要素としてリストビューを更新します。 var tweets = data.results; tweets.forEach(function(tweet) { var iconSrc = tweet.profile_image_url; var text = tweet.text; var link = $('<a href="#pageTweetDetail"/>'); // リンクをクリックされたら、変数を更新する link.data('tweet', tweet).click(function() { currentTweet = $(this).data('tweet'); }); $('<img/>', {src: iconSrc}).appendTo(link); $('<span/>', {text: text}).appendTo(link); $('<li/>').append(link).appendTo(list); }); // リストビューをリフレッシュ list.listview("refresh"); updateNeeded = false;
  • 105. 詳細画面を表示する際の処理  リンクをクリックされると、変数currentTweetに該当のツイートが 格納されます(前ページ参照)  詳細画面の表示時に、currentTweetの情報をページに書き出します。 // 詳細画面が表示されると呼び出される $('#pageTweetDetail').live('pageshow', function() { if (!currentTweet) return; $(this).find(':jqmData(role="content")') .text(currentTweet.text); });
  • 106. 設定画面を表示する際の処理  画面表示時に、設定項目の値を更新します。  設定が変更されたら、変数を変更すると同時にupdateNeeded(一 覧の更新が必要かどうかを表すフラグ)をtrueにします。 // 設定画面が表示されると呼び出される $('#pageSettings').live('pageshow', function() { $('#username').val(userName).change(function() { userName = $(this).val(); updateNeeded = true; }); $('#slider').val(maxCount).slider('refresh') .change(function() { maxCount = $(this).val(); updateNeeded = true; }); });
  • 107. 時間が余ったら  ツイートの取得に失敗した際のエラーページ を追加してみましょう。  本とは異なり、changePage()メソッドを使って やってみてください。  テーマを変えてみましょう  すべてのページに戻るボタンを追加してみま しょう。  本の6.4以降のインターフェース改良にトライ してみましょう。
  • 108. jQuery Mobileの開発環境  DreamWeaver5.5  codiqa  ApplicationCraft
  • 109. DreamWeaver5.5  デザインを確認しながらコードを編集できる。  data属性の補完に対応している
  • 110. codiqa  ブラウザ上でjQuery Mobileのコードを編集可 能  ドラッグ&ドロップで画面を構築していける
  • 111. ApplicationCraft  ブラウザ上で動作する統合開発環境  ドラッグ&ドロップで画面を構築していける
  • 113. Sencha Touch  jQuery Mobileの競合  JavaScriptの知識が必須  デフォルトのUIコンポーネントが美しい  ネイティブアプリの作成ツールを備える
  • 114. Kendo UI Mobile  jQuery Mobileとほぼ同じコンセプト  ネイティブUIにかなり近い。  営利企業が開発しており、基本的に有償
  • 115. PhoneGap  Web技術(HTML/CSS/JavaScript)で、ス マートフォンやタブレットのネイティブアプ リを作成するためのフレームワーク  DreamWeaverで、jQuery Mobileと組み合わせ て開発できる
  • 116. 終わりに  jQuery Mobileの魅力は、以下のところにある と考えます。  数分でモックが作れてしまうほどの生産性  カスタマイズ性  オープンソースで、開発が活発  1.1ではパフォーマンスの向上や細かな改善が 図られており、今後が非常に期待できるフ レームワークでもあります。