SHOEISHA iD

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

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

jQuery UIの標準ウィジェットを補完する高機能ライブラリ「Wijmo」の活用

WebアプリケーションにリッチUIをもたらす高機能JavaScriptライブラリ「Wijmo」(ウィジモ)

jQuery UIの標準ウィジェットを補完する高機能ライブラリ「Wijmo」の活用 第1回

  • このエントリーをはてなブックマークに追加

 本連載では、グレープシティが提供するJavaScriptライブラリ「Wijmo(ウィジモ)」について、サンプルとともに利用例を紹介します。連載初回となる今回は導入編として、Wijmoが実現する機能の概要やライセンス形態などを説明するとともに、Wijmoを用いてリッチなUIをシンプルな実装で実現する一例を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 一般にアプリケーション開発環境や実行環境において、標準で備える基本的な機能よりも高度な機能を備えるソフトウェア部品(コンポーネント)が有料で提供される場合があります。開発者はこれらのコンポーネントを活用することで、より少ない工数で品質の高いアプリケーションを作成することができます。グレープシティは.NETやJavaなどの環境に向けてこのようなコンポーネントを提供しています。

 今回紹介する「Wijmo(ウィジモ)」は、同社がHTML/JavaScript環境に向けて提供しているJavaScriptライブラリです。JavaScriptライブラリとして広く活用されているjQueryやjQuery UI、jQuery Mobileをベースにして、WebサイトやWebアプリケーションで活用できる高機能で多様なUI部品を利用できます。

 本記事ではこのWijmoについて、まず機能やライセンス形態など、利用にあたり必要な基礎知識を説明します。次に簡単なサンプルを用いて、jQueryをベースとしたシンプルな実装でWijmoの機能が利用できることを紹介します。

対象読者

  • WebサイトやWebアプリケーションのレベルをワンランク上げたい方
  • 短納期で高度なWebサイトの作成を求められている方
  • Webサイト作成において充実したサポートを求める方

Wijmoが提供する機能

 WijmoをWebサイトやWebアプリケーションに組み込むことで、40種類以上のウィジェット(UI部品)をHTML/JavaScriptで利用することが可能です。

図1 Wijmoが提供するウィジェットの数々
図1 Wijmoが提供するウィジェットの数々

 ウィジェットには入力内容を数字や日付に限定したテキストボックスやプログレスバー、カレンダー表示など、HTML標準で実現しようとすると一手間かかるUI部品がそろっています。Wijmoを利用することで、開発者はUIに関わる煩雑な実装から解放され、本質的な機能の実現に集中できます。

図2 数字専用テキストボックス、プログレスバー、カレンダーなどが利用可能
図2 数字専用テキストボックス、プログレスバー、カレンダーなどが利用可能

 また、フォトギャラリーや各種グラフなど、より単体で完成されたUI部品も利用が可能です。これらを利用することで、見栄えの良い画像やデータを利用者に提示できるようになります。

図3 Wijmoで実現した折れ線グラフ表示
図3 Wijmoで実現した折れ線グラフ表示

 さらに、Web画面上でスプレッドシート機能を提供するSpreadJSを用いることで、Excelのような使い勝手をWeb画面で実現できます。また、オプション機能となるExcel I/Oを利用することで、ExcelのデータをSpreadJSで直接操作することも可能です。

図4 Excelのようなスプレッドシート機能をWeb画面で実現するSpreadJS
図4 Excelのようなスプレッドシート機能をWeb画面で実現するSpreadJS

 これらWijmoのウィジェットはjQueryやjQuery UI、jQuery Mobileをその下敷きとしているため、jQueryの扱いを理解した開発者ならば、その延長線上でWijmoを使いこなすことができるようになっています。

Wijmoがサポートする環境

 Wijmoを利用するには、jQueryおよびjQuery UI(モバイル向けの場合はjQuery Mobile)の参照が必須となり、サポートブラウザは参照するjQuery、jQuery UI(またはjQuery Mobile)に準拠します。現行バージョンのWijmoはjQuery 1.9.1とjQuery UI 1.10.1(jQuery Mobile 1.4.0)を利用するため、サポートする環境(ブラウザ)は以下です。

  • Internet Explorer:SpreadJS以外は7以上、SpreadJSは9以上
  • Google Chrome:最新版およびその1バージョン前
  • Firefox:最新版およびその1バージョン前
  • Safari:5.1以上
  • Opera:最新版およびその1バージョン前、また12.1x
  • (モバイル向け)jQuery Mobile 1.4.0がサポートするモバイルブラウザ

 なお、後述するサンプルはWindows 7(64bit)、Internet Explorer 11で動作確認しています。

