今さら聞けないiOSシミュレータの使い方&機能まとめ

#はじめに
iOSシミュレータは、開発の初期やサンプルコードを動かす時によく使用しますが、知らない機能や使い方があったのでまとめてみました。

#iOSシミュレータ?
* Xcodeに付属
* アプリケーションのテスト用として設計されている。

##特徴

* 設計や初期のテストの間に、アプリケーションの主な問題点を発見できる。
* iOSシミュレータでしか使えない開発ツールでアプリケーションをテストできる。(位置のシミュレート、画面描画に関する問題点の発見などが可能)
* iOSデベロッパプログラムのメンバーになる前に、Xcodeでの開発方法やiOSの開発環境について学ぶことができる。(AppStoreから無料でダウンロードし、シミュレータ上でアプリを動作させることが可能)
*  Macがインターネットに接続されていれば、ウェブサイトのレイアウトや動作の確認にも使用できる。(iOSアプリ開発者でなくても使い道はある)

##シミュレータを使う

###1.Xcodeプロジェクトから直接起動し、実行する。
「Xcode scheme」ポップアップメニューからiOSシミュレータ(iPhone Retina (4-inch)など)を選択し、「Run」をクリックします。(プロジェクトがビルドされ、シミュレータが起動し、アプリケーションが実行されます。)
###2.単独で起動する
Xcodeを起動し、次のいずれかの方法で実行可能です。

* 「Xcode」>「Open Developer Tool」>「iOS Simulator」コマンドを実行する。 

* Controlキーを押しながらDock内の「Xcode」アイコンをクリックし、ショートカットメニューから「Developer Tool」>「iOS Simulator」を実行する。

##内蔵アプリ
シミュレータ内にインストールされたアプリは実機と同じように扱うことができます。
(App Storeから入手したアプリケーションはインストール出来ません。)
###設定アプリ
iOSシミュレータには実機と同様に「設定アプリ」が存在しますが、iOSシミュレータの設定画面はテストを意識したものになっています。キーボード、言語設定、アクセシビリティのみ設定を切り替えることができます。

###その他の標準アプリ

* Safari
* 写真
* 連絡先
* Game Center
* カレンダー (iOS 7のシミュレータのみ)
* マップ
* Newsstand
* Passbook (iPhoneのみ)

