SlideShare a Scribd company logo
jQuery Mobile 最新情報 & Tips


           2012/3/15(木) Web CAT Studio
        Toru Yoshikawa ( @yoshikawa_t )
Who?
吉川 徹/Toru Yoshikawa
  html5j.org/HTML5とか勉強会スタッフ

  Google API Expert ( Chrome API )

  Chrome API Developers JP

  allWebクリエイター塾/jQuery Mobile担当講師

  Twitter: @yoshikawa_t

  Blog: http://d.hatena.ne.jp/pikotea/
Agenda

jQuery Mobile 1.1

jQuery Mobile tips

jQuery Mobile design customize

Questions
Sample

http://jqmworks.appspot.com/1.1tips/
jQuery Mobile 1.1
Summary
jQuery 1.7.1のサポート

固定ツールバーの最適化

ページアニメーションの最適化

新たなページアニメーションの追加(Turn、Flow)

コンパクトなフォームの追加と各種デザイン変更

サードパーティ製のUIライブラリが利用できるように

今月中には、1.1正式版がリリース予定
固定ツールバーの最適化
固定ツールバーがスムーズに

 スクロール中に固定ツールバーが消えたり(旧仕様)、固定ツールバーが
 へんな位置に来ることがなくなった

 JavaScriptによるエミュレートは削除、position:fixedを利用した
 固定ツールバーに変更

 サポートしていないブラウザでは、固定ツールバーは動作しない(固定さ
 れない)

サポートブラウザ

 Android 2.2+

 iOS5+
固定ツールバーの最適化
<div data-role="footer" data-position="fixed" data-tap-
toggle="false">
    固定フッター
</div>




    data-position="fixed"でフッターの固定

    data-tap-toggle="false"で画面をタップし
    たときのフッターの表示・非表示の切り替えをし
    ない
ページアニメーションの最適化
 スクロール位置を維持したまま2つのページを同時
 にアニメーションするのが難しかったため、fade
 in/outを組み合わせた方式に変更

 デフォルトのアニメーションは、slideからfade
 に変更

 Android2.x系は、CSS周りが遅いので強制的に
 fadeに変更(Android4.0のデフォルトブラウザ
 でもfade)
新たなページアニメーションの追加

    Turn
       ページの左端を基準にして、回転するように現在ページ
       がめくれ、次のページも回転しながら表示される

    Flow
       いったんページが縮小され、その後に左に移動して消え
       る。縮小された次のページが右から笑われて拡大される


<a data-transition="turn">turn</a>
<a data-transition="flow">flow</a>
コンパクトなフォームの追加と各種デザイン変更

 ツールバーなどに入れるために小さいフォームを用意
コンパクトなフォーム
フォームへの指定方法
<input type="button" value="ボタン" data-mini="true">



複数の要素を持つフォームへの指定方法
<fieldset data-role="controlgroup" data-mini="true">
    <input type="checkbox" name="chk" id="chk1">
    <label for="chk1">Check1</label>
    ...
</fieldset>
各種デザイン変更
フリップスイッチ
各種デザイン変更
スライダー(ハイライト)
各種デザイン変更
フリップスイッチ(記述は変更なし)
<select data-role="slider">
    <option>OFF</option>
    <option>ON</option>
</select>



スライダーのhighlight指定
<input type="range" value="0" min="0" max="100" step="5"
data-highlight="true">
各種デザイン変更
Ajaxローダー




 No text   Text only
各種デザイン変更
デフォルトのロード中アイコン表示
$.mobile.showPageLoadingMsg();



ローディングメッセージ表示(※RC1では動作しない)
$.mobile.showPageLoadingMsg('a', 'message');



メッセージのみ表示
$.mobile.showPageLoadingMsg('a', 'message', true);
サードパーティ製のUIライブラリが利用できるように


初期設定
$(document).on('mobileinit', function(){
  $.mobile.ignoreContentEnabled = true;
});



data-enhance="true"
<div data-enhance="false">
        <!-- third party ui markup -->
</div>
その他
ページアニメーションのFirefoxのサポート

$.mobile.touchOverflowEnabledは非推奨に
(削除予定)

スライダーのstep属性をサポート

iOSのOrientation Changeのズームバグに対応

AMD(非同期モジュール読み込み)対応

コンテナへのdata-ajax="false"の有効化
jQuery Mobile Tips
Tips
オンラインオーサリングツール

Third Party Plugin

ThemeRoller

