SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

目指せ、定時退社! スマートなエンジニアのためのお役立ちツール

Monacaで作るHTML5/JavaScriptでのハイブリットモバイルアプリ(その1)

目指せ、定時退社! スマートなエンジニアのためのお役立ちツール(3)

アプリ画面の全体構成

 jQuery Mobileでは、div要素にdata-role属性を指定することでその要素の役割(なにを表しているのか)を記述できます。このdata-role属性は、HTML5の独自データ属性で、例えば、data-role属性に"page"を指定するとアプリの画面を定義したことになります。

 タイトルなどヘッダ情報にはdata-role属性に"header"、フッタ情報には"footer"を指定します。そうすると、ヘッダ上とフッタを画面の上下に自動で配置してくれます。

 アプリで表示するコンテンツはrole属性に"main"、class属性に"ui-content"を組み合わせたdiv要素内に配置します。

 図で表すと、次のとおりです。

jQuery Mobileの画面基本構成
jQuery Mobileの画面基本構成

 メニューを追加したいときは、div要素のdata-role属性に"navbar"を指定します。

 また、ヘッダやフッタの位置は固定されたほうが見栄えが良いので、その場合はdata-positionを"fixed"に設定します。

 次のプログラムは、mainPageというIDの画面上下にヘッダとフッタを固定で配置し、ヘッダに「ログイン」と「ヘルプ」の2つのメニューを表示したときの例です。

ヘッダとフッタの指定(index.htmlの抜粋)
<div id="mainPage" data-role="page">
  <div data-role="header" data-position="fixed">
    <h3>Monacaでモバイルアプリを作ろう</h3>
    <div data-role="navbar">
      <ul>
        <li><a href="#" class="ui-btn-active">ログイン</a></li>
        <li><a href="#">ヘルプ</a></li>
      </ul>
    </div>
   </div>
  
  <div role="main" class="ui-content">  
  </div>

  <div data-role="footer" data-position="fixed">
    WINGS Project
  </div>
</div>

UIコンテンツの配置

 モバイルアプリでは入力フィールドやボタンを指で操作することが多いので、クリックしやすいUIを配置するとアプリの操作性が高くなります。

 ここでは、サンプルとして簡単なユーザ認証フォームを作成します。ボタンのclass属性の値は"ui-btn"に設定します。

ボタンや入力ボックスの配置(index.htmlの抜粋)
<div role="main" class="ui-content">  
  <div class="ui-field-contain">
    <label for="username">ID:</label>
    <input type="text" id="username">
  </div>
  <div class="ui-field-contain">
    <label for="password">パスワード:</label>
    <input type="password" id="password">
  </div>
  <div class="ui-field-contain">
    <button id="loginBtn" class="ui-btn">ログイン</button>
    <button id="cancelBtn" class="ui-btn">キャンセル</button>
  </div>
</div>
認証フォーム
認証フォーム

 ボタンや入力フィールド以外にも、jQuery MobileにはいろいろなUIコントロールがあります。

 すべて、指で操作しやすいよう大きめで分かりやすいデザインになっています。こちらのサイトにデモがありますので、使いたいUIコントロールがあればソースコードと併せて確認してみてください。

画面を確認しよう

 Monacaでは、作成した画面を確認することができます。ファイルメニューの[プレビュー]を選択すると画面の確認画面が出ますので、レイアウトやバランスを確認してください。

Monacaでのプレビュー
Monacaでのプレビュー

おわりに

 本記事では、AndroidアプリやiOSアプリなどのモバイルアプリの開発がはじめての方に、普段使い慣れたHTML5/JavaScriptを使ったハイブリットアプリケーションを作成する方法をご紹介しました。今回は画面の作成まで終わりましたので、次回はこの画面を使ってユーザ認証機能を作成する方法をご紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
目指せ、定時退社! スマートなエンジニアのためのお役立ちツール連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7633 2014/03/14 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー