《Xcode入門向け》Xcodeの各部品を一つずつ丁寧に解説してみた

2015年11月24日 (2017年3月23日最終更新)
《Xcode入門向け》Xcodeの各部品を一つずつ丁寧に解説してみた

Xcodeは言わずと知れたiOSアプリの開発環境です。最近はMonacaのようにXcodeがなくても開発できる環境が増えてきましたが、依然として最重要なツールである事は確かです。

このエントリではXcodeを初めて使う人向けに、Xcodeの各部位の名称と機能をまとめます。

まず全体像を確認してから、各部位の説明に移りましょう。

目次
  1. 全体像
  2. ツールバー
  3. ナビゲーター領域
  4. プロジェクトナビゲータ
  5. シンボルナビゲータ
  6. 検索ナビゲータ
  7. 問題ナビゲータ
  8. テストナビゲータ
  9. デバッグナビゲータ
  10. ブレークポイントナビゲータ
  11. レポートナビゲータ
  12. エディタ領域
  13. ユーティリティ領域
  14. インスペクタペイン
  15. ライブラリペイン
  16. デバッグ領域
  17. まとめ

全体像

Xcodeの全体像と各部位の名前は次のようになります。

Xcode_全体像

1つのツールバーと4つのエリアで構成されています。

ナビゲータ領域/ユーティリティ領域/デバッグ領域は必要に応じて隠すことが出来ます。

ナビゲータ領域/ユーティリティ領域は状況に応じて中に表示する情報を切り替えることができます。

デバッグ領域の中は2つの表示領域があり、必要に応じて一方を隠すことができます。

ツールバー

ツールバーにはよく使う操作のショートカット置かれています。Xcode_Toolbar

  • 実行
  • スキーマ(Scheme:実行環境)の切り替え
  • エディタ領域の表示切り替え
  • ナビゲータ領域/ユーティリティ領域の表示非表示を切り替え

どの操作もよく使いますので、キーボードショートカットを覚えるまではツールバーにはよくお世話になるかもしれません。

ナビゲーター領域

ナビゲータ領域は3つの領域で構成されます。

Xcode_Navigator area

  • ナビゲータバー:本体領域に表示されるナビゲータを切り替えます(ナビゲータについては後述)
  • 本体領域:ナビゲータに応じた情報を表示します
  • フィルタバー:本来領域の表示内容を絞り込みます

本体領域に表示されるナビゲータは8種類が用意されています。

プロジェクトナビゲータ

Xcode_Project Navigator

プロジェクトナビゲータは最もよく使うナビゲータです。

プロジェクトに属するファイルを表示します。ファイルの操作も可能です。

このナビゲータでファイルを選択すると、エディタ領域に内容が表示されます。

シンボルナビゲータ

Xcode_Symbol area

プロジェクトで定義しているシンボルを表示します。「シンボル」とはクラスやその中のメソッド、関数などのことで、論理的な構造で表示してくれます。

シンボルを選択すると、該当箇所がエディタ領域に表示されます。

検索ナビゲータ

Xcode_Search navigator

言わずと知れた検索です。

検索範囲や検索方法をかなり細かく指定できます。以下は、フォルダ「Sandbox」の下にあり「app」を含む名前を持つシンボルを検索する例です。

Xcode_Search navigator_configuerd

問題ナビゲータ

Xcode_Issue navigator

問題ナビゲータには、ビルド時に生じた診断、警告、エラーなどが表示されます。

テストナビゲータ

Xcode_Test navigator

XCTestを使ったテストケースが表示されます。テストの実行も可能です。

デバッグナビゲータ

Xcode_Debug Navigator

Xcodeから実行したアプリの各種リソースの利用状況に加えて、各スレッドのスタック(メソッドや関数の呼び出し階層)を表示します。

ブレークポイントナビゲータ

Xcode_Break Point Navigator

「ブレークポイント」とはデバッグ実行時に処理を停止する位置のことです。ブレークポイントナビゲータは、ブレークポイントを表示するだけでなく、停止条件などを設定することができます。

レポートナビゲータ

Xcode_Log Navigator

ビルドや実行、テスト実施などの各種履歴を表示します。履歴を選択すると、更に詳しい内容がエディタ領域に表示されます。