jQM Gallery

PhoneGap

Responsive Web Design

Performance

latest build
オンラインオーサリングツール
       codiqa




    http://www.codiqa.com/
オンラインオーサリングツール
             その他
Application Craft
Proto.io
Tiggzi
NS Basic/App Studio
MobDis
Mobjectify
Third Party Plugin
               Pagination




http://filamentgroup.com/lab/jquery_mobile_pagination_plugin/
Third Party Plugin
    PhotoSwipe




   http://www.photoswipe.com/
Third Party Plugin
      DateBox




 http://dev.jtsage.com/jQM-DateBox/
Third Party Plugin
  Simple Dialog




http://dev.jtsage.com/jQM-SimpleDialog/
Third Party Plugin
             Actionsheet




https://github.com/hiroprotagonist/jquery.mobile.actionsheet
Third Party Plugin
   960 Grid on JQuery Mobile




http://jeromeetienne.github.com/jquery-mobile-960/index.html
Third Party Plugin
             その他
jquery-ui-map … jQueryとjQuery Mobile用の
Google Maps Plugin
Bartender … iOS風のタブバー

Camera slideshow … リッチなスライドショー

mobiscroll … ドラムロール式のDate Picker

Multiview … レスポンシブな2カラムビュー

Splitview … レスポンシブな2カラムビュー
ThemeRoller
GUI上簡単にjQuery Mobileのテーマが作成可能




 http://jquerymobile.com/themeroller/
jQuery Mobile Gallery




 http://www.jqmgallery.com/
PhoneGap
       HTML/CSS/JavaScriptのWebア
       プリケーションをネイティブアプリ
       に変換可能

       iOS、Android、Windows Phone
       など様々なプラットフォームに対応

       カメラなどのネイティブの機能を利
       用可能


http://phonegap.com/
PhoneGap Build
開発環境がなくてもクラウド上で簡単にビルド




  https://build.phonegap.com/
Responsive Web Design
 jQuery Mobile Docs
2カラムレイアウトと
Collapsibleブロック
CSS Media Queries

デバイスのサイズごとに異なるスタイルを適用する

画面サイズ大きいものには、2カラムレイアウトの
スタイルを。

IEは、respond.jsもしくはcss3-
mediaqueries.jsを使う
2カラムレイアウト
@media all and ( min-width: 650px ){
    .content-primary {
        width: 45%;
        float: right;
    }
    .content-secondary {
        width: 45%;
        float: left;
    }
}
スタイルによるCollapsibleブロックの展開


.content-secondary .ui-collapsible-heading {
    display: none;
}
.content-secondary .ui-collapsible-contain {
    margin:0;
}
.content-secondary .ui-collapsible-content {
    display: block;
    margin: 0;
    padding: 0;
}
トランジションの切り替え
$(window).bind("throttledresize", setDefaultTransition );

function setDefaultTransition(){
  var winwidth = $(window).width(),
      trans = "slide";

    if ( winwidth >= 1000 ){
      trans = "none";
    } else if ( winwidth >= 650 ) {
      trans = "fade";
    }

    $.mobile.defaultPageTransition = trans;
}
トランジション速度の調整
/* デフォルトのアニメーション時間は350ms */
@media all and ( min-width: 750px ) {
  .slide .in, .slide .out {
	   -webkit-animation-timing-function: ease-in-out;
	   -webkit-animation-duration: 700ms;
  }
}
Performance
Page Animation:

   link -> data-transition="none"

   data-ajax="false" is bad knowhow.

Page Cache:

   page -> data-dom-cache="true"

Page Prefetch:

   link -> prefetch

   $.mobile.loadPage();

Don't use too many custom select menu.

Don't use too many nested list.
latest build
<link rel="stylesheet" href="http://code.jquery.com/mobile/
latest/jquery.mobile.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></
script>
<script src="http://code.jquery.com/mobile/latest/
jquery.mobile.min.js"></script>
jQuery Mobile design customize
jQuery Mobile Tutorial:
  Creating a Restaurant Picker




http://www.noupe.com/tutorial/jquery-mobile-tutorial-creating-a-
                 restaurant-picker-web-app.html
jQuery Mobile Tutorial:
Creating a Restaurant Picker
            Home
jQuery Mobile Tutorial:
Creating a Restaurant Picker
       Choose the town
jQuery Mobile Tutorial:
Creating a Restaurant Picker
    Choose the restaurant
