ビルトインのInterface Builder

XcodeのInterface Builderエディタを使用すると、コードを1行も記述することなく完全なユーザーインターフェイスを構築できます。ウインドウ、ボタン、テキストフィールド、その他のオブジェクトをデザインキャンバスにドラッグしてドロップするだけで、機能的なユーザーインターフェイスを作成できます。

CocoaとCocoa TouchはModel-View-Controllerパターンを使用して組み込まれているため、実装コードとは別に、独立した形でインターフェイスの設計を簡単に行うことができます。ユーザーインターフェイスは、実際にはアーカイブされたCocoaやCocoa Touchのオブジェクト(.nibファイルとして保存)であり、macOSやiOSではAppの実行時にUIとコードとが動的に関連付けられます。

Storyboard

iOS Appは、ユーザーが閲覧する複数のビューで構成されています。これらのビュー同士の関係はStoryboardで定義され、StoryboardではAppのフロー全体を確認できます。Interface Builderのstoryboard designerを使用すると、簡単に新しいビューを作成および設計し、それらを連結して、カスタムコードに合う完全なユーザーインターフェイスを構築することができます。

Xcodeでは、以下のコントローラに対応したstoryboard controllerを使用できます。

  • Table View Controller
  • Collection View Controller
  • Navigation Controller
  • Tab Bar Controller
  • Page View Controller
  • GLKit View Controller
  • または独自のものを構築

Assistant

Storyboardや .xibファイルを編集する際は、Assistantを開けば、UIコントロールとその動作を実装するコードをすばやく関連付けることができます。まだコードを作成していない場合は、インターフェイスを論理的に機能させるためのアクションのスタブ(起動時のメソッド)またはアウトレット(データを保持するための変数)をXcodeで作成できます。

Auto Layout

iOSとmacOSはいずれも、Interface Builderによって強力にサポートされるAuto Layoutというパワフルなレイアウトシステムを備えています。Auto Layoutは、インターフェイス内の各オブジェクトが制約を定義し、親ビューや他のインターフェイスコントロールにどう反応するかを管理できる、という考え方を基盤としています。たとえば、異なる言語を表示した時にボタンを特定のサイズで固定するか、大きなテキストに合わせて拡大するかを決めることができます。

Interface Builderでは、すべての制約を自動的に作成することができるため、互換性のあるルールが実現します。また制約を直接コントロールし、それぞれに厳密な優先度を設定することも可能で、異なる画面サイズ、または回転させた際や異なるロケールで実行した場合のAppの動作を定義できます。

プレビュー

プレビューモードでは、Appを実行することなく、さまざまなシチュエーションにおけるインターフェイスの状態を簡単に確認できるため、反復作業の多い設計プロセスの効率が驚くほど向上します。このモードでは、Appを縦横の表示形式で、以前のバージョンのiOSや異なる画面サイズなどでも表示できます。