WWDC で、Apple は Mac OS X および iOS プログラマーに、完全に改訂された Xcode 4 統合開発環境のプレビューを提供しました。ここでは、新機能とそれがエンドユーザーにとってどのように重要であるかを見ていきます。

Xcode 4 は、開発者向けにまったく新しいユーザー インターフェイスとワークフローを提供するとともに、コンパイル、デバッグ、一般的なエラーの検出と修正のための新しいコンポーネントを提供します。その結果、より生産性の高い開発者による、より優れた、より高速なコードが作成されます。

1 つのウィンドウですべてをバインド

Apple の計画に詳しい開発者らによると、Xcode 4 の最初の大きな特徴は、Xcode (およびその前身である NeXT の Project Builder) が現在使用している複数ウィンドウのワークフローから、新しい単一ウィンドウ インターフェイスへの移行です。

コードの検索、デバッグ、ビルド、パラメータの設定のために新しいウィンドウを開くのではなく、LCD のようなステータス表示を含む iTunes のデザインのコンポーネントをエコーする単一ウィンドウ内ですべてを行うことができます。

新しいウィンドウには、(iTunes のソース リストに似た) 閉じることのできる Navigator コントロールが表示され、同じウィンドウ列内にさまざまな種類の開発関連情報を表示できるアイコン タブが表示されます。

  • プロジェクトとファイルのリスト
  • クラスとメソッドのシンボルリスト
  • プロジェクト全体の結果をリストする検索機能
  • ビルドエラーの問題リスト
  • デバッグ情報
  • ブレークポイント
  • ビルドログのリスト

新しい Xcode ウィンドウのメイン領域は、コード、データ モデル、プロジェクトのグラフィカル インターフェイスなど、表示されているドキュメント専用です。この領域をセグメント化して複数のドキュメントを表示し、それらの違いを比較することもできます (同じコード ファイルの 2 つのバージョンを比較する場合など)。コンテンツ領域には、拡張可能な Quick Look 機能によってサポートされる PDF およびその他のファイル タイプの表示のサポートも統合されています。

コンテンツ領域の上には新しいジャンプ バーがあり、iTunes や Finder で導入されたパス バーに似た階層的な「ブレッドクラム」リストが表示されます。違いは、新しいジャンプ バーが完全にインタラクティブであることです。ユーザーはバーに沿った任意のパスをクリックし、そのレベルで移動できるポップアップを選択できます。たとえば、下の写真では、ユーザーはジャンプ バー内の [リソース] をクリックして、表示される動的なポップアップ ウィンドウを介してそのディレクトリ内の他のリソース ファイルを表示 (そして直接ジャンプ) することができます。

の上2ページ目of 3: Interface Builder が含まれるようになりました。

Interface Builder が含まれるようになりました

Apple の Xcode Mac OS X 開発者ツールは、iPhone 2.0 SDK とともに iOS モバイル アプリも作成できるように適合されており、当初はコードを操作するためのプロジェクト ビルダーと、プログラムのグラフィカル ユーザー インターフェイスをレイアウトし、GUI の要素をコードにマッピングするためのインターフェイス ビルダーが含まれていました。機能的にしました。

80 年代後半、Interface Builder の最初の開発者 Jean-Marie Hullot は Apple にグラフィカル開発コンセプトを示しましたが、Steve Jobs の NeXT Computer に勧誘され、高度な GUI ビルダーが開発ツールの一部になりました。

Interface Builder は、CERN で Tim Berners-Lee の WorldwideWeb ブラウザを迅速に開発するために使用されました。アップルはその後取得したこのテクノロジーは 1996 年に NeXT を買収した際に使用され、Project Builder を含む Mac OS X 開発ツール パッケージの一部となりました。その後、同社はその名前を Xcode に変更しました。

Xcode 4 では、Interface Builder が改良された Project Builder ベースの IDE に組み込まれ、アプリケーションの外観と機能の両方を作成する単一のツールが作成されます。 2 つのコンポーネント間の緊密な統合により、モバイル アプリケーションとデスクトップ アプリケーションの開発にさまざまな改善がもたらされます。

グラフィカル要素は、グラフィカルなドラッグ アンド ドロップ ジェスチャを使用して、アウトレットとアクションをソース コードに直接バインドできるようになりました。 Xcode 4 の新しいアシスタント機能により、開発者は GUI とソース コードを同時に作業できるようになります (下記)。

の上3ページ目3 つ中: Fixit、LLVM、LLDB、インストゥルメント。

フィックスイット機能

開発者の報告によると、Apple は高度なコード補完を提供し、Mac OS X がシステム全体でスペル ミスを示すために使用するのと同じ赤い下線を使用して一般的なバグやタイプミスにフラグを立てる新しい Fixit 機能も導入しました。

Fixit 機能は、適切な記号のスペルを提案し、正しい句読点を提供することで、開発者が間違いを減らしながらより速くコードを作成できるように支援します。静的分析では、不要になったメモリを適切に解放できないなど、一般的なバグやエラーを見つけてフラグを付けることができます。

また、Xcode 4 は共同開発のための新しいバージョン管理機能をサポートすると報告されており、プログラマーが Subversion および Git バージョン管理システム (Time Machine のように、時間の経過とともに複数のバージョンのファイルを処理します) に保存されているプロジェクトのコンテンツをチェックアウト、変更をコミット、更新できるようになります。 。

新しいツールを使用すると、ユーザーは、バージョン管理システムにチェックインされた時間の経過に伴う変更についてさまざまなファイルを比較し、コードを最新バージョンに戻すかマージすることもできます。

Apple、新しい LLDB デバッガをオープンソースとして LLVM と共有

Xcode 4 には、最新の重要な新しいバージョンが含まれているとも報告されています。低レベルの仮想マシン(LLVM) コンパイラ。Apple がオープンソース プロジェクトとしてサポートし、最終的に GNU Compiler Collection (GCC) を置き換えるものです。GNU Compiler Collection (GCC) は、ほとんどの Unix ベースの開発システムが、ソース コードを特定のプロセッサを対象とした実行可能オブジェクト コードに変換するために使用するツールです。

LLVM は、より高速で最適化されたコードを作成するように設計されたモジュラー コンパイラ システムです。新しい LLVM コンパイラ 2 は、C 言語と目的 C 言語に加えて C++ をサポートするようになり、GCC の最大 2 倍の速度でコードをコンパイルします。また、作成されたコードは GCC でコンパイルされたコードよりも高速に実行され、同じソース コードのコンパイルを最適化する際に加えられた改善だけで、Mac OS X コードは最大 25%、iOS コードは最大 60% 高速に実行されると報告されています。

また、Xcode 4 には、Apple がパフォーマンスと効率性を考慮して設計したまったく新しいデバッガ システムが組み込まれており、バグの発見と修正がより迅速になります。新しいデバッガは LLVM のモジュラー アーキテクチャに基づいてモデル化されているため、LLDB と呼ばれます。 Apple はまた、社内の LLDB プロジェクトをオープンソースとしてリリースし、オープンソースの LLVM コンパイラとともにサードパーティが利用できるようにする予定であると言われています。

新しい楽器の演奏

Xcode 4 とともに提供されるもう 1 つの主要な機能は、Sun の DTrace テクノロジーに基づくコード パフォーマンス プロファイリング用の Apple のグラフィカル ツールである Instruments (当初のコード名は Xray) の新バージョンです。

新しいインストゥルメントには、iOS 開発用の新しいタイム プロファイラー サポートが追加されており、開発者がアプリケーション コードが他のアプリやシステムのカーネルとどのように相互作用するかを調査して、アプリが処理時間を費やしリソースを割り当てている場所を見つけるのに役立つ新機能が含まれています。非常に複雑なコンピューティング環境。

また、Instruments には、参照されているものの実際には必要ではない放棄されたメモリを特定するサポートも含まれており、開発者がアプリに必要なメモリ フットプリントを削減できるとのことです。このツールには、高性能ゲームや洗練されたグラフィックスを利用するその他のアプリを構築する iOS 開発者にとって重要なツールである OpenGL ES のプロファイリング分析サポートも追加されます。