jQuery Mobile Tutorial:
Creating a Restaurant Picker
      Restaurant details
Next
Roadmap
今月中に1.1の正式版をリリース予定

 Download Builder Toolを提供予定

 ThemeRoller update?

春には1.2をリリース予定

 popup component ( like Simple Dialog )

 fetch links

   ajax navigation system ( data-target )

   auto enhancement ( data-fragment )
Questions
Question 1
ajaxを使った画面遷移先でJavaScriptを動かしたいが、
body内のJavaScriptが無視されてしまう。



Ajaxでの遷移は、遷移先の<div data-role="page"></
div>のみ取得するので、どうしてもそのページで実行した
い場合は、<div data-role="page"><script>...</
script></div>としましょう。

できれば、共通スクリプトでpageinitイベントなどで実行
するようにしてください。
Auto Ajax mechanism

               初回アクセス

ページ1                       ページ2                       ページ3
<html>                     <html>                     <html>
<head>                     <head>                     <head>
  <!-- link, head -->        <!-- link, head -->        <!-- link, head -->
</head>                    </head>                    </head>
<body>                     <body>                     <body>
  <div data-role="page">     <div data-role="page">     <div data-role="page">
    ...                        ...                        ...
  </div>                     </div>                     </div>
</body>                    </body>                    </body>
</html>                    </html>                    </html>


                           ajax                       ajax
Auto Ajax mechanism

                                          初回アクセス

ページ1                       ページ2                       ページ3
<html>                     <html>                     <html>
<head>                     <head>                     <head>
  <!-- link, head -->        <!-- link, head -->        <!-- link, head -->
</head>                    </head>                    </head>
<body>                     <body>                     <body>
  <div data-role="page">     <div data-role="page">     <div data-role="page">
    ...                        ...                        ...
  </div>                     </div>                     </div>
</body>                    </body>                    </body>
</html>                    </html>                    </html>


               ajax                                    ajax
Question 2
Mobile Bookmark Bubbleを使いたいが、JQM
のajaxのせいでうまく動かない



iPhoneでWebアプリのホーム画面登録を促す
「Mobile Bookmark Bubble」をjQuery
Mobileと併用してみた

http://d.hatena.ne.jp/a_kimura/
20110507/1304801259
Question 3
header部分にsubmitを配置する為に、form要素
をheaderも含めて囲むと、iPhoneで表示が崩れ
る。



現象を確認できませんでした。もしかしたら、
marginやpaddingの設定があるのかもしれませ
ん。

どうしてもダメなら、スクリプトで。
Question 4
ダブルタップを判定するために、タップして
からアクションするまでに タイムラグが生
じますが、シングルタップのみしか使用しな
い設計を している場合、ダブルタップの判
定を省略することは出来るのでしょうか?



vclickイベントを利用してください。
Question 5

jQueryMobileを採用して、格好いいUIを提供し
ているサイト(事例)があれば知りたい。とくに金
融系で何かあれば。

jQuery Mobileの事例紹介など。



jQM GalleryにCoolなサイトはたくさん置いてあ
ります!金融系かどうかはちょっとわかりません…
Question 6
JavaScriptの実機での効率の良いデバッグ
方法



最近だとAdobe Shadowがリモートデバッグ
に対応していますね。Chrome for Android
も同じくリモートデバッグができます。それ以
外は、weinreというツールもあります。
Question 7
アンカーリンクは使えないんでしょ
うか?代替はどのようなものがある
のでしょうか?



a要素にdata-ajax="false"を指
定してください。
Question 8
jQuery Mobile 1.0.1から1.1へアップ
デートする際の注意点など



基本的に動作はしますが、アニメーション
のデフォルトがfadeになったことと固定
ツールバーが変わっているのでそこだけ注
意です
Question 9
ページ遷移で発生するイベントの効果的な使い方等あれば参考に
したいです。



通常のページで簡単に利用できるGoogle Maps、Google
Analytics、Google Adsenseなどはpageshowイベントなど
でページ遷移の際に実行する必要があります。

loadイベントの代わりに各ページでpageinitイベントを利用し
てください。

共通パーツの作成などにpagecreateイベントが利用できます。
pageshow event and Google Analytics

各ページの表示時にトラッキング
$(document).on('mobileinit', function(){
  $(':jqmData(role="page")').live('pageshow', function () {
    _gaq.push(['_trackPageview',
              $.mobile.activePage.jqmData('url')]);
  });
}
Question 10
ネイティブアプリにするかhtml5で作るか
の判断の仕方



まず、HTML5で対応できない機能用件があ
るかどうか、そしてパフォーマンスやユー
ザービリティを重視する案件であるかどう
かが大きな判断材料になるかと思います。
Question 11
iOS4での重さは改善したのか。

各種モバイル端末の動作具合(iOSや
Android)



パフォーマンスは良くなっているはずです
が、感覚のところもあるので是非試してみて
ください。
Question 12

スマートフォン対応の業務アプリ開発にお
ける課題。(もちろん主観で構いません。)



業務アプリの場合、jQuery Mobileのデ
メリットをあまり考え無くても良いので積
極的に利用できるかと思います。
Question 13

ガラケーモバイルサイトからスマートフォン用
のサイトへの移行。



UTF-8化、viewportタグ、jQuery Mobileの
読み込み、data-role="page"によるページの
切り出し、最後にdata-enhance="false"で
ネイティブのUIを利用しつつ少しずつ対応
Question 14
陥りやすい落とし穴などあればぜひ教えていただきたいです。



Ajaxによるページ遷移の仕組みに起因する問題が多いです。

 script等がうまく読み込めない、動作しない場合の対応
 (page関連のイベントを使う)

 複数のファイルのページを同じページに取り込むので、id
 属性の重複に気をつけること

 ローカル環境では、XHRの制約で別ファイルへ遷移ができ
 ないこと(サーバー環境では可能)
more?
Thank you!!
 ( @yoshikawa_t)

More Related Content

PDF
jQuery Mobile 1.2 最新情報 & Tips
PDF
jQuery Mobile 1.3 最新情報
PDF
jQuery Mobile 概要
PDF
jQuery Mobileの基礎
PPTX
Magento meet up Tokyo#1 for Design
PDF
Jqm20120210
PDF
jQuery Mobile(開発編)勉強会資料
PPTX
Web Component概要
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.3 最新情報
jQuery Mobile 概要
jQuery Mobileの基礎
Magento meet up Tokyo#1 for Design
Jqm20120210
jQuery Mobile(開発編)勉強会資料
Web Component概要

What's hot (20)

PDF
WordPressで提供するWeb API
PDF
Start React with Browserify
PDF
Componentization with Gilgamesh
PDF
はじめよう JavaFX 2.x
PDF
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
PDF
SocialWeb Conference vol.5 OpenSocial Night #2
PDF
⑯jQueryをおぼえよう!その2
PDF
Pyramid入門
PDF
プロになるためのJavaScript入門読書会 レジュメ
PPTX
HTML5最新動向
PDF
Android Lecture #04 @PRO&BSC Inc.
PPTX
CSS Nite in Matsuyama vol.1 - session 4
PDF
はじめよう Backbone.js
PPTX
Web Intents入門
PDF
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
PDF
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
PDF
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
PDF
iOS の通信における認証の種類とその取り扱い
PPTX
HTML5&API総まくり
WordPressで提供するWeb API
Start React with Browserify
Componentization with Gilgamesh
はじめよう JavaFX 2.x
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
SocialWeb Conference vol.5 OpenSocial Night #2
⑯jQueryをおぼえよう!その2
Pyramid入門
プロになるためのJavaScript入門読書会 レジュメ
HTML5最新動向
Android Lecture #04 @PRO&BSC Inc.
CSS Nite in Matsuyama vol.1 - session 4
はじめよう Backbone.js
Web Intents入門
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
iOS の通信における認証の種類とその取り扱い
HTML5&API総まくり
Ad

Viewers also liked (20)

PDF
レスポンシブWeb「デザイン」
PDF
UI設計におけるスマートフォン対応のまとめ
PDF
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
PDF
CSSコーディングを効率よくするおすすめプラグイン
PDF
マークアップとUX
PPTX
AWS基礎
PDF
WordPress基礎講座1 CMSの概要
PDF
スマートフォン対応、気をつけたいトラブル JavaScript編
PDF
Pythonを取り巻く開発環境 #pyconjp
PPTX
Awsをちゃんと使ってみた
PDF
WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録
PDF
マルチデバイス時代におけるWebサイトのUIについて
PDF
スマートフォン対応、気をつけたいトラブル
PDF
Javascriptを書きたくないヒ トのためのPythonScript
PDF
レスポンシブ基礎 ~Webサイトをレスポンシブに する方法とそのメリット~
PDF
使いやすいWordPressのためのCSSのつくりかた
PDF
CSS の歩き方
PDF
なぜ科学計算にはPythonか?
PDF
Pythonの開発環境を調べてみた
PDF
スマートフォンブラウザ不具合特集
レスポンシブWeb「デザイン」
UI設計におけるスマートフォン対応のまとめ
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
CSSコーディングを効率よくするおすすめプラグイン
マークアップとUX
AWS基礎
WordPress基礎講座1 CMSの概要
スマートフォン対応、気をつけたいトラブル JavaScript編
Pythonを取り巻く開発環境 #pyconjp
Awsをちゃんと使ってみた
WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録
マルチデバイス時代におけるWebサイトのUIについて
スマートフォン対応、気をつけたいトラブル
Javascriptを書きたくないヒ トのためのPythonScript
レスポンシブ基礎 ~Webサイトをレスポンシブに する方法とそのメリット~
使いやすいWordPressのためのCSSのつくりかた
CSS の歩き方
なぜ科学計算にはPythonか?
Pythonの開発環境を調べてみた
スマートフォンブラウザ不具合特集
Ad

Similar to jQuery Mobile 最新情報 & Tips (20)

PDF
jQuery Mobileカスタマイズ自由自在
PDF
jQuery Mobileカスタマイズ自由自在 v1.2
PDF
はじめてのjQueryMobile(初級編)
PPTX
jQuery Mobile入門
PDF
2012年8月10日 勉強会
PPTX
JqueryMobile
PDF
jQuery Mobileバレしないモバイルサイトの作り方
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
PDF
Jqm20120804 publish
PDF
jQuery Mobile
PDF
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
PDF
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
PPTX
ABC2012Spring 20120324
PDF
Html5で作るiPhoneアプリケーション2010
PPTX
第19回html5とか勉強会 pjax
PDF
レスポンシブWebデザイン【発展編】
KEY
WordPress プラグイン Infinite Scroll を試してみた
PDF
Web制作勉強会 #2
PPTX
20111204 WebBroser Control Tips for Windows Phone
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在 v1.2
はじめてのjQueryMobile(初級編)
jQuery Mobile入門
2012年8月10日 勉強会
JqueryMobile
jQuery Mobileバレしないモバイルサイトの作り方
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Jqm20120804 publish
jQuery Mobile
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
ABC2012Spring 20120324
Html5で作るiPhoneアプリケーション2010
第19回html5とか勉強会 pjax
レスポンシブWebデザイン【発展編】
WordPress プラグイン Infinite Scroll を試してみた
Web制作勉強会 #2
20111204 WebBroser Control Tips for Windows Phone

More from yoshikawa_t (20)

PDF
Ionicで作るTechfeed
PDF
困った時のDev toolsの使い方(初心者向け)
PDF
TechFeedというテクノロジーキュレーションサービスを作った話
PDF
Chrome DevTools Awesome 10 Features +1
PDF
これからのモバイルWebと最新動向
PDF
いまさら聞けないHTML5概要
PDF
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
PDF
jQuery Mobile is not dead!
PDF
HTML5開発最前線
PDF
Chrome Apps のデバイスAPI
PDF
Chrome Apps & Chromeウェブストア概要
PDF
Chrome DevTools for beginners v1.2
PDF
モバイル時代のWebパフォーマンス
PDF
モバイル時代のWebパフォーマンスTips
PDF
Chrome apps for mobile 概要
PDF
Chrome Apps 概要
PDF
Chrome Devtools for beginners (v1.1)
PDF
Html5概要 & デモ
PDF
いまさら聞けないCSSレイアウト入門
PDF
Sencha touch vs j query mobile
Ionicで作るTechfeed
困った時のDev toolsの使い方(初心者向け)
TechFeedというテクノロジーキュレーションサービスを作った話
Chrome DevTools Awesome 10 Features +1
これからのモバイルWebと最新動向
いまさら聞けないHTML5概要
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
jQuery Mobile is not dead!
HTML5開発最前線
Chrome Apps のデバイスAPI
Chrome Apps & Chromeウェブストア概要
Chrome DevTools for beginners v1.2
モバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンスTips
Chrome apps for mobile 概要
Chrome Apps 概要
Chrome Devtools for beginners (v1.1)
Html5概要 & デモ
いまさら聞けないCSSレイアウト入門
Sencha touch vs j query mobile

jQuery Mobile 最新情報 & Tips