Wijmoのライセンス体系

 Wijmoはグレープシティが提供するソフトウェア製品のため、利用に先立ちライセンス体系を理解することが重要です。利用者はWijmoを利用するためのライセンスとして「オープンソースライセンス」と「商用ライセンス」のいずれかを選択できます。

 オープンソースライセンスはGNU GPLv3に基づいており、以下のいずれかの条件を満たしていれば、オープンソースライセンスのもと無料でWijmoを利用できます。

  • a)アプリケーションを配布しない場合
  • b)アプリケーション配布時にソースコードを公開し、かつ改変と再配布を無制限に許可できる場合

 なおオープンソースライセンスを選択した場合、グレープシティからのテクニカルサポートは提供されません。

 オープンソースライセンスを選択できない場合やテクニカルサポートを受ける必要がある場合は、商用ライセンスを購入することになります。Wijmoのラインナップには基本ウィジェットが利用できる「Wijmo Professional」、Professionalの機能に加えてSpreadJSが利用できる「Wijmo Enterprise」、EnterpriseにおいてExcel I/OとGUIのデザイナを利用するための追加オプション「Optional Pack for Wijmo Enterprise」があり、利用する機能の範囲に応じて購入が必要です。ライセンスや購入についての詳細は、グレープシティへ問い合わせてください。

表1 Wijmoのラインナップ
  Wijmo
Professional
Wijmo
Enterprise
Optional Pack for
Wijmo Enterprise
基本ウィジェット -
SpreadJS - -
SpreadJS
デザイナ & Excel I/O
- -
サポート

Wijmoを使ってみよう

 それでは、Wijmoを実際に使ってみましょう。今回は手始めにwijbarchartウィジェットを用いて棒グラフを表示させます。シンプルなサンプルの中にWijmoを利用する基本的な手順が含まれています。

[リスト1]Wijmoを利用した棒グラフのサンプル(wijmo_barchart.html)
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<head>
<title>Wijmoサンプル(棒グラフ)</title>

<!-- WijmoテーマCSS ...(1) -->
<link href="http://cdn.wijmo.com/themes/aristo/jquery-wijmo.css" rel="stylesheet" type="text/css" />

<!-- WijmoウィジェットCSS ...(2) --> 
<link href="http://cdn.wijmo.com/jquery.wijmo-pro.all.3.20141.34.min.css" rel="stylesheet" type="text/css" /> 

<!-- RequireJs ...(3) -->
<script type="text/javascript" src="http://cdn.wijmo.com/external/require.js"></script>

<!-- RequireJsにこのページで読み込むライブラリを設定 ...(4) -->
<script type="text/javascript">
    requirejs.config({
        baseUrl: "http://cdn.wijmo.com/amd-js/3.20141.34/",
            paths: {
                "jquery": "jquery-1.9.1.min",
                "jquery-ui": "jquery-ui-1.10.1.custom.min",
                "jquery.ui": "jquery-ui",
                "jquery.mousewheel": "jquery.mousewheel.min",
                "globalize": "globalize.min"
            }
    });
</script>

<script type="text/javascript">
// requireでwijbarchartの使用を宣言 ...(5)
require(["wijmo.wijbarchart"], function () {
  $(document).ready(function () {

    // 棒グラフの設定 ...(6)
    $("#wijbarchart").wijbarchart({
      // 数字のカンマ区切り設定
      chartLabelFormatString: "n0",
      axis: {
        y: {annoFormatString:"n0"},
      },
      // ツールチップ表示
      hint: {
        content: function () {return this.data.label + ': ' + Globalize.format(this.y, "n0");}
      },
      // タイトル
      header: {text: "2014年3月携帯電話純増数"},
      // グラフデータ
      seriesList: [
        {
          label: "全体",
          legendEntry: true,
          data: { x: ['SoftBank', 'KDDI', 'docomo'], y: [649500, 494600, 515500] }
        },
        {
          label: "モジュール",
          legendEntry: true,
          data: { x: ['SoftBank', 'KDDI', 'docomo'], y: [159400, 43200, 6400] }
        }
      ],
      // グラフ表示色
      seriesStyles: [
        {fill: "#5599ff", stroke: "#0066ff", opacity: 0.8},
        {fill: "#ffaacc", stroke: "#ff0066", opacity: 0.8}
      ],
    });
  });
});
</script>

</head>
<body>
<!-- グラフ表示領域 -->
<div id="wijbarchart" style="width: 480px; height: 320px">
</div>
</body>
</html>

 (1)(2)でWijmoに必要とされるCSSを設定しています。(3)(5)はJavaScriptのモジュールローダーRequireJsの設定で、Wijmoおよびライブラリのうち必要とされるもののみをロードすることでページの表示速度を向上させます。

 棒グラフの表示処理は(6)以下です。棒グラフの表示データや色などの定義を含むJavaScriptオブジェクトをメソッドの引数として与えることで、グラフをカスタマイズしています。これだけのシンプルな実装で、表示時アニメーションやマウスオーバー時のフロート表示を含むリッチな棒グラフが生成できます。

図5 リスト1で表示した棒グラフ。マウスオーバー時のフロート表示にも対応
図5 リスト1で表示した棒グラフ。マウスオーバー時のフロート表示にも対応

まとめ

 本記事では、グレープシティが提供するJavaScriptライブラリWijmoについて概要やライセンス体系を説明するとともに、サンプルを用いてシンプルな実装からリッチな機能を利用できることを紹介しました。次回以降は、Wijmoウィジェットの多彩な機能をより詳しく説明していきたいと思います。

参考資料

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

  • このエントリーをはてなブックマークに追加

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7736 2014/07/01 12:39

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング