Xcode IDE

Source Editor

プロフェッショナルなエディタで、高度なコード補完機能、コードの折りたたみ表示、構文の強調表示、警告、エラー、コンテキストに応じた情報をコード内に表示するメッセージの吹き出し機能を搭載しています。

Assistant Editor

「Assistant(アシスタント)」ボタンをクリックすると、エディタが2画面に分割されて2番目のペインが開き、現在編集しているコードに基づき最も役立つと判断されたファイルが自動的に表示されます。このペインには、対応するヘッダー、スーパークラス、呼び出し元、呼び出し先などの有用なファイルを表示できます。

Version Editor

XcodeのVersion Editorには、コミットする実行タイムラインが表示されるため、問題箇所の特定や、視覚的に時間の流れをさかのぼってソースファイルを比較することが簡単になっています。また、SubversionおよびGitソースコントロール(SCM)システムにも完全対応しています。

ビルトインのInterface Builder

コードを1行も記述することなくインターフェイスを設計およびテストし、数分でプロトタイプを作成して、インターフェイスとXcodeのエディタ上のソースとを視覚的に関連付けられます。

Simulator

iOS SDKにより、XcodeでCocoa Touch AppをMacベースのiOS Simulatorでビルド、インストール、実行、デバッグできるため、流れるような開発ワークフローが実現します。

Integrated Build System

マルチコアCPUを搭載したMacのパワーを最大限に引き出せる拡張性を持ち、複雑なビルドにも対応します。iPadやiPhone Appの署名、プロビジョニング、デバイスへのインストールも自動的に行えます。

コンパイラ

Xcodeには、C、C++、Objective-Cに対応した強力なオープンソースのLLVMコンパイラが組み込まれており、ターミナルから利用できます。このコンパイラではコードをすばやくコンパイルでき、iPhone、iPad、Macの各CPUに合わせて調整された高速なAppを作成できるように最適化されています。

Graphical Debugger

Xcodeエディタ内でAppを直接デバッグできます。任意の変数にマウスポインタを合わせてコンテンツの詳細を確認できるほか、クイックルック機能を使用して含まれるデータを表示し、変数をウォッチリストに追加することができます。

継続的インテグレーション

macOS Serverの機能であるXcode Serverでは、Xcodeプロジェクトのビルド、分析、テスト、さらにアーカイブを継続的に行うサーバ側のBotを管理します。Xcode IDEでは、これらのBotを設定し、最新のソースコードで生成されたビルドとテストの結果を分析することによって、ビルドを失敗させたチェックインを特定できます。

アセットカタログ

Xcodeのアセットカタログエディタでは、Appの画像を管理し、同じアセットの多様な解像度をグループ化できます。Xcodeでは、ビルド時にアセットカタログを最も効率的なバンドルにコンパイルし、最終的な配信ファイルを作成できます。

Open Quickly

「Cmd + Shift + O」キーを押すだけで、プライマリエディタのワークスペース内に任意のファイルをすばやく開くことができます。また、「Option」キーを押しながらファイルを選択すると、Assistantエディタで開くことができます。Open Quicklyは、キーボードを多用するワークフローにかかせないツールです。

OpenGLのフレーム取り込み

1つのボタンを押すだけで、iOSデバイスから現在のOpenGLフレームの内容をすべて取り込むことができます。Xcodeにはシェーダーの情報が表示され、Xcodeデバッガ内でフレームがアセンブルされた方法を視覚的に構築できます。

詳細なドキュメンテーション

Xcode内で検索すると、Mac上またはApple Developer Webサイト上のいずれの内容も、文書ビューア(documentation viewer)で表示することができます。

Live Issue

ワードプロセッサでスペルミスがハイライト(強調表示)されるように、Live Issueでは、「ビルド」を実行することなく、一般的なコードミスがハイライトされます。

Fix-it機能

Xcodeはただエラーをレポートするだけではありません。コードにミスがあると即座にXcodeから警告が出力され、キーボードのショートカットを1回打つだけで瞬時に修復(Fix-it)するため、作業を中断することなくコード作成を継続できます。

クイックヘルプ

