シミュレータの概要
シミュレータ(Xcodeに付属)は、iPhoneやiPad、Apple Watchのユーザインターフェイスを、Macコンピュータ上のウインドウに表示します。キーボードやマウスを使って、タップやデバイスの回転、その他のアクションをシミュレートできるようになっています。
この章ではシミュレータの基本的な使い方を紹介します。自作のiOSアプリケーションを用意し、実際に使ってみてください。適当なアプリケーションがなければ、『HelloWorld』サンプルコードを利用してもよいでしょう。 シミュレータの詳しい操作方法や、これを使ってアプリケーションをテスト、デバッグする手順については、次章以降を参照してください。
Xcodeからシミュレータにアクセスする
Xcodeからシミュレータを利用する方法は2通りあります。シミュレータ上でアプリケーションを実行するやり方と、シミュレータを単独で(アプリケーションを実行することなく)起動するやり方です。
iOSアプリケーションを実行する
シミュレータ上でアプリケーションの動作をテストするためには、Xcodeプロジェクトから直接、シミュレータ上で起動、実行するのが簡単でしょう。シミュレータ上でアプリケーションを実行するには、iOSシミュレータ(iPhone 6 Plus、iPad Air、iPhone 6 + Apple Watch - 38mmなど)をXcodeスキームのポップアップメニューから選択し、「Run」をクリックします。Xcodeはプロジェクトをビルドし、Macの画面上でシミュレータを起動した上で、最新版のアプリケーションを実行します(図1-1を参照)。
watchOSアプリケーションを実行する
WatchKitアプリケーションを実行するには、XcodeスキームポップアップメニュからiOSデバイスとwatchOSデバイスの組み合わせを選択します。たとえば、iPhone 6とペアリングされた38mmウォッチのアプリケーションを実行するには、スキームのポップアップメニューから「iPhone 6 + Apple Watch - 38mm」を選択します。
WatchKitターゲットを実行すると、iOSデバイスとwatchOSデバイスに1つずつ、合計2つのシミュレータが起動します。図1-2に、iPhone 6と42mmウォッチを2つのシミュレータで実行している様子を示します。
tvOSアプリケーションを実行する
tvOSアプリケーションを実行するには、XcodeスキームのポップアップメニューからtvOSデバイスを選択します。tvOSターゲットを実行すると、図1-3に示すように、シミュレート対象の新しいApple TVデバイスでアプリケーションの最新バージョンが開きます。
シミュレータを単独で起動する
アプリケーションを実行せず、シミュレータを単独で起動したいこともあります。デバイスのホーム画面からアプリケーションを適切に起動できるかテストする、あるいはシミュレート対象iOSデバイス上でSafariを起動し、ウェブアプリケーションをテストする場合に有用です。
アプリケーションを実行せずにシミュレータを起動するには
Xcodeを起動します。
次のいずれかを実行してください。
「Xcode」>「Open Developer Tool」>「Simulator」コマンドを実行する。
DockでControlを押しながらXcodeアイコンをクリックし、ショートカットメニューから「Open Developer Tool」>「Simulator」を選択する。
アプリケーションを実行せずにwatchOSシミュレータを起動するには
Xcodeを起動します。
次のいずれかを実行してください。
「Xcode」>「Open Developer Tool」>「Simulator(watch OS)」コマンドを実行する。
DockでControlを押しながらXcodeアイコンをクリックし、ショートカットメニューから「Open Developer Tool」>「Simulator(watchOS)」を選択する。
シミュレータが起動し、直近に使ったシミュレート対象デバイスのホーム画面が現れます。
インストール済みアプリケーションを表示する
ホーム画面には、 シミュレーション環境にインストール済みのアプリケーションがすべて現れます。シミュレータのホーム画面に、アプリケーションからアクセスする方法は2通りあります。
Command-Shift-Hキーを押す。
「Hardware」>「Home」を実行する。
インストール済みアプリケーションを使って、ユーザとの対話機能をテストしてみましょう。たとえばゲームをテストする場合、Game Centerが正しく使われているかどうか、シミュレータ上で確認できます。
iOSデバイスのホーム画面
iOSデバイスのホーム画面と同様、シミュレータのiOSホーム画面も複数のページから成ります。「Home」ボタンを押す(または「Hardware」メニューでホーム画面に切り替える)と、ホーム画面の2ページ目が現れます。先頭ページ(インストール済みアプリケーションが並ぶ画面)に切り替えたいときは、シミュレータ画面上で右にドラッグし、先頭のホーム画面までスワイプしてください。
ホーム画面には、シミュレータにロード済みのアプリケーションがすべて並んでいます。「iOSデバイスのホーム画面」を参照してください。
ここに示したホーム画面上のアプリケーションは、iOSデバイスのシミュレーション環境に特有のものです。「Passbook」や「Health」はiPhoneでしか動作しないので、旧デバイス、サポート外デバイスのシミュレート画面には現れません。
watchOSデバイスのホーム画面
シミュレート対象watchOSデバイスのホーム画面も、実際のデバイスと同じように動作します。画面上をクリックながらドラッグする動作は、指でドラッグする動作をシミュレートし、クリックするとアプリケーションを起動できます。図1-4に、開発者アプリケーションのListerサンプルコードが表示された、42mmのウォッチのホーム画面を示します。
Safariでウェブアプリケーションをテストする
シミュレータのホーム画面からSafariを起動できます。これを利用して、Mac上で直接、iOS用のウェブアプリケーションをテストしてみましょう。
ホーム画面で「Safari」をクリックします。
Safariのアドレス欄にウェブアプリケーションのURLを入力し、Returnキーを押してください。
Macがインターネットに接続されていれば、指定したURLのモバイル版が現れます。たとえば、アドレス欄に「apple.com」と入力してReturnキーを押すと、Appleのウェブサイトが表示されます。図1- 6を参照してください。
「Maps」を使って場所の認識処理をシミュレートする
シミュレータにはアプリケーションのデバッグ支援ツールが組み込まれています。ここでデバッグできる機能のひとつに、場所の認識機能があります。(実際とは異なる)場所を選択してみましょう。「Debug」>「Location」>「場所を表す字句」を実行してください。ここには、所定の場所にいるようにシミュレートし、あるいは所定の経路に沿って移動するコマンドがあります。
位置が「None」に設定されたシミュレート対象watchOSデバイスは、ペアリングされたiPhoneデバイスで位置を確認します。
メニューに現れていない場所を指定しても、「Maps」アプリケーションで確認できます。
ホーム画面で「Maps」をクリックします。
「Debug」>「Location」>「Custom Location」コマンドを実行します。
すると現れるウインドウに、緯度として「
40.75」、経度として「-73.75」を入力してください。「OK」を押します。
シミュレータ上のデバイス画面の左下隅にある、「Current Location」ボタンを押してください。
この作業を完了後、図1-7に示すように、ニューヨーク州ニューヨークの、Long Island Expressway付近の現在地が青い点で表されます。
シミュレート対象デバイスおよびOSバージョンを変更する
シミュレータは、各種のデバイス、さまざまなバージョンのOSの組み合わせをシミュレートできます。デバイスタイプとは、iPhone、iPad、またはApple TVのモデルです。一部のiPhoneデバイスには、Apple Watchがペアリングされていることもあります。デバイスとOSの組み合わせに応じて独自のシミュレーション環境があり、設定内容や動作するアプリケーションもそれぞれ異なります。シミュレータは、デバイスとiOS、デバイスとwatchOSとiOSデバイス、デバイスとtvOSの一般的な組み合わせのシミュレータを提供します。それ以外の組み合わせでテストしたければ、新たにシミュレータを追加することも可能です。もっとも、あらゆる組み合わせが可能なわけではありません。
デバイスとOSの組み合わせは自由に切り替え可能です。切り替えると、それまでのデバイスに対応するウインドウが閉じ、新たに該当するデバイスのウインドウが開きます。閉じる際の動作は、通常のOSのシャットダウンと同様ですが、タイムアウトは実デバイスの場合より長いかも知れません。新しいデバイスは、通常のOS起動手順を実行します。
シミュレート対象デバイスを切り替えるには
「Hardware」>「Device」>「デバイス名」コマンドを実行してください。
シミュレータは、それまで開いていたデバイスウインドウを閉じた後、新たなデバイスのウインドウを開きます。
シミュレートしようとするデバイスの種類とOSの版の組み合わせが「Device」サブメニュー以下になければ、新規に作成してください。
シミュレータを追加するには
「Hardware」>「Device」>「Manage Devices」コマンドを実行してください。
「Devices」ウインドウが開きます。
左側の欄の一番下にある「Add」ボタン(「+」の表示)を押してください。
するとダイアログが現れるので、「Simulator Name」欄に名前を入力し、「Device Type」ポップアップメニューからデバイスを選択します。
さらに、「OS Version」ポップアップメニューからOSの版を選択します。
該当するiOSの版がメニューに現れなければ、「Download more simulators」を選択し、シミュレータをダウンロードする手順に進んでください。
「Create」を押します。
必要なOSの版がなければ、ダウンロードして追加します。
シミュレータをダウンロードするには
Xcodeで「Xcode」>「Preferences」コマンドを実行します。
「Preferences」ウインドウで「Downloads」を押してください。
「Components」画面で、追加したい旧シミュレータの版を選択し、「Install」ボタンを押します。
「Devices」ウインドウではシミュレータの削除や改名もできます。
シミュレータを削除するには
シミュレータの「Hardware」>「Device」>「Manage Devices」コマンド、またはXcodeの「Window」>「Devices」コマンドを実行してください。
「Devices」ウインドウが開きます。
左側の欄で、削除しようとするシミュレータを選択します。
左側の欄の一番下にある「Action」ボタン(「Add」ボタンの隣にある歯車)を押してください。
「Action」メニューから「Delete」を実行します。
表示される確認ダイアログで「削除」をクリックします。
改名する場合も同様に、「Action」メニューから「Rename」を実行し、新しい名前を入力してください。
シミュレート対象デバイスの設定を変更する
シミュレータの各種設定を、テストしやすいように変更できます。
シミュレート対象デバイスで「Settings」アプリケーションを開きます。「Settings」アプリケーションを開くには、ホーム画面からクリックするか、tvOSで「Settings」を選択します。図1-8に、iOSをシミュレートした環境で起動した「Settings」アプリケーションを示します。
シミュレータの設定画面は、ハードウェアデバイスのそれとは違います。これは、アプリケーションのテスト用として設計されているか、実稼働を目的としているか、の違いです。シミュレータの設定画面は当然ながら、テストを意識したものになっています。たとえば「Accessibility」メニューを見ると、シミュレート対象iOSデバイスには「Accessibility」インスペクタを開く機能があるのに対し、デバイスの場合はアクセシビリティに関する各種機能をオン/オフするようになっているのです。
アクセシビリティ(ユーザ補助機能)やローカライズに関しては、テストの観点に応じて、さまざまに設定を切り替えることができます。その方法について詳しくは、「」を参照してください。
iOSデバイスを回転させる
シミュレータ上では、シミュレート環境のデバイスを、物理デバイスそのものと同じように操作できます。
デバイスの回転は、「Hardware」>「Rotate Left」コマンドで行います。シミュレート対象デバイスを回転させると、ハードウェアデバイスと同様に、「Settings」も回転します(図1-9を参照)。
シミュレータとデバイスの両方でテストする
シミュレータは、設計やラピッドプロトタイプ、テストの支援用に設計されていますが、ここでテストすれば充分ということにはなりません。ひとつには、シミュレータでは動作しないアプリケーションがあるからです。たとえば「Camera」アプリケーションはハードウェアデバイス上でのみ動作し、シミュレータで動かすことはできません。
さらに、バグや性能上の問題の中には、シミュレータでは顕在化しないものもあります。処理性能の違いについては、「」も参照してください。デバイス上で行うアプリケーションのテストについて詳しくは、『』の「」も参照してください。
シミュレータを終了する
シミュレータは明示的に終了しない限り動作し続けます。Xcodeとシミュレータはそれぞれに個別のアプリケーションなので、Xcodeを終了しても、シミュレータは終了しません。同様に、シミュレータを終了してもXcodeは終了しません。
シミュレータを終了するには、「Simulator」>「Quit Simulaor」を選択します。デバイスがシャットダウンされ、実行中のアプリケーションが終了します。