ハイライト
Apple は Foundation Models framework を統一されたマルチモデル API へ拡張し、新しい Core AI フレームワークと強化された App Intents を追加しました。さらに Xcode 27 の agentic coding と組み合わせることで、開発者はコストを抑えて AI 機能を構築し、システムレベルの流入経路も得られます。
主要内容
大規模モデルをアプリに入れるとき、最大の壁はコスト
アプリで AI を使いたい開発者は、典型的なジレンマに直面します。OpenAI につなぐと費用がかかり、自前でデプロイすると運用が必要になり、オンデバイスモデルだけでは能力が足りません。中小規模のチームは最初の段階で止まりがちです。費用の見通しが立たず、プロジェクト自体が棚上げになります。
Apple は今年、その請求書を開発者の代わりに引き受けたような形です。Foundation Models framework に server models のサポートが追加され、Claude や Gemini などのサードパーティクラウドモデルを呼び出せます。さらに重要なのは、初回ダウンロード数が 200 万未満のアプリの開発者は、Private Cloud Compute 上で Apple Foundation Model を呼び出しても API 料金が完全に無料になることです。
つまり独立開発者でも、複雑な推論を必要とする AI 機能を今日から作り始められ、月末に高額請求が来る心配をしなくてよくなります。
アプリが見つからなければ、機能が良くても届かない
3 か月かけて AI 機能を作っても、ユーザーがその存在を知らないかもしれません。Siri はあなたのアプリで何ができるかを理解できず、Spotlight はコンテンツを検索できず、システム AI からは見えません。
今年、App Intents はシステムレベル AI の「ルーター」になりました。entity schemas と intent schemas を通じて、アプリのコンテンツは Spotlight semantic index に組み込まれ、Siri は機能を直接理解して呼び出せます。新しい View Annotations API と組み合わせると、ユーザーは画面上の内容を指して「これを Kevin に送って」と言うだけで、システムが正確に対象を特定して実行できます。
アプリは孤立した島ではなく、システムの知能ネットワークの 1 つのノードになります。
コードを書くところからテストまで、AI エージェントが一連の流れを担う
コードを書くことは開発の一部にすぎません。設計、テスト、ローカライズ、バグ修正には多くの時間がかかります。
Xcode 27 の agentic coding は、AI エージェントを開発フロー全体に参加させます。要件を説明すると、エージェントが計画を立て、コードを書き、プレビューを動かし、機能をテストし、クラッシュを修正します。Device Hub はシミュレータと実機を統一管理し、Previews は任意のプロパティのバリエーション表示に対応します。Xcode Cloud のビルド速度は 2 倍になり、App Store Connect の設定も不要になります。
開発者の役割は、「すべての行を手で書く」から「問題を説明し、方針をレビューし、結果を検証する」へ変わります。
詳細
Foundation Models framework: どのモデルも 1 つの API で呼び出す
(02:56) 今年の Foundation Models framework は、単一のオンデバイスモデルから、統一されたマルチモデル API へ拡張されました。中核となる変化は 3 つあります。
1 つ目はマルチモーダル入力です。 prompt に画像を直接添付でき、モデルはテキストと画像の内容を同時に理解します。
import FoundationModels
let session = LanguageModelSession()
func brainstormProject(image: Image, theme: String) async throws -> String {
let prompt = Prompt(
"この画像とテーマをもとに、折り紙プロジェクトのアイデアを3つ出してください。",
images: [image]
)
let response = try await session.generateText(for: prompt)
return response.text
}
ポイント:
LanguageModelSession()はモデルとやり取りするセッションを作成しますPromptはテキストと画像を同時に受け取り、マルチモーダル理解を実現しますgenerateText(for:)はリクエストを送信し、生成結果を取得します
Vision framework も統合され、OCR による精密な文字抽出やバーコードスキャンなどのツールをすべてオンデバイスで提供します。
2 つ目は server models のサポートです。 複雑なタスクでは Claude や Gemini などのクラウドモデルへシームレスに切り替えられます。どのモデルプロバイダでも、Swift package を通じて Language Model protocol を実装できます。
import FoundationModels
import ClaudeProvider // サードパーティの Swift パッケージ
let profile = DynamicProfile {
Profile("創作生成") {
LanguageModel.claude
Temperature(0.8)
}
Profile("深い推論") {
LanguageModel.appleFoundationModel
ReasoningLevel(.deep)
}
}
ポイント:
- Swift package を通じてサードパーティモデルプロバイダを導入します
DynamicProfileにより、同じ session の中でモデルを動的に切り替えられますTemperature(0.8)は生成結果の創造性を制御します
3 つ目は Dynamic Profiles です。 これは新しい宣言型 API で、同じ会話の中で場面に応じてモデル、ツール、指示を切り替えられます。
import FoundationModels
let session = LanguageModelSession(profile: origamiProfile)
var origamiProfile: DynamicProfile {
DynamicProfile {
Profile("創作生成") {
LanguageModel.appleFoundationModel
Temperature(0.8)
}
Profile("チュートリアル生成") {
LanguageModel.appleFoundationModel
ReasoningLevel(.deep)
}
Profile("用語解説") {
LanguageModel.systemLanguageModel // オンデバイスモデル
}
}
}
ポイント:
- 3 つの Profile は同じ連続した transcript を共有するため、コンテキストが失われません
- 簡単なタスクはオンデバイスの
systemLanguageModelを使い、複雑なタスクはクラウドを使います - Profile はモデルの各ターンで再計算され、常に最新状態を保ちます
(12:17) 周辺ツールも全面的に強化されました。Evaluations framework は prompt の信頼性をテストし、FM instrument はモデルの挙動を可視化してデバッグし、fm CLI はターミナルから直接モデルを呼び出せます。さらに Core Spotlight ベースのプライベート RAG ツールと、近日オープンソース化される Foundation Models Swift package も用意されます。同じ API がアプリ内でもサーバー上でも動きます。
Core AI: どんなモデルでもデバイスへ持ち込む
(13:15) 自分のモデルをデバイス上にデプロイしたいなら、Core AI が最適です。メモリ安全な Swift API、細かな量子化管理とモデル特化、カスタム GPU kernel の作成をサポートします。
付属の Python ツールは PyTorch モデルの変換と最適化に対応します。コンパイラは ahead-of-time コンパイルをサポートし、Instruments とビジュアルデバッガはテンソル値を追跡して元の Python ソースコードへ直接対応付けられます。
iPhone 上のリアルタイムビジョンモデルから、Mac 上の数十億パラメータ級 LLM agent まで、Core AI は対応できます。サーバー依存も token コストもありません。
App Intents: システム AI にアプリを発見し、使ってもらう
(14:45) App Intents の中核は schemas です。これはシステムが事前定義した構造化テンプレートで、Siri は長年の言語モデル訓練によって深く理解しています。
import AppIntents
@EntitySchema
struct MessageEntity: IndexedEntity {
let id: UUID
let content: String
let sender: ContactEntity
}
@IntentSchema
struct SendMessageIntent: AppIntent {
static var title: LocalizedStringResource = "メッセージを送信"
@Parameter(title: "宛先")
var recipient: ContactEntity
@Parameter(title: "本文")
var message: String
func perform() async throws -> some IntentResult {
try await MessageService.send(to: recipient, content: message)
return .result()
}
}
ポイント:
@EntitySchemaと@IntentSchemaは、Siri がコンテンツと操作を理解できるようにしますIndexedEntityプロトコルはコンテンツを Spotlight semantic index に自動的に組み込みます- システム定義 schemas はタスク管理、写真編集、コミュニケーションなどのカテゴリをカバーします
(16:27) View Annotations API は画面上の内容と entity を関連付けます。ユーザーが「これを Kevin に送って」と言うと、システムは「これ」が画面上のどの画像を指すのか識別できます。
import SwiftUI
import AppIntents
struct MessageListView: View {
var messages: [MessageEntity]
var body: some View {
List(messages) { message in
MessageRow(message: message)
.entityAnnotation(message)
}
}
}
ポイント:
.entityAnnotation(message)はリスト行と対応するMessageEntityを関連付けます- ユーザーが自然言語で画面内容を参照したとき、システムは正確に対象を特定できます
- App Intents と組み合わせれば、ユーザーは特定のコマンドを覚える必要がありません
SwiftUI: コードは少なく、できることは多く
(29:12) SwiftUI は今年、インタラクション、速度、機能の面で実質的に改善されました。
ドラッグによる並べ替えは 1 行で実現できます。
Grid {
ForEach(origamiModels) { model in
OrigamiCard(model: model)
.reorderable()
}
}
.reorderContainer()
Swipe actions は List だけに限定されなくなりました。
ScrollView {
ForEach(projects) { project in
ProjectRow(project: project)
.swipeActions {
Button("削除", role: .destructive) { delete(project) }
}
}
}
.swipeActionsContainer()
(32:40) Toolbar には visibilityPriority と overflowMenu が追加され、ウインドウが小さくなると重要なボタンは残り、二次的なボタンはメニューへ折りたたまれます。
(33:53) Document-based App には新しい基盤が用意され、ファイル URL の直接読み書き、部分更新、Observable 構成、Swift concurrency との深い統合をサポートします。
(34:25) Spatial Preview フレームワークにより、Mac App は 3D モデルを Apple Vision Pro へリアルタイムにストリーミングし、空間プレビューと編集ができます。
Swift 6.4: 日常のコーディングをより滑らかに
(38:41) Swift 6.4 は日常的な摩擦の解消に重点を置いています。
// クロスプラットフォームのバージョン宣言を短く書ける
@available(anyAppleOS, introduced: 27.0)
func newFeature() { }
// defer の中で直接 await できる
defer {
await cleanupResources()
}
// 局所的な警告制御
#warning("一時的に旧バージョンと互換にする", as: .warning)
#warning("新しいコードではエラー処理が必須", as: .error)
ポイント:
anyAppleOSは各プラットフォームのバージョン番号を列挙する書き方を置き換えますdeferの中で直接awaitを使えます- 警告のレベルを領域ごとに制御でき、移行期には特に役立ちます
(39:55) よく問題になる “The compiler is unable to type check this expression in reasonable time” エラーは、一般的な場面で大幅に減ります。直接コンパイルが通るか、より対応しやすいエラーメッセージが出ます。
Xcode 27: Agentic Coding の全工程
(42:47) Xcode 27 はサイズが 30% 小さくなり、Apple silicon 専用になり、コンポーネントはバックグラウンドで自動更新されます。設定は iCloud で同期されるため、新しい Mac でもワンクリックで開発環境を復元できます。新規プロジェクトでは bundle ID の入力が不要になり、テンプレートを選ぶだけでエディタに入れます。
(45:46) テーマシステムは全面的にパーソナライズされ、IDE 全体の配色をカスタマイズできます。プロジェクトごとに異なるテーマも設定できます。
(47:54) Device Hub は Simulator に代わり、シミュレータと実機を統一管理します。iOS App のサイズを動的に調整したり、システム設定を切り替えたり、Mac から実機を直接起動して操作したりできます。
(50:12) 最大の見どころは agentic coding です。/plan コマンドを使うと、エージェントが先に方針を出し、確認後に実装します。エージェントはプロジェクト構造を探索し、確認質問をし、コードを生成し、プレビューを作成します。
(53:18) エージェントは自動テストも行えます。Device Hub の中でクリック、スワイプ、入力を行い、テストレポートとスクリーンショットを生成します。ローカライズも可能で、文字列を単語単位で置き換えるのではなく、文脈を見て翻訳します。
(55:13) Organizer のクラッシュレポートはそのままエージェントに渡せます。分析、特定、再現、修正、検証まで、全工程が自動化されます。
重要な示唆
-
「写真でカスタマイズ」するローカル EC アプリを作る: ユーザーが家の一角を撮影すると、アプリが Foundation Models のマルチモーダル能力を使って、その場面に合う家具を推薦します。オンデバイスモデルが画像理解を行い、クラウドモデルが詳しい推薦文を生成します。200 万ダウンロード未満なら無料です。
-
自然言語で操作できるノートアプリを作る: App Intents で「ノート作成」「ノート検索」「ノート共有」などの操作を公開します。ユーザーが Siri に「さっき撮った会議のホワイトボードをノートに整理してチームに共有して」と言うと、システムが画面内容を自動認識して実行します。
-
完全ローカルで動くプライバシー重視の AI ツールを作る: Core AI でローカル文書分析モデルをデプロイします。契約書やカルテのような機密ファイルは完全にデバイスから出ず、サーバー依存もサブスクリプション費用もありません。
-
Xcode agent で多言語ソーシャルアプリを 3 日でプロトタイプする: 要件説明から始め、エージェントに SwiftUI 画面、Foundation Models 統合、多言語対応を生成させます。エージェントは言語ごとの UI 適応をテストし、開発者はレビューと調整に集中します。
-
ユーザーが AI agent をカスタマイズできる創作ツールを作る: Dynamic Profiles を使い、ユーザーが「創作アシスタント」「校正者」「翻訳者」など複数の役割を設定できるようにします。それぞれが異なるモデルとパラメータを使い、同じプロジェクト内で協調します。
関連 Session
- Private Cloud Compute 上の新しい Apple Foundation Model で構築する — Private Cloud Compute で Foundation Model を使う方法を詳しく解説
- Core AI に出会う — デバイス上でカスタム AI モデルを実行する方法を学ぶ
- Siri と Apple Intelligence 向け App Intents の高度な機能を探る — App Intents の高度な機能を詳しく解説
- fm CLI と Python SDK で AI 搭載スクリプトを構築する — Foundation Models のコマンドラインと Python ツール
- Xcode のエージェントでアプリを翻訳する — Xcode エージェントによるアプリのローカライズ
コメント
GitHub Issues · utterances