プログラミング作業中は、コードに追加したコメントを含め、簡単なAPIの説明が表示されます。また、コードの補完時には簡単な概要が表示され、ユーティリティ領域にはリンクや参照情報が表示されます。

XCTest Framework

XCTest APIを使用すると、Mac、iPad、iPhone、またはSimulatorで実行可能なAppの機能のユニットテストを簡単にビルドできます。

Static Analysis

標準装備のスタティックアナライザでは、数秒間のうちに何千ものコードパスをチェックでき、Appを実行する前にバグを検出することさえ可能になっているため、発見が困難なバグや再現がほぼ不可能な潜在的なバグも発見できます。

Instruments

データの記録

Instrumentsで、分析するAppと対象とするデータを指定して大きな赤いボタンをクリックすると、データが収集され、その後の分析用として記録されます。

視覚的な比較

データは時間経過に沿って記録および表示されるため、タイプの異なる収集済みデータの差異、または同じテストを複数回実施して収集したデータの差異など、その関係性を簡単に調べることができます。

詳細分析

グラフ上のデータが急激に変化している箇所に注目し、その時にどのコードが実行されているか調べ、すぐにXcodeに移って問題を解決することができます。

Instrument Library

CPU、ネットワーク、ファイルに関する低レベルの処理などから、グラフィックスやユーザーイベントに関する高レベルな処理まで、さまざまな処理に対応する測定機能がバンドルされているライブラリ。

Zombie Detection

利用できなくなったメモリ領域にアクセスするなど、見つけにくいAppのエラーやクラッシュをInstrumentsで把握することができます。

Source View

データポイントを検証して整理することにより、CPUの処理能力を最も占有しているメソッドを特定できます。InstrumentsのUI内では、コードを直接確認しながら問題点を絞り込むことができます。

オーバーヘッドの少ないサンプリング

キーを押すだけでパフォーマンスデータをサンプリングでき、少ないオーバーヘッドで精度の高い情報が得られます。

Instrumentsのカスタマイズ

DTraceとInstrumentsカスタムビルダーを使用することにより、Instrumentsを独自にカスタマイズできます。

System Trace

Instrumentsでは、わずかなリソースを使用してシステム上のすべてのプロセスに関する情報が記録されます。これにより、プロセスが相互処理する際に発生するパフォーマンスのボトルネックが明確になります。

macOSが備えるその他のツール

コマンドラインツール

macOS SDK、ヘッダー、またApple LLVMコンパイラやMakeなどのビルドツールをダウンロードして入手することができます。これらのツールを使用すると、オープンソースソフトウェアのインストールや、ターミナルを使ったUNIX開発が容易になります。macOSでは、最初にソフトウェアをビルドする際にこれらのツールを自動でダウンロードでき、ダウンロードページからも入手できます。

スクリプト言語

macOSにはAppleScript、Perl、Python、Rubyがあらかじめインストールされています。macOSはUNIXベースでビルドされているため、XcodeやmacOSに搭載されている開発用コマンドラインツールを使用して、広く普及しているオープンソース言語の独自のバージョンを簡単に構築できます。

Apple Event Bridge

AppleScriptとAutomatorでは、ベースとなるApple Eventエンジンの機能を活用し、macOSのタスクを簡単に自動化することができます。このブリッジ的な機能により、AppleScriptと同じメッセージングアーキテクチャを使用して、Objective-C、Ruby、Pythonなどの追加言語からAppに対して命令とクエリを実行できるようになります。

Audio Tools

AU Labツールでは、オーディオストリームのミキシングや処理を行うことができます。

Terminal 2

Terminal 2ではUNIXシェルにアクセスすることができ、タブ表示、カラー表示、Unicodeにも対応しています。

ソースの制御:GitとSubversion

Xcode IDEは、IDE内で直接的にこの両方のSCMシステムに対応しており、コマンドラインからも使用できます。

UNIXツール

make、awk、sed、ssh、tar、zipなど、最も広く普及しているコマンドラインツールの全てが用意されています。

エディタ

macOSのエディタにはTextEdit、xed(Xcodeのエディタ)に加え、vimとemacsも含まれています。

FileMerge

任意のテキスト文書を比較、差分抽出、統合できます。