#シミュレータ上でのジェスチャ操作
実機のようにスムーズにはいきませんがマウスでジェスチャ操作をシミュレートできます。
>|(ジェスチャ)|(デスクトップアクション)|
>|:--------------|:----------------------------|
>|タップ |クリック。  |
>|タッチアンドホールド|マウスボタンまたはトラックパッドを長押し。|
>|ダブルタップ  |ダブルクリック。  |
>|ドラッグ  |ドラッグ  |
>|スワイプ  |ドラッグ  |
>|フリック(はじく  |素早くドラッグ。  |
>###2本指ドラッグ
>1. 2本指ドラッグを発生させようとする位置にポインタを置きます。
>2. Optionキーを押したままにします。
>3. 指でタッチする位置を表す円を、開始位置に移動します。
>4. Shiftキーを押したまま、円を目的の中心位置まで移動してからShiftキー を放すことにより、ピンチターゲットの中心点を移動します。
>5. Shiftキーとマウスボタンを押したまま、ドラッグしたい方向に円を描 くように動かした後、Shiftキーとマウスボタンを離します。

>###ピンチ
>1. ピンチを発生させようとする位置にポインタを置きます。
>2. Optionキーを押したままにします。
>3. 指でタッチする位置を表す円を、開始位置に移動します。
>4. Shiftキーを押したまま、円を目的の中心位置まで移動してからShiftキー を放すことにより、ピンチターゲットの中心点を移動します。
>5. マウスボタンを押したまま、その円内から終了位置まで移動した後、 Optionキーを離します。

>###回転  
>1. 回転を発生させようとする位置にポインタを置きます。
>2. Optionキーを押したままにします。
>3. 指でタッチする位置を表す円を、開始位置に移動します。
>4. Shiftキーを押したまま、円を目的の中心位置まで移動してからShiftキー を放すことにより、ピンチターゲットの中心点を移動します。
>5. マウスボタンを押したまま、その円を終了位置まで回転した後、Option キーを離します。 


#各メニューについて
Xcode5に付属しているiOSシミュレータ(バージョン7.0)で増えた機能には(New)をつけてみました。
##「ハードウェア」メニュー
### デバイス
シミュレータ上で動作させるデバイス及びOSを選択できます。
### 反時計回りに回転、時計回りに回転
デバイスの回転をシミュレートできます。デバイスの向きを変えた時の動作を確認できます。
### シェイクジェスチャー
デバイスを振る操作をシミュレートできます。
### ホーム、ロック
ホーム画面及びロック画面へ切り替えることができます。アプリがバックグラウンドに移行した時の動作をシミュレートしたい時に役に立つでしょう。

### メモリ警告をシミュレート
最前面にあるアプリケーションにメモリ不足の警告を送信できます。
### 着信ステータスバーを切り替える
通話中、ナビゲーション実行中、録音中などの状態ではステータスバーが２倍の高さになりますが、この状態をシミュレートできます。ステータスバーの高さが２倍になった際のユーザインターフェイスを確認できます。
### ハードウェアキーボードをシミュレート
「ハードウェアキーボードをシミュレート」をオンにすることで、キーボードドックや無線キーボード等のハードウェアキーボードをシミュレートできます。(「ハードウェアキーボードをシミュレート」をオンになっている状態では、ソフトウェアキーボードが非表示になります。)
### iOSでOSXと同じキーボードレイアウトを使用 (New)
iOSシミュレータ用のキーボードとして、Macのキーボード配列に最も近いものが自動的に選択されます。
### テレビ出力
テレビ出力をシミュレートできます。

##「デバッグ」メニュー
### 最前面のAppでスローアニメーションを切り替える
アニメーションの速度を落とし、アニメーションに問題がないか確認できます。

### ブレンドレイヤー (カラー)
レイヤが重なり合っている部分を目立つように表示できます。(レイヤが重なっている部分は赤くなります。) 例えばUILabelの背景色を透明(clearColor)にしている場合も赤くなります。

赤い部分をできるだけ減らすことで、描画性能を向上させることができます。

### コピーイメージ (カラー)
「Core Animation」がコピーした画像の上に青色のオーバーレイが表示されるようになります。

### 不揃いのイメージ (カラー)
ビューのピクセル位置が小数点以下の単位でずれている場合にカラーのオーバーレイを表示させることができます。

### オフスクリーンレンダリング (カラー)
オフスクリーンで描画した領域に、マゼンタをオーバーレイして表示します。

### システムログを開く... (New)
コンソール.appを開くことができます。

### iCloud同期をトリガー (New)
iCloud同期機能のテストが可能です。(シミュレータの設定アプリでiCloudにサインインしておく必要あり。)複数デバイスにまたがるテストも可能であり、実機でのテストを行う前にシミュレータでのテストを行うと良いようです。
なお、iCloudのテストが可能なのはiOS 7.0をシミュレート時のみのようです。

### 位置 
経度緯度を入力し、特定の場所にいるようシミュレートすることができます。

##「ウィンドウ」メニュー
### 表示サイズ
Macの画面上に表示するシミュレータ画面のサイズを変更できます。

### モーションコントロール  (New)
(未確認です)

#その他
* iOSシミュレータには各種のコピー/ペースト機能が組み込まれており、シミュレータ内、およびシミュレータとMacの間で実行できます。
* 「command+S」でスクリーンショットを保存できます。「control+command+c」でスクリーンショットをペーストボードにコピーできます。

##シミュレータのバージョン
Xcodeのバージョンによって付属するiOSシミュレータのバージョンも異なります。

|Xcodeのバージョン|付属するiOSシミュレータのバージョン|
|:--------------|:----------------------------|
|Version 4.6.3  |バージョン 6.0                 |
|Version 5.0.2  |バージョン 7.0                 |

#参考情報
iOSシミュレータ ユーザーガイド
https://developer.apple.com/jp/devcenter/ios/library/documentation/iOSSimulatorUserGuide.pdf