[Hello World] iOS アプリをDelphi/C++Builderで作ってみよう 

#[Hello World] iOS アプリをDelphi/C++Builderで作ってみよう 

Delphiを使ってはじめてのiOSアプリを作って、iOSシミュレーターで動かしてみます。ここではDelphiを主につかっていますが、C++Builderでも操作はほぼ同じです。
macOSにXcode入れておいたり、Windowsから接続しておかなくちゃならんのですが、それは[こちらの別記事](http://qiita.com/kazaiso/items/0a1ae778dc05f5eb7aed)を参照してください。この別記事によって設定されたmacOSにセットアップされているXcodeによるiOSシミュレータでハローワールドしてみます。

※当記事は [「【超入門】iOSアプリ開発をDelphi/C++Builderで始めるためのファーストステップ」](http://qiita.com/kazaiso/items/10562f1d103c12d415af)としてまとめられている記事の一部です

##使用環境
ここで手順ご紹介に使用しているOS,ソフトウエアなどのバージョンなどを記載します。

|環境 | バージョン | 
|---|---|
|Windows| 10 バージョン 1607 ビルド 14393.969|
|RAD Studio / Delphi / C++Builder |  10.2 Tokyo | 
|macOS | Sierra バージョン 10.12.4 |
| iOS | 10.3.1 |
|Parallels 11 for Mac| 11.2.2|
|Xcode | 8.3.1 *注１ |
*1 : 2017年4月現在、Xcodeは8.2の使用を推奨（8.3はRAD Studioとの相性問題あり）

##Hello World アプリの作成 
1. RAD Studioを起動します。
2. [マルチデバイス アプリケーションの新規作成]をダブルクリックし、「空のアプリケーション」を選択して[OK]ボタンをクリックします。画面中央にWindowのような真新しい「フォーム」(Form1)が表示されます。
3. 右上に表示されている「プロジェクトマネージャ」の[+ターゲットプラットフォーム]の[+]をクリックし、プラットフォーム一覧を表示させます。
4. 表示させたプラットフォーム一覧のなかの「iOSシュミレータ」 - ダブルクリックします。iOSシミュレータが太字強調表示され、ターゲットとして選択状態となります
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/e341b161-2094-1b9a-3747-74b0203019a4.png)

1. 次にRAD Studio右下の ツールパレットの[+Standard]の[+]をクリックし、Standardに含まれているコンポーネント群を表示させます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/e10cd83d-71e3-da2c-b47f-74d3fe29d67b.png)
1. TButtonコンポーネントをドラッグして、Unit1のフォームにドロップします。フォームに「Button1」のテキストを持つボタンが表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/8db52b1d-90d0-5176-a86a-2794aaaf7740.png)

1. フォームに表示されている「Button1」をクリックして選択状態にします。RAD Studioの左下の「オブジェクトインスペクタ」の「プロパティ」タブにある「Align]の文字をクリックし、その右横にあるドロップダウンリストから「Center」を選択しておきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/81a9e1fc-3323-93dd-f2ba-6cb1f42a3896.png)

2. フォームに表示されている「Button1」をダブルクリックします。コードエディタに自動的にジャンプし、Button1のClickのイベントハンドラのところに移動しているはずです。
2. イベントハンドラに`ShowMessage('Hello World, iOS');`を書きましょう。ハンドラ部分のコードを書き出すと、下記のようになります。 

```delphi
//Delphiの場合
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello World, iOS');
end;
```

```cpp
//C++Builderの場合
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ShowMessage("Hello World, iOS");
}
```

以上で Hello worldアプリの作成(コーディング/プログラミング）は終了です。[ファイル] - [すべて保存]をクリックするか、[Shift + Ctrl + S]キーでプロジェクトを保存しておきましょう。
次のステップで、iOSシミュレータ上で実際にアプリを動かしてみましょう



##iOS シミュレータでの iOS アプリケーションの実行
上記で作っアプリをiOSシミュレーター上で実際に動かしてみます。macOS側にPA Serverをインストールして接続プロファイルを設定するなどの手順をまだおこなっていない方は [「XcodeのインストールとPAServerのインストール 」](http://qiita.com/kazaiso/items/0a1ae778dc05f5eb7aed)を参考にPA Serverのインストールと接続プロファイルの設定などを行ってください。

1. macOS側で、PA Serverを起動します。macOSのアプリケーションフォルダーか、Launchpad内にある**PAServer - xx.x** (xx.xは内部バージョンをあわらす数値が記述されています)をダブルクリックします。
2. PA Serverのコマンドラインが表示されたら、パスワードを入力するか、パスワードを設定していないなら、そのまま、Enterキーを入力します。
3. macOS上でアカウントのアカウントのパスワードを求められるので、入力して[制御を取得]ボタンをクリックします。
4. Windows側に戻ります。すでに、[ツール] - [オプション] - [接続プロファイルマネージャ]の設定ができ、設定テストも通っていることを前提とします。まだ設定していないかたは[「こちら」](http://qiita.com/kazaiso/items/0a1ae778dc05f5eb7aed#windows%E6%A9%9F%E3%81%A7%E3%81%AErad-studio%E6%8E%A5%E7%B6%9A%E8%A8%AD%E5%AE%9A)を参照して設定しておいてください。
1. 右上に表示されている「プロジェクトマネージャ」の[+ターゲットプラットフォーム]の[+]をクリックし、プラットフォーム一覧を表示させます。
4. 表示させたプラットフォーム一覧のなかの「+iOSシュミレータ」の[+]をクリックし 「+ターゲット」を表示させます。同様に[+]をクリックし、ターゲットのリストを表示させます。
5. おそらく、いままで、iOSシミュレーターにアプリを送り込んだことがない場合には、リスト内には3つほどのデバイスリストが表示されているだけと思われます。そこで、「ターゲット」を右クリックして表示される[更新]をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/21fa743d-6000-e694-eeb0-877dddd6b32f.png)
1. シュミレーターデバイスリストがズラッと更新されます。更新されない方は、一度macOS側でXcodeを起動し、Xcodeの[Xcode] - [Open Deveroper Tool] -[Simulator]でシミュレーターを一度起動した後、再度RAD Studioで更新をかけてみてください。 
1. お好みのシュミレーターデバイスダブルクリックします。選択されているシュミレーターデバイスは太字強調表示されます。
2. アプリを実行します。[Shift+Ctrl+F9]キーを押す、もしくはツールバー上の緑三角の[デバッガを使わずに実行]ボタンをクリックします。
3. macOS上でiOSシミュレーターが起動します。
4. シュミレーター内のアプリで表示されている「Button1」をクリックしてみると、「Hello world, iOS」と表示されました！
![スクリーンショット 2017-04-17 17.12.00.png](https://qiita-image-store.s3.amazonaws.com/0/145847/dba08577-aecf-9ebf-6f93-37fa07757f1a.png)

これでiOSシュミレーター上でのアプリ実行は完了です。

[次の記事](http://qiita.com/kazaiso/items/bb13147f003841720f27)では、[実機・iPhoneデバイス上での実行](http://qiita.com/kazaiso/items/bb13147f003841720f27)にトライしてみましょう。