エディタ領域

エディタ領域はメインの作業領域です。ソースコードの編集やプロジェクト設定の変更、更にはInterfaceBuilderによるGUI構築など、様々な作業を行います。

エディタ領域には、選択したファイルに応じたエディタが表示されます。例えばswiftファイルを選択するとソースコードエディタが表示されます。

Xcode_Editor area_swift

またstoryboardファイルを選択するとビジュアルに編集できるエディタが表示されます。

Xcode_Editor area_storyboard

さらに、アシスタントエディタを表示すると関連するファイルを隣に並べて表示してくれます。

Xcode_Editor_assistant editor

ユーティリティ領域

ユーティリティ領域は2つの部位で構成されます。上部のインスペクタペインと下部のライブラリペインです。それぞれにバーがあり、状況に応じて内容を切り替えて使います。

Xcode_Utilities__

インスペクタペイン

インスペクタペインは複数のインスペクタを切り替えて使います。ファイルインスペクタとクイックヘルプは常に表示されますが、他のインスペクタは選択しているファイルの種類に応じて表示非表示が切り替わります。

ファイルインスペクタ

Xcode_Utilities_File Inspector

選択したファイルに関する情報を表示します。ファイル情報を変更することも可能です。

クイックヘルプ

Xcode_Utilities_QuickHelp

選択しているファイルやシンボルなどの詳細を表示します。下記はstoryboardのFirst Responderを選択している状態でのヘルプ表示です。

Xcode_Utilities_QuickHelp_storyboard

ここからはstoryboardを選択している状況で使えるインスペクタです。

アイデンティティインスペクタ

Xcode_Utilities_Identity inspector

選択している項目の基本的な情報を編集します。例えばクラスの型を指定したり出来ます。

属性インスペクタ

Xcode_Utilities_Attributes inspector

選択している項目の属性、例えばUIViewであれば背景色や透明度などを編集します。

サイズインスペクタ

Xcode_Utilities_Size inspector

選択している項目のサイズに関する情報を編集します。

コネクションインスペクタ

Xcode_Utilities_Connections inspector

アクションやアウトレットとコードを接続(Connection)します。

接続(Connection)については、このエントリの範疇を超えますので説明しませんので、詳しい情報はApple Developerの文書をご覧下さい。

ライブラリペイン

ライブラリペインはファイルやコード片、メディアなど、再利用可能な再利用可能なリソースが置かれる場所です。

リソースを使うにはプロジェクトの適切な場所にドラッグ&ドロップするだけです。例えばコードスニペットをソースファイルにドラッグ&ドロップすると、コード片が挿入されます。

ファイルテンプレート

Xcode_File Template

よく使う種類のファイルやコードの雛形が置かれます。

コードスニペット

Xcode_Code Snippet

ソースコード中によく現れる実装パターンの雛形が置かれます。swiftファイルなどのソースコードにドラッグ&ドロップして使います。

オブジェクト

Xcode_Object

ユーザインターフェイスを構成する要素です。storyboardにドラッグ&ドロップして使います。

デバッグ領域

デバッグ領域には、デバッグ実行時に、変数やレジスタの値、コンソールなどのプログラムの状態が表示されます。また表示だけでなく、一時停止したプログラムをステップ実行することも可能です。

以下はブレイクポイントで一時停止している状態のデバッグ領域です。たくさんの機能があるのですが、よく使うのは次の3つの部位です。

Xcode_Debug area_debugging_

一時停止したプログラムを少しずつ実行していくには、ステップ実行を用います。ステップ実行しながら変数の内容を見ていくことでデバッグしやすくなります。

コンソール表示ではNSLog関数などで出力した内容が確認できます。

まとめ

以上、Xcodeの各部位を簡単に説明しました。

さらに詳しい情報についてはAppleが「Xcodeの概要という文書を公開しています。概要と言いつつも137ページに渡って開発の仕方が詳しく解説されていますので、一度目を通しておくと良いでしょう。

tomo
tomo
企業向けWebシステム構築のエキスパートです。 得意な言語はJavaとC#、好きな言語はHaskell。 型が好きな固い系プログラマです。

関連記事