Sencha Touch2＋Cordova／PhoneGapの開発環境を作る その３

[前回](http://qiita.com/munyu11/items/fdd4f4e87fc99d8af378)は、Cordova／PhoneGapのスケルトンアプリを生成しブラウザで動作確認を行った。
今回は、それぞれのプラットフォームを追加し、シミュレータで動作確認をする。

##1 事前準備

Cordova／PhoneGapプロジェクトをAndroid用にビルドし、シミュレータで動作させるためには、次のものが必要になる。

* JDK1.7
* Apache Ant

[その1](http://qiita.com/munyu11/items/2d52dd60ff1951752dd0)でインストールしたJREはただの実行環境でありコンパイルには使えないため、改めてインストールする必要がある。
また、Cordova／PhoneGapプロジェクトのビルドにはビルドツールとしてApache Antを使用するため、こちらも必要となる。

### JDKのインストール

[公式サイト](http://www.oracle.com/technetwork/java/javase/downloads/index.html)から **Java SE 7u55**(2014.5.12現在)の **JDK**ダウンロードページを開き、環境に合わせたインストールファイルをダウンロードする。

#### Windowsの場合

ダウンロードした.exeファイルを実行し、インストーラに従ってインストールする。

#### Macの場合

ダウンロードした.dmgファイルをマウントし、中のインストーラを実行する。

#### 環境変数とパスの設定（Windows、Mac共通）

インストールが完了したら、以下の環境変数を追加する。
　変数名＝JAVA_HOME　値＝インストールしたJDKディレクトリのパス

また、インストールしたJDKディレクトリ中の`bin`ディレクトリにパスを通す。

### Apache Antのインストール（Windowsのみ）
Macには標準でApache Antがインストールされているが、Windowsにはインストールされていないので下記の手順に従ってインストールする必要がある。

* [公式のダウンロードページ](http://ant.apache.org/bindownload.cgi)からバイナリーのzipファイルをダウンロードする。
* ダウンロードしたzipファイルを展開し、展開したディレクトリを任意の場所へ設置する。
* 次の内容で環境変数を追加する。<br>　変数名＝ANT_HOME　値＝設置したディレクトリへのパス<br>　例）C:\bin\apache_antとして設置した場合、ANT_HOMEの値はC:\bin\apache_antとなる。
* 設置したディレクトリ内のbinディレクトリへパスを通す。<br>　例）設置場所が上記の場合、環境変数Pathに%ANT_HOME%\binを追加する。

パスを通した後、黒い画面で`ant -version`を実行し、バージョン情報が表示されれば完了となる。

##2 Androidシミュレータのインストールと設定

### ダウンロードとインストール

下記の手順に従い、Android SDKをインストールする。

* [公式のダウンロードページ](http://developer.android.com/sdk/index.html)を開き、「Download the SDK」のリンクをクリックする。
* ライセンス許諾のチェックと、自分の環境に合わせて32bitか64bitのどちらかをチェックし、ダウンロードボタンをクリックする。
* ダウンロードが完了したらzipファイルを展開し、任意の場所へ設置する。
* 設置したディレクトリ→sdkディレクトリを開き、`platfom-tools`と`tools`ディレクトリが存在するのを確認したら、その2箇所へパスを通す。

パスを通した後、黒い画面で`android`コマンドを実行し、Android SDK Managerが起動したらインストールは完了。
続いて、SDKライブラリのインストールを行う。

### SDKライブラリのインストール

> **※プロキシを通してネットへ接続している場合**
> 先にSDK Managerの`Tools`メニューから`Options...`を選択し、プロキシサーバの設定をしておくこと。

まず「Tools」の中から「Android SDK Tools」、「Android SDK Plarform-tools」、「Android SDK Build-tools」の最新版のStatusが「Installed」となっている事を確認する。
「Not Installed」となっている場合はチェックをする。

次に、任意でAndroid各バージョンの「SDK Platform」と「ARM EABI v7a System Image」をチェックする。
今回は、Android 4系（API 14以降）全てをチェックした。

最後に「Install *n* Package...」ボタンをクリックすると、ダウンロードとインストールが始まる。
※ *n* はチェックした数によって異なる。
![Android_SDK_Manager.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/e37622c5-92f7-99c9-9227-fdbd3b3955b1.jpeg)

最後に、シミュレータ（AVD）の設定を行う。

### シミュレータ（AVD）の設定

SDK Managerの「Tools」メニューの中から「Manage AVDs...」を選択すると、「Android Virtual Device Manager」が起動する。
初めて起動した時は何も登録されていないので、「New...」ボタンをクリックして仮想デバイスの作成画面を開く。
作成画面の中で必須項目がいくつかあるが、「AVD Name」に任意の名前を入力し（名前の中にスペースを含めることはできない）、「Device」の中から任意のものを選択すると、あらかたの項目はプリセット値が自動的に設定される。
後は「Skin」の項目の中から任意のものを選択し、必要に応じて残りの項目を設定していけばよい。（※もちろんプリセット値を変更してもよい。）
最後に「OK」をクリックして、仮想デバイスの作成は完了。
![Create_AVD.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/2576acf2-07c8-d63e-9c85-1a2a5c44f207.jpeg)

Android Virtual Device Managerに設定した名前で仮想デバイスが追加されているはずである。
![AVD_Manager.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/0733598d-aa7b-01a1-b1c0-8074802081a1.jpeg)

なお、作成した仮想デバイスを選択し、「Start...」をクリックするとシミュレータが起動する。（起動するまで、結構時間がかかる）
![Androidシミュレータ.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/0239b8b9-38b9-0838-0cfe-3966a801ce18.jpeg)

##3 iOSシミュレータのインストールと設定（Macのみ）

まずはXcodeをインストールする。
※前回、Homebrewのインストールする時にXcodeをインストールした場合は不要。

Xcodeのインストールが完了したら、黒い画面で下記のコマンドを実行する。

```
sudo npm install -g ios-sim
```

`ios-sim`を実行し、デバイスのシミュレータが表示されれば完了となる。

--------

前置きがだいぶ長くなってしまったが、ようやく目的のシミュレータによる動作確認に入ることができる。

--------

##4 Cordovaの動作確認

前回作成したCordovaプロジェクトは、そのままではシミュレータで動作させることができない。
まずは、プロジェクトにデバイスのプラットフォームを追加してやる必要がある。
プラットフォームの追加は黒い画面を開き、Cordovaプロジェクトのトップディレクトリへ移動して下記のコマンドを実行する。

```
cordova platform add android
```

［Windowsでの実行例］
![Cordovaプラットフォーム追加.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/e838b9db-4490-b042-a175-407ad0da9849.jpeg)

プラットフォームの追加が正常に終了していれば、Cordovaプロジェクトのトップディレクトリ配下の`platforms`ディレクトリ内に追加したデバイスのディレクトリが追加されているはずである。
![Cordova_androidディレクトリ.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/aa95d8a9-e376-bbfb-c112-583a063ba041.jpeg)

プラットフォームを追加したら、次のコマンドを実行することでビルドからシミュレータの起動、シミュレータ内でのアプリの実行までしてくれる。

```
cordova emulate android -d
```

［Androidシミュレータの表示］
![Cordova動作確認onシミュレータ.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/8391f734-9575-9b44-0c67-29f191fb9931.jpeg)

なお、プラットフォームの追加、シミュレータの表示確認はAndroidで行ったが、iOSの場合は各コマンドの`android`を`ios`へ変えてやればよい。ただし、当然のことながらMacでしか動作しない。

##5 PhoneGapの動作確認

PhoneGapプロジェクトもCordovaと同様にプラットフォームを追加してやる必要がある。
プラットフォームの追加は黒い画面を開き、PhoneGapプロジェクトのトップディレクトリへ移動して下記のコマンドを実行する。

```
phonegap install android
```

［Windowsでの実行例］
![PhoneGapプラットフォーム追加.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/6dc64976-8278-251b-ce01-239048a679df.jpeg)

ビルドからシミュレータ内でのアプリの実行までは、下記のコマンドにて行う。

```
phonegap run android
```

[Androidシミュレータの表示]
![Phonegap動作確認onシミュレータ.jpg](https://qiita-image-store.s3.amazonaws.com/0/42834/fe9ead55-0a84-3d0d-6aae-bc22f59991fd.jpeg)

iOSで確認したい場合は、Cordovaと同様に`android`を`ios`へ変えてやればよい。

--------
長い前置きを乗り越え、これでようやくCordova／PhoneGapで各デバイス用のスケルトンアプリを作成できることが確認できたと言える。
次回はいよいよ最終回。Sencha Touch2とCordova／PhoneGapを連携させ、デバイス固有の機能を少し使ってみるところまで書く予定。

**2014.06.25追記**
だいぶ間が開いたけど、[その４](http://qiita.com/munyu11/items/5d677ba2dd653512bf62)を書きました。