SHOEISHA iD

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

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

「Dojo道場」~実用アプリ構築のためのベストプラクティス

Dojo道場 ~ 第10回「Dojo 最新動向 - Dojo 1.6」

「Dojo道場」~実用アプリ構築のためのベストプラクティス

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

 これまで、オープンソースのJavaScriptライブラリ「Dojo Toolkit」のベストプラクティスを解説してきた本連載。今回からは、Dojoの最新動向を数回に分けて紹介します。

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

はじめに

 2011年12月にDojoの1.7がリリースされました。1.7の目玉は、dojox.mobileによるiOSやAndroidなどのモバイル・デバイスのサポートの拡張、および、AMD(非同期モジュール定義=Asynchronous Module Definition)のフル・サポートなどがあります。

 モバイルサポートやAMDはDojo 1.6からサポートが始まり、1.7で本格的な対応がされています。このシリーズでは1.6の更新内容について触れていませんでしたので、多少旧聞になってしまいますが、今回の記事はDojo 1.6の更新内容をざっとおさらいしておきたいと思います。

 Dojo 1.6.0は2011年2月にリリースされました。その直後の3月に、Firefox 4.0とFirefox 4.0とInternet Explorer 9が立て続けにリリースされ、これらをサポートしたDojo 1.6.1が5月にリリースされています。

非同期モジュール定義(AMD)

 非同期モジュール定義(Asynchronous Module Definition、以降AMD)はその名の通り、非同期にロード可能なモジュールを定義する仕組みのことで、CommonJS標準として提案されています。Dojoがこの標準に準拠することにより、他のAMD準拠のライブラリとの間の相互利用が可能となります。

 Dojoでは、以前よりdojo.provide()によるモジュール定義、およびdojo.require()による動的なモジュールのロードを実現していました。このdojo.require()によるモジュールのロードは同期です。すなわち、1)モジュールを含んだJavascriptファイルがネットワーク越しにロードされ、2)読み込まれ、3)評価される、という一連の処理が同期で行われるため、この間処理はブロックされます。これは、モジュールのサイズが大きくなればなるほど、パフォーマンスに与える影響が大きくなることを意味します。

 AMDではdefine()関数でモジュールを定義し、require()関数でモジュールをロードすることになります。この変更がDojo 1.6で導入されはじめ、Dojo 1.7でフルサポートとなります。今後dojo.provide()およびdojo.require()の代わりにこれらの新しい関数を使うことが推奨されており、Dojo 1.7では古い関数はdeprecatedとなるので、今後Dojo 1.6/1.7以降で新しいモジュールを開発する場合は、AMD方式の採用を検討したほうが良いでしょう。ただし、少なくともDojo 1.7ではまだ互換性維持のため、古い関数が使えます。

 AMDの詳細に関しては次回以降の記事でお届けする予定です。

補足

 実は、Dojoは以前よりXDローダーと呼ばれる、クロスドメインをサポートするためのローダーを提供しており、これを使うと副次的に非同期ロードの恩恵を受けることができます(『Dojo道場 ~ 第4回「ビルドでパフォーマンス・チューニング(3)」XDローダー』参照)。Dojo 1.6でのAMDサポートはこれとは別の方法で、より標準的なアプローチをとっています。

モバイル(dojox.mobile)

 dojox.mobileはDojoベースのモバイルWebアプリケーションを実現するためのウィジェット群です。iOS(iPhone/iPad)、Android、Blackberry上のWebブラウザ(例えばiOS上のSafari)で動作するのですが、それぞれのOSのネイティブのユーザー・インターフェースとそっくりな見た目、エフェクト、操作性を持つアプリケーションを、非常に簡単に実装できます。

 ネイティブのアプリケーションの場合、複数のOSをサポートするには、同じ仕様をそれぞれのプラットホーム上で実装しなければなりませんが、dojox.mobileを使ったWebアプリケーションの場合、1つのアプリケーションを実装すればそれぞれのプラットホームで動かすことができます。見た目はスタイルシートで切り替えるだけです。

図1. dojox.mobile
図1. dojox.mobile

 dojox.mobileはDojo 1.5で実験的に実装が始まり、Dojo 1.6で基本的な部品をそろえ、Dojo 1.7でさらに大きく進化しました。ここ最近のスマート・フォンやタブレットの普及に伴い、現在Dojoとしても最も力を入れている分野の1つで、開発者の注目度も高まっています。こちらも、詳細に関しては次回以降の記事でお届けします。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
HTML5準拠

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

  • このエントリーをはてなブックマークに追加
「Dojo道場」~実用アプリ構築のためのベストプラクティス連載記事一覧

もっと読む

この記事の著者

井上 基晴(イノウエ モトハル)

日本アイ・ビーエム株式会社 ソフトウェア開発研究所。現在は主にDojoを用いた製品開発を担当。

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6419 2012/03/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング