■補講 モバイルフレームワーク  本書で解説したHTML5をベースにしてiPhone/iPadやAndroidなどのモバイル機器(スマートフォン)のアプリケーションを作成することができます。これは、PhoneGapやTitaniumに代表されるモバイルフレームワークを使用することで可能になります。  主なモバイルフレームワークには以下のものがあります。以下の表の中でCoronaはLua言語を使用してアプリケーションを作成します。 --------------------------------- 【表】モバイルフレームワーク --------------------------------- ●Titanium  http://www.appcelerator.com/ ●PhoneGap  http://www.phonegap.com/ ●NimbleKit (iPhone専用)  http://www.nimblekit.com/ ●JSWaffle (Android専用)  http://d.aoikujira.com/jsWaffle/wiki/ ●Unity  http://unity3d.com/japan/ ●Corona  http://jp.anscamobile.com/corona/ ---------------------------------  モバイルフレームワークには、それぞれ特長があります。また、何ができるかという制限(制約)は必ず作成前に確認しておきましょう。後から機能を追加したくなっても、フレームワークによっては拡張性がないものがあるためです。拡張性があってもObjective-CやJavaなど他の言語で作成することになるので、プラグインが作成できるプログラマがいない場合には、しっかりと最初に機能を把握して何ができて何ができないかチェックしておきましょう。  上記の中でPhoneGapはWebサイト構築ソフトであるAdobe Dreamweaver CS5.5で使用することができます。慣れた作成ソフトでネイティブアプリを作成したい場合にはよいかもしれません。また、PhoneGapは既存のWebアプリケーションを、そのまま利用することができる便利なフレームワークです。  Titaniumでは既存のJavaScriptは、そのまま動かないことがあります。既存のWebアプリケーションを動かすよりも、新たに設計し作成した方がよいでしょう。  NimbleKitはiPhone専用で高速に動作します。iOSの機能(MapKitなど)も利用することができます。ただし、既存のWebアプリケーションにiOSの機能を組み込むには注意が必要になります。1画面でうまく収まるようなアプリにはよいでしょう。なお、拡張性はほとんどないので注意が必要です。  JSWaffleはAndroid専用です。作者は日本人であり、プラグイン(Javaを使って拡張)にも対応しています。Android用に既存のWebアプリケーションを移植する、Androidのデバイス機能を利用するにはよいでしょう。  Unityは使った事がないので分かりませんが、ゲームなどには有効なフレームワークのようです。  CoronaはJavaScriptではなくLua言語を使って作成します。動作速度が高速なのとiOSのMapKitなども使えるというメリットがあります。Lua言語はJavaScriptと昔のBASICをミックスしたような感じですので、JavaScriptが分かれば短時間で習得できるでしょう。Coronaはお金を払わないとMapKitなどは動作テストもできないので注意が必要です。iOSシミュレータ等では全てのコードが動作するわけではありません。あと、ちょっとコンパイル速度が遅いような感じがあります。  なお、NimbleKitとPhoneGapについては連載記事がありますので参考にしてみてください。 http://ascii.jp/elem/000/000/454/454105/