WWDC Quick Look 💓 By SwiftGGTeam
Xcode、agents、そしてあなた

Xcode、agents、そしてあなた

元の動画を見る

ハイライト

Xcode 27 は coding agents を単一の対話アシスタントから、開発フロー全体に組み込まれた協働ツールへ進化させます。プロジェクト探索、計画モード、コード生成、Preview 検証、テスト作成、並行オーケストレーションなどをサポートしながら、開発者が創造的な方向性を常にコントロールできます。

主要内容

プロジェクト探索から知識ベース作成へ

(00:56) 新しいプロジェクトを引き継ぐとき、コード構造を理解することが最初の大きな時間コストになりがちです。Xcode の coding agents は、ソースコード、ビルド設定、開いているファイル、現在選択しているコード範囲など、プロジェクト全体のコンテキストを見ることができ、構造化されたプロジェクト案内を生成できます。

この案内には、データフローの概要、主要領域の表、ソースコード参照リンクが含まれます。リンクをクリックして該当ファイルへ直接移動できますし、agent に案内内容をプロジェクト内のアーキテクチャ文書として保存させ、チーム共有の動的な知識ベースにすることもできます。

(04:15) 不慣れな API を調査するとき、agent は Apple Document Search ツールを自動で呼び出し、古い学習データではなく最新の公式ドキュメントから情報を取得します。これにより、SwiftUI Table の使い方や SwiftData の関係モデルの提案が現在のバージョンに合ったものになります。

計画モード:先にすり合わせ、それからコードを書く

(07:44) Xcode 27 は plan mode(計画モード)を追加しました。会話で /plan と入力すると、agent はまず実装方針をあなたと話し合い、Markdown 形式の計画文書を生成します。コードを書くのは、あなたが確認した後です。

計画モードは、agent が素早くコードを生成する一方で方向がずれる問題を解決します。計画段階では補足要件をキューに入れることができ、agent は現在の作業が終わった後に順番に処理します。agent も、どの指標を表示するか、どのグラフ種別を使うかなど、要件を明確にする質問をします。この往復によって、最終案はあなたの本当の意図に近づきます。

(10:09) 計画を確認すると、agent は実装を開始します。各コード変更は artifacts パネルに diff として表示されます。agent は Xcode のビルドツールを自動で呼び出してコードがコンパイルできるか検証し、コンパイルエラーに遭遇すると自分で反復修正します。完了後には SwiftUI Preview もレンダリングされ、UI の結果を直接確認できます。

スケッチ、インライン注釈、プレビューによる細かな調整

(14:40) agent が生成したコードは出発点にすぎません。視覚的な細部の磨き込みには、あなたの入力が必要です。Xcode はデザイン意図を伝える3つの方法をサポートします。

  1. 画像添付:手描きスケッチや参考画像をアップロードすると、agent が対応する UI コードを生成します。
  2. インライン注釈(inline annotations):コードエディタで特定の行を選択し、変更要求を直接コメントとして追加します。注釈には正確なコード位置コンテキストが含まれるため、agent の変更は注釈領域だけに留まり、無関係なコードには波及しません。
  3. リアルタイムプレビュー:agent は変更中に継続的に Preview をレンダリングし、「生成、プレビュー、修正」の自己検証ループを作ります。

デモでは、発表者がまず iPad の Freeform で折れ線グラフのスケッチを描き、アップロードしました。agent はそれに合う Swift Charts コードを生成しました。続いてグラフコードに2つのインライン注釈を付けました。淡いフェードインアニメーションの追加と、トレンドライン色の調整です。agent はその2か所だけを変更し、その他のコードは維持しました。

並行オーケストレーション:複数セッションを同時に進める

(18:54) Xcode 27 は複数の独立した会話を同時に開き、それぞれ別のタスクを実行できます。デモでは、発表者が2つの会話を同時に開始しました。

  • ローカリゼーション:App 内のすべてのユーザー表示文字列をフィリピン語に翻訳し、Strings Catalog を自動設定します。
  • アクセシビリティ:すべてのインタラクティブ要素に VoiceOver ラベルと accessibility identifiers を追加します。

各会話の agent は、適切なツールを自動で発見して使用します。ローカリゼーションタスクは複数のサブタスクに分割され、sub-agents によって並行処理されます。アクセシビリティタスクはビュー層を巡回してラベルを追加します。2つのワークフローは互いに干渉せず独立して動きます。完了すると、App は多言語対応と完全なアクセシビリティ対応を同時に備えます。

詳細

Agent が利用できる Xcode ツール

(18:54) Xcode は agents にツールセットを提供し、agent はタスクに応じて自動で発見して呼び出します。

ツール用途
Apple Document Search最新の公式ドキュメントを検索し、正確な API 情報を取得する
Buildプロジェクトをコンパイルし、コードの正しさを検証する
Preview RenderingSwiftUI Preview をレンダリングし、UI 結果を検証する
Run All Testsagent が新しく書いたテストを含め、テストスイートを実行する
Machine Translationユーザー表示文字列を自動翻訳する
カスタムツール開発者が追加し、agent が呼び出せるツール

これらのツールは開発者が手動で選ぶものではありません。agent が現在のタスクに応じて自動的に対応付けます。API 調査なら Document Search、コード生成後なら Build、UI が関係する場合は Preview Rendering を呼び出します。

