ハイライト
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つの方法をサポートします。
- 画像添付:手描きスケッチや参考画像をアップロードすると、agent が対応する UI コードを生成します。
- インライン注釈(inline annotations):コードエディタで特定の行を選択し、変更要求を直接コメントとして追加します。注釈には正確なコード位置コンテキストが含まれるため、agent の変更は注釈領域だけに留まり、無関係なコードには波及しません。
- リアルタイムプレビュー: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 Rendering | SwiftUI Preview をレンダリングし、UI 結果を検証する |
| Run All Tests | agent が新しく書いたテストを含め、テストスイートを実行する |
| 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 モデル変更の単体テストを書き、テストスイートを実行して検証してください。“
関連セッション
- 227 - Xcode の Agents で UI プロトタイプを作る - スケッチ、インライン注釈、プレビューを通じて UI デザインで agent と協働する方法を深掘りします
- 213 - Xcode の agents で App を翻訳する - Agent 駆動のローカリゼーションワークフローに特化したセッション
- 258 - Xcode の新機能 - Xcode 27 の幅広い新機能の概要
- 262 - Swift の新機能 - このセッションの例と組み合わせて使われる SwiftData と SwiftUI の更新
- 267 - Swift Testing の新機能 - Agent がテストを自動で書き、実行する仕組みの詳細
コメント
GitHub Issues · utterances