jQuery Mobileを使用してモバイルサイトを迅速に開発
AppleのiOSデバイスとAndroidがそれぞれ荒れ狂っているのを見て、あなたのサービスをどちらにすればいいのか分からないとき、一つのプラットフォームの開発を完了した後、このappを別のプラットフォームにポートすることをこっそり望んだことがありますか?jQuery Mobileはこのような便利なframeworkであり、特に小さな会社では人手が不足しており、jQuery Mobileはアプリケーションを異なるプラットフォームに発表する力を大幅に節約することができます.
この文章では、jQuery Mobileの運営の哲学、jQuery Mobileが提供するツール、そして実際の例でjQuery Mobile、jQuery Mobileが提供する様々な便利な機能を簡単に紹介します.
jQuery Mobileを知る
jQueryを使ったことがある人はきっとjQueryで有名な「write less,do more」を愛しているに違いない.jQueryを通していれば、悩ましいブラウザ間の問題を心配する必要はありません.しかし、手持ち式の装置が普及するにつれて、閲覧機の問題は携帯電話よりもPCよりも深刻になっていることが分かった.携帯電話ではブラウザだけでなく、OSの違いもPCよりも深刻だ.そして、2010年の10月にjQueryはついにみんなの期待の下でjQuery Mobileを発売しました.この簡単で使いやすいframeworkを使えば、すぐにdeviceにまたがるmobile appilcationを作ることができます.jQuery Mobileのいくつかの重要なfeaturesには、次のものが含まれます. jQuery mobileは、iOS、Android、Blackberry、Palm WebOS、Nokia/Symbian、Windows Mobile、bada、MeeGo、HTMLが読める他のdevicesなど、異なるモバイルデバイスにまたがることができます.詳細な支援状況はMobile Graded Browser Support を参照してください. Progressive Enhancement & Graceful Degradation “taking a fully functional HTML web page, layering on additional JavaScript functionality, and giving capable browsers a top-of-the-line experience.” 古い携帯電話のように基本的な機能を見ることができます(evenはjavasciptを支援しません!!)、また、サポート度の高いブラウザで先進的な機能を楽しむことができます. HTMLタグを設定することでjQuery Mobileの設定を完了するjQueryは主にHTML 5 data-*tagを通して様々なUIの設定を達成し、大まかな文法を認識すればjavascriptを1行書かずにappの雛形を迅速に構築することができる.JavaSriptに熱くないデザイナーや、UIのデザインについて頭が2人のエンジニアにとって、jQuery mobileの便利さは絶対に手放せません.
Hello World!
jQuery mobileの動作は簡単で、彼の主なプロセスには3つのステップが含まれています. HTML 5 documnt を宣言 include the jQuery mobile css,jQuery,jQuery mobile library(jQuery or google code CDN、または自分でdownloadこれらのファイルを自分のserverに置くこともできます) jquery mobileで定義された構文(data-roleなど)を使用してpage structure を定義する
簡単な例を次に示します.
いくつかのポイント:ファイルをHTML 5に宣言されたフォーマット headerの真ん中に,で必要なCSS&javascript library includeを に入れる data-role="page",data-role="header",data-role="content",data-role="footer"はjQuery Mobileが定義したtagsである.ここではHTML 5 custom data attributesのdata-*構文を使って、jQuery Mobileのどちらがheader、content、footerなのかをそれぞれ教えています.その中でpage&contentは必ずありますが、header&footerは自分のニーズに合わせています.
ブラウザでこのファイルのアドレスを入力すると、次の画面が表示されます.
jquery mobile sample 1 on android
jquery mobile sample 1 on ipad
List View
List Viewは、携帯電話でよく使われるUIといえ、上図のような顔をしています.jQuery MobileでこのようなUIを実装するのは簡単で、一般的なHTMLでよく使われるorderedリスト(
この文章では、jQuery Mobileの運営の哲学、jQuery Mobileが提供するツール、そして実際の例でjQuery Mobile、jQuery Mobileが提供する様々な便利な機能を簡単に紹介します.
jQuery Mobileを知る
jQueryを使ったことがある人はきっとjQueryで有名な「write less,do more」を愛しているに違いない.jQueryを通していれば、悩ましいブラウザ間の問題を心配する必要はありません.しかし、手持ち式の装置が普及するにつれて、閲覧機の問題は携帯電話よりもPCよりも深刻になっていることが分かった.携帯電話ではブラウザだけでなく、OSの違いもPCよりも深刻だ.そして、2010年の10月にjQueryはついにみんなの期待の下でjQuery Mobileを発売しました.この簡単で使いやすいframeworkを使えば、すぐにdeviceにまたがるmobile appilcationを作ることができます.jQuery Mobileのいくつかの重要なfeaturesには、次のものが含まれます.
Hello World!
jQuery mobileの動作は簡単で、彼の主なプロセスには3つのステップが含まれています.
簡単な例を次に示します.
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Tutorial on Codeforest.net</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Title</h1>
</div><!-- /header -->
<div data-role="content">
<p>The content</p>
</div><!-- /content -->
<div data-role="footer">
<h4>The Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
いくつかのポイント:
ブラウザでこのファイルのアドレスを入力すると、次の画面が表示されます.
jquery mobile sample 1 on android
jquery mobile sample 1 on ipad
List View
List Viewは、携帯電話でよく使われるUIといえ、上図のような顔をしています.jQuery MobileでこのようなUIを実装するのは簡単で、一般的なHTMLでよく使われるorderedリスト(
- +
- )、またはunorderedリスト(
- +
- )、そして
- にdata-role="listview"を加えればよい.上図のUIのように、HTMLは非常に簡単です.
... <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b"> <li data-role="list-divider">Overview</li> <li><a href="docs/about/intro.html">Intro to jQuery Mobile</a></li> <li><a href="docs/about/features.html">Features</a></li> <li><a href="docs/about/accessibility.html">Accessibility</a></li> <li><a href="docs/about/platforms.html">Supported platforms</a></li> </ul> ...
いくつかのポイント: - にdata-role="listview"を加える
- data-inset="true"は主にこのlistviewが文の真ん中に現れるかどうかを指定します.もしそうなら、jQuery Mobileは自動的に一番上のitemと一番下のitemに円弧の辺 を加えます.
- リストをブロックに分割したい場合は(HTMLの
- Overview Advanced List View
- Nested list:listを多層構造にすると、jQuery Mobileは自動的にlist viewに上下層を切り替える効果を加える
- List views with thumbnailsはliの最初にを加えると、jQuery Mobileは自動的に最左に縮図として配置されます.例えば:
<ul data-role="listview"> <li><a href="index.html"> <img src="images/album-bb.jpg" /> <h3>Broken Bells</h3> <p>Broken Bells</p> </a></li> ... </ul>
- List views with Count Bubbles
- にを追加すると、jQuery Mobileはbubbleにコンテンツパッケージを各itemの一番右側に置きます.例えば、
<h2 style="padding: 1em 0;">A list with count bubbles</h2> <ul data-role="listview" data-inset="true"> <li><a href="#">SuperWidgets</a> <span>14</span></li> <li><a href="#">MegaWidgets</a> <span>0</span></li> <li><a href="#">WonderWidgets</a> <span>327</span></li> </ul>
Navigation Bar - をdata-role="navbar"のdivに入れると、すぐにnavigation barを作ることができますが、もっと簡単ですか?
<div data-role="footer"> <div data-role="navbar"> <ul> <li><a href="#" data-icon="grid" data-iconpos="top">Summary</a></li> <li><a href="#" data-icon="star" data-iconpos="top">Favs</a></li> <li><a href="#" data-icon="gear" data-iconpos="top">Setup</a></li> </ul> </div><!-- /navbar --> </div><!-- /footer -->
いくつかのポイント: - jQuery Mobileにはもともと内蔵のiconがたくさんありますが、data-icon="xxx"でnavigation barにiconを追加し(詳細はiconリストを参照)、data-iconposでiconの位置を指定し(left,right,top,bottom,notext,defaultをleftに設定)
- もしあなたが望むなら、少し多くの設定をすれば、あなたも自分のicon:)
<style type="text/css"> .nav-glyphish-example .ui-btn .ui-btn-inner { padding-top: 40px !important; } .nav-glyphish-example .ui-btn .ui-icon { width: 30px!important; height: 30px!important; margin-left: -15px !important; box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: none !important; border-radius: none !important; } #chat .ui-icon { background: url(glyphish-icons/09-chat2.png) 50% 50% no-repeat; background-size: 24px 22px; } #email .ui-icon { background: url(glyphish-icons/18-envelope.png) 50% 50% no-repeat; background-size: 24px 16px; } #login .ui-icon { background: url(glyphish-icons/30-key.png) 50% 50% no-repeat; background-size: 12px 26px; } #beer .ui-icon { background: url(glyphish-icons/88-beermug.png) 50% 50% no-repeat; background-size: 22px 27px; } #coffee .ui-icon { background: url(glyphish-icons/100-coffee.png) 50% 50% no-repeat; background-size: 20px 24px; } #skull .ui-icon { background: url(glyphish-icons/21-skull.png) 50% 50% no-repeat; background-size: 22px 24px; } </style> <div data-role="footer" class="nav-glyphish-example"> <div data-role="navbar" class="nav-glyphish-example" data-grid="d"> <ul> <li><a href="#" id="chat" data-icon="custom">Chat</a></li> <li><a href="#" id="email" data-icon="custom">Email</a></li> <li><a href="#" id="skull" data-icon="custom">Danger</a></li> <li><a href="#" id="beer" data-icon="custom">Beer</a></li> <li><a href="#" id="coffee" data-icon="custom">Coffee</a></li> </ul> </div> </div>
を使うことができます. - タッチで設計されたUI(Touch input optimized controls)は、タッチ操作が多いportable deviceでフォームが簡単に操作できるように、jQuery Mobileが多くのフォームの要素をタッチ操作が良い形式に自動的に変換する(完全なForm elementsリストを参照).jQuery Mobileで自動的に変換したくないUIは、要素にdata-role="none"を加えることで、最適化前の形式 に戻ります.
- もともとFormにあったtext,textarea,radio,checkbox,select menus,jQuery Mobileの他にもSlider,Flip,DatePicker(まだ開発中らしい) が提供されています
- フレックスフォームプレゼンテーション(Dynamic form layout)jQuery Mobileは、そのappを利用して異なるプラットフォームにportできるように、異なるスクリーン幅に対して異なるlayoutを行い、その最も明らかな例はフォーム(Form)である.スクリーンが狭い(~480 px)場合、jQuery mobileはlabelをblock elementと見なします.広いスクリーンなら2-column layoutに見えます.この便利な機能を利用するには、data-role="fieldcontain"のdivに入れればいいです.例えば、
<div data-role="fieldcontain"> <label for="name">Text Input:</label> <input type="text" name="name" id="name" value="" /> </div>
Summary - How to Build an RSS Reader with jQuery Mobileの簡単で分かりやすい授業です.jQuery mobile List viewを使用し、Yahoo!YQLは簡単なRSS reader を実装します.
- jQuery Mobile Framework–A Forms Tutorial 1つのフォームのプログラムを使用してjQuery mobileがAjaxとserverエンドプログラムの典型的な直列接続 でどのように使用されるかを示します.
- jQuery Mobile: What Can It Do for You? very detailed explaination for different components of jQuery Mobile
List Viewには様々なバリエーションがあり、詳細な説明はjQuery MobileのList viewsの説明を参照してください.ここでは、よく使われる3つの変化を簡単に紹介します.
justは- &
Form
jQuery Mobileはmobile appを開発する多くのツールを提供しています.この文章では、jQuery Mobile Progressive Enhancementが異なる装置に異なるツールを提供する哲学、jQuery mobileが設定したスケジュールを知っていること、jQuery Mobileが提供するツールを知っていること、list view、navigation bar、form elementsなどを簡単に認識しました.jQuery mobileの利便性を実感してもらいたいので、一緒に「write less,do more」に行きましょう
Reference
- )、そして