会話インターフェイスの構造

(05:07) 各 agent 会話画面は左右2列に分かれています。

  • 左側の transcript:会話履歴、進捗説明、ツール呼び出し、sub-agent の実行状態などを表示します。
  • 右側の artifacts:agent が生成したファイル、コード変更 diff、プレビュー画像などを表示します。

最新メッセージの成果物だけを見ることも、会話全体のすべての成果物を見ることもできます。コード変更は diff として表示され、新規ファイルはプロジェクト内に直接現れます。

インライン注釈の使用例

(17:01) インライン注釈は次のように使います。

// コードエディタで以下の行を選択し、注釈を追加する:
// "ここに控えめなフェードインアニメーションを追加"
Chart {
    ForEach(workoutData) { data in
        LineMark(
            x: .value("日付", data.date),
            y: .value("ボリューム", data.volume)
        )
        .foregroundStyle(.blue)  // 注釈:"これを App のテーマに合わせて変更"
    }
}

重要な点:

  • インライン注釈は具体的なコード行に紐づくため、agent は変更位置を正確に特定できます。
  • 注釈は周囲のコードをコンテキストとして持つため、agent は変更の意味的環境を理解できます。
  • 変更範囲は注釈で指定された領域に制限され、無関係なコードには広がりません。
  • 色、アニメーション、文言など、既知位置の細部を微調整するのに向いています。

並行オーケストレーションの仕組み

(19:38) オーケストレーションモードでは、メイン agent が計画し、sub-agents が実行します。

メイン会話:"App をフィリピン語にローカライズして"
  |
  +-- Machine Translation ツールを発見
  |
  +-- タスクを分割:
      +-- Sub-agent A: Workout ビューを翻訳
      +-- Sub-agent B: History ビューを翻訳
      +-- Sub-agent C: Insights ビューを翻訳
      +-- Sub-agent D: Strings Catalog を設定

重要な点:

  • メイン agent はツール説明を読み、能力の境界を理解します。
  • タスクは並行実行できるサブタスクに分割されます。
  • 各 sub-agent は自分の担当部分について独立して翻訳ツールを呼び出します。
  • 開発者はいつでも各タスクの進捗を確認できます。

実践アイデア

1. Agent でプロジェクトアーキテクチャ文書を生成する

すること:agent にプロジェクト構造を分析させ、チームの onboarding 文書として ARCHITECTURE.md を生成します。

価値がある理由:agent はプロジェクト全体のコンテキストを見られるため、生成される文書にはデータフロー、主要ファイル参照、モジュール関係を含められます。手動保守より正確になりやすく、agent が後でコードを変更するときにこれらの文書も更新できます。

始め方:新しい会話を開き、次のようなプロンプトを使います。“このプロジェクトのデータモデル、ビュー階層、アーキテクチャを要約してください。その結果を記録する2つの Markdown 文書をプロジェクトルートに作成してください。“

2. plan mode で新機能を設計する

すること:新機能を実装する前に、/plan で agent に詳細な解決案文書を作らせます。

価値がある理由:agent はコード生成が速い一方で、方向がずれることがあります。plan mode は「意図をすり合わせる」と「コードを書く」を分け、手戻りを減らします。デモでは agent がデータ表示方法について質問し、最終的に「スポーツ種目別表示」と「トップレベル概要」という2つのビューを選びました。

始め方:agent 会話で /plan と入力し、機能目標、制約条件、受け入れ基準を説明します。数往復議論して計画を確認し、実装段階へ進みます。

3. 並行会話で技術的負債をまとめて処理する

すること:複数の会話を同時に開き、それぞれローカリゼーション、アクセシビリティ対応、コードリファクタリングなど独立したタスクを処理します。

価値がある理由:デモではローカリゼーションとアクセシビリティの2作業が、手作業なら数時間かかるところを、2つの並行会話で数分に短縮しました。sub-agents がタスクを分割して並行実行するため、処理能力が大きく上がります。

始め方:独立した各タスクごとに会話を作り、高レベルの目標を説明します。agent が適切なツールを自動で発見し、実行を調整します。

4. 手描きスケッチと agent で UI を素早く反復する

すること:iPad で UI スケッチを描き、画像またはスクリーンショットとして agent に添付し、対応するコードを生成させます。

価値がある理由:「UI がどう見えるかを想像する」から「実際に動くものを見る」までの周期が、数時間から数秒へ短縮されます。agent は複数のプレビュー案を生成でき、最適なものを選んでから細部を詰められます。

始め方:agent 会話にスケッチや参考画像を添付し、次のように依頼します。“このスケッチのスタイルに合わせて InsightsView に折れ線グラフを追加してください。“

5. Agent にテストを書かせ、実行させる

すること:機能開発が終わったら、agent に新しいコードの単体テストを書かせ、検証を実行させます。

価値がある理由:デモでは agent が新しい SwiftData モデル向けに12個のテストケースを書き、すべて通りました。agent は既存テストスイートの構造を見られるため、プロジェクトのスタイルに合うテストを生成できます。

始め方:次のように依頼します。“SwiftData モデル変更の単体テストを書き、テストスイートを実行して検証してください。“

関連セッション

コメント

GitHub Issues · utterances