---
title: iOS 27のAI系新機能をぜんぶ試す #WWDC26 #tryswift
tags:  #coreai #foundaitonmodels #ios #swift #ai #ml  
author: [Shuichi Tsutsumi](https://image.docswell.com/user/shu223)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PEXQRZKYJX.jpg?width=480
description: 2026年7月22日に Apple Japan オフィスで開催された [try! Swift Tokyo WWDC Recap 2026](https://luma.com/tryswift-wwdc26?tk=l0NJkl)  での発表資料です。
published: July 22, 26
canonical: https://image.docswell.com/s/shu223/59N2WV-ios-27-ai
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PEXQRZKYJX.jpg)

AI系新機能をぜんぶ試す
#WWDC26
try! Swift Tokyo WWDC Recap 2026


# Page. 2

![Page Image](https://bcdn.docswell.com/page/3EK9R854ED.jpg)

堤 修一
• フリーランスiOSエンジニア
• ID: shu223
• GitHub
• Docswell（スライド）
• Zenn, Qiita, note, はてな
ブログ, X (Twitter)
• YouTube, Podcast
• 著書： 商業出版4冊、個人出
版多数


# Page. 3

![Page Image](https://bcdn.docswell.com/page/L73W82KD75.jpg)

何を話すか？


# Page. 4

![Page Image](https://bcdn.docswell.com/page/87DKMZ32JG.jpg)

AI時代の技術勉強会のトークどうするか問題
• 資料を渡せばAIが実装してくれる
• 翻訳ツールの充実によりドキュメントや動画の「言語の壁」
もほぼ皆無
→ ドキュメントやセッション動画等の一次情報で十分


# Page. 5

![Page Image](https://bcdn.docswell.com/page/VJPKRD4LE8.jpg)

AIに頼む「前」のギャップ
• 知らないことはAIに頼めない（頼もうという発想がない）
• 知っていても、「ここでこれが使える」と思わなければAIに
頼まない
• 何がどこまでできるかを知らず「このユースケースには合
わないだろう」「どうせ精度が悪くて使えないだろう」等
と無意識に選択肢から落とす


# Page. 6

![Page Image](https://bcdn.docswell.com/page/2EVVR1X6EQ.jpg)

本日のテーマ


# Page. 7

![Page Image](https://bcdn.docswell.com/page/57GLM2V2EL.jpg)

「AI系新機能をぜんぶ試す」
Foundation ModelsやCore AI等のAI系新機能を実機デモベースでご紹介
•
何がどこまでできて何ができないのか
•
どれぐらい動くのか（あるいは動かないのか）
→ AIに依頼する「前」に必要な前提知識と手ざわりを持ち帰っていただく


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4EQYRP69JP.jpg)

話さないこと
•
APIの使い方の詳しすぎる解説
•
セッション動画のURLを渡してAIに質問すれば答えてくれそうなこと


# Page. 9

![Page Image](https://bcdn.docswell.com/page/KJ4W8YMR71.jpg)

お品書き
• 画像理解
• Core AI
• Private Cloud Compute
• Image Playground
• Evaluations
• 3Dオブジェクトトラッキング
• Spotlight × FM でLLM検索
• Tap to Segment


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LE1Y268V7G.jpg)

画像理解


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GEWGRWZ3J2.jpg)

画像入力
•
Foundation Modelsの新機能
•
昨年まで：テキストin/outのみ
•
iOS 27〜： 画像を渡せるようになった
// UIImageをそのまま添付できる
let prompt = Prompt {
&quot;Generate a caption for this image&quot;
Attachment(image)
}
let response = try await session.respond(to: prompt)


# Page. 12

![Page Image](https://bcdn.docswell.com/page/47ZLR51GJ3.jpg)

画像ベースのツール


# Page. 13

![Page Image](https://bcdn.docswell.com/page/YJ6WR9LQJV.jpg)

Visionベースのツール
1
• BarcodeReaderTool
• OCRTool
let session = LanguageModelSession(
tools: [BarcodeReaderTool(), OCRTool()]
)
1
実装もFoundation ModelsではなくVisionフレームワーク内にある


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GJ5M8N12J4.jpg)

カスタムツール
画像引数を取る独自ツールも定義可能
struct PlantIdentifierTool: Tool {
@Generable
struct Arguments {
var image: ImageReference
}
func call(arguments: Arguments) async throws -&gt; String {
let imageReference = arguments.image
let transcript = Transcript(history)
guard let imageAttachment = imageReference.resolve(in: transcript) else { ... }
let image = try imageAttachment.pixelBuffer()
return classifyPlant(image)
}
}


# Page. 15

![Page Image](https://bcdn.docswell.com/page/9E29K5117R.jpg)

!
画像理解デモ


# Page. 16

![Page Image](https://bcdn.docswell.com/page/D7Y4NKZ4EM.jpg)

WWDC26-237「画像理解の新機能」内に出てきた事例を実装
•
実際のプロンプトは不明なので想
•
入力写真はスライドから切り出し
たものを使用
•
デモとしてわかりやすいように日
像で作成
本語を利用


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VENYXR36J8.jpg)

• アジェンダ作成


# Page. 18

![Page Image](https://bcdn.docswell.com/page/Y79P8M9RE3.jpg)

• キャプション生成


# Page. 19

![Page Image](https://bcdn.docswell.com/page/G78D8L9G7D.jpg)

• 部屋の内装提案


# Page. 20

![Page Image](https://bcdn.docswell.com/page/L7LMRLWXJR.jpg)

• 冷蔵庫の写真からレシピ提案


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4EMYRM93EW.jpg)

• チラシ読み取り（OCRTool + BarcodeReaderTool）


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PER9RVGRJ9.jpg)

• 植物識別（カスタムツール）


# Page. 23

![Page Image](https://bcdn.docswell.com/page/P7XQRZXYEX.jpg)

デモ


# Page. 24

![Page Image](https://bcdn.docswell.com/page/37K9R8W47D.jpg)

• キャプション生成


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LJ3W821DJ5.jpg)

• 冷蔵庫の写真からレシピ提案


# Page. 26

![Page Image](https://bcdn.docswell.com/page/8JDKMZX2EG.jpg)

• チラシ読み取り（ツール呼び出しあり／なし）


# Page. 27

![Page Image](https://bcdn.docswell.com/page/VEPKRDPL78.jpg)

• 植物識別（カスタムツール）


# Page. 28

![Page Image](https://bcdn.docswell.com/page/27VVR1267Q.jpg)

!
試してみたメモ
•
iOS 27 beta では言語を英語、国をアメリカにしないとApple Intelligenceが
有効化できない → Foundation Modelsが使えない
3
•
3
しかし日本語でもちゃんと動く
•
supportedLanguages: 日本語を含む23 言語
•
supportsLocale(ja-JP): true
beta 3, 4で確認


# Page. 29

![Page Image](https://bcdn.docswell.com/page/5JGLM2R27L.jpg)

•
•
性能は悪くない（速度／内容）
•
十分な回答が返ってきた
•
冷蔵庫レシピ、植物識別の結果はイマイチ
Tool callingは不安定？
•
ツールありだとエラー（実装の問題の可能性もあり）
•
ツールなしでも文字, QRコード読めてしまった


# Page. 30

![Page Image](https://bcdn.docswell.com/page/47QYRPV9EP.jpg)

•
実機だとコンテキストサイズ 8192トークンと出る
（SystemLanguageModel.default.contextSize）
•
セッションでは同一とどこかで言っていた気がするが、betaのどこかで
引き上げられた？
•
→ beta 3で引き上げられたとのこと（by Apple Japanの武石さん）


# Page. 31

![Page Image](https://bcdn.docswell.com/page/KE4W8YWRJ1.jpg)

Private Cloud
Compute


# Page. 32

![Page Image](https://bcdn.docswell.com/page/L71Y26YVJG.jpg)

オンデバイスモデル vs PCC
オンデバイス
PCC
プライバシー
✅
✅ 同等
オフライン
✅
❌ ネット必須
利用制限
なし
ユーザーごとに1日制限
コンテキスト
4K
32K
リーズニング
—
✅ 3段階


# Page. 33

![Page Image](https://bcdn.docswell.com/page/G7WGRWG3E2.jpg)

実装： model を差し替えるだけ
let session = LanguageModelSession(
model: PrivateCloudComputeLanguageModel(),
tools: [tool],
instructions: instructions
)
• Generable もツール呼び出しも同じように動く
• 利用申請と、Capabilityの追加（entitlements追加）が必要


# Page. 34

![Page Image](https://bcdn.docswell.com/page/4JZLR5LGE3.jpg)

Reasoning
• 応答を生成する前に考える
• Light / Moderate / Deep の3段階（respond 呼び出し時に指定）
• リーズニングもトークンを消費し、コンテキスト制限に含まれる


# Page. 35

![Page Image](https://bcdn.docswell.com/page/YE6WR9WQEV.jpg)

!
PCCデモ 1： 記事要約
WWDCセッション 4 内に出てきた記事
要約の事例を実装
（右はセッション内のデモ／非公開）
4
WWDC26-319「プライベートクラウドコンピューティングによるApple
Foundation Modelの活用」


# Page. 36

![Page Image](https://bcdn.docswell.com/page/GE5M8NM2E4.jpg)

!
PCCデモ 2： 画像理解 with PCC
画像理解デモでPCCを使う


# Page. 37

![Page Image](https://bcdn.docswell.com/page/9729K591JR.jpg)

• 冷蔵庫の写真からレシピ提案


# Page. 38

![Page Image](https://bcdn.docswell.com/page/DJY4NK447M.jpg)

• 植物識別（カスタムツール）


# Page. 39

![Page Image](https://bcdn.docswell.com/page/V7NYXRY6E8.jpg)

!
試してみたメモ
• PCC利用のwaiting listは申請したら即acceptのメールが届い
た（先週ぐらいの話）
• 「冷蔵庫の中身からレシピ生成」「植物識別」といった画像
理解タスクでは明らかにオンデバイスモデルより性能良し


# Page. 40

![Page Image](https://bcdn.docswell.com/page/YJ9P8MPR73.jpg)

• マジで何の苦労もなくPCCに切り替えられて便利
• リミットだけが不安・・・具体的な上限値はドキュメント・
セッション・グループラボどこにも言及されてなさそう？


# Page. 41

![Page Image](https://bcdn.docswell.com/page/GJ8D8LDGJD.jpg)

• 正確なコンテキストサイズは 32768 トークン
（SystemLanguageModel.default.contextSize）
• リーズニング効いてるのかよくわからない...
• タスクが簡単すぎる？


# Page. 42

![Page Image](https://bcdn.docswell.com/page/LJLMRLMXER.jpg)

Evaluations


# Page. 43

![Page Image](https://bcdn.docswell.com/page/47MYRMY37W.jpg)

評価を回す新フレームワーク
10
•
LLM機能は同じ入力でも出力が毎回変わる → 「期待値と一致したらgreen」のユニット
•
→ データセットに対して生成をまとめて実行し、品質を数値で測定する（= 評価 /
テストが書けない
eval）
•
10
測り方
•
数値メトリクス: コードで計算できる値（所要時間、件数、形式チェック等）
•
モデルジャッジ: 別の大モデルが出力を採点し、期待値（正解）を書けない品質を
測る
WWDC26-298「Evaluationsフレームワークについて」


# Page. 44

![Page Image](https://bcdn.docswell.com/page/P7R9RV9RE9.jpg)

デモ1：記事要約デモのリーズニングレベル比較
• リーズニングレベル（light / moderate / deep）で要約品質がどう変
わるかを評価
• 要約に期待値（正解）はない → モデルジャッジ3軸（忠実性 / 網羅
性 / 簡潔さ）で評価


# Page. 45

![Page Image](https://bcdn.docswell.com/page/PJXQRZQY7X.jpg)

実装
struct SummarizationEvaluation: Evaluation {
let reasoningLevel: ContextOptions.ReasoningLevel?
// データセット: 記事本文のみ。要約に「正解」はないので expected なし
var dataset: ArrayLoader&lt;ModelSample&lt;Output&gt;&gt; {
ArrayLoader(samples: articleBodies.map {
ModelSample(prompt: $0, expected: nil)
})
}
// 評価対象: アプリと同じ経路で要約を生成
func subject(from sample: ModelSample&lt;Output&gt;) async throws -&gt; ModelSubject&lt;Output&gt; {
let output = try await ArticleSummarizationService.summarize(
articleBody: sample.promptDescription,
model: .privateCloudCompute, reasoningLevel: reasoningLevel)
return ModelSubject(value: output)
}
let faithfulness = ScoreDimension(&quot;Faithfulness&quot;, ...)
// モデルジャッジ3軸
}


# Page. 46

![Page Image](https://bcdn.docswell.com/page/3JK9R894JD.jpg)

公式サンプル BookTracker
• FMで本にタグを自動生成する機能を、同
梱データセットに対して一括評価
• Test Report に定量Evaluatorの合否 + モ
デルジャッジ（PCC上の大モデルが
Relevance / Usefulness をスコア + 根拠
テキスト付きで採点）
• プロンプト改訂の良し悪しを勘ではなく
数値で比較 — LLM機能の回帰テストに相
当


# Page. 47

![Page Image](https://bcdn.docswell.com/page/LE3W82WDE5.jpg)

実装
struct BookTaggingEvaluation: Evaluation {
// 評価対象: FMでタグ生成する自アプリのロジック
func subject(from sample: ModelSample&lt;BookTags&gt;) async throws -&gt; ModelSubject&lt;BookTags&gt; {
let result = try await BookTaggingService.generateTags(for: sample.promptDescription)
return ModelSubject(value: result)
}
// データセット: レビュー文 × 期待タグのペア
var dataset = ArrayLoader(samples: Book.sampleBooks.map { book in
ModelSample(prompt: book.review, expected: BookTags(tags: book.tags))
})
let tagCount = Metric(&quot;Tag Count&quot;)
// 定量メトリクス
let relevance = ScoreDimension(&quot;Relevance&quot;, ...)
}
// モデルジャッジ


# Page. 48

![Page Image](https://bcdn.docswell.com/page/8EDKMZK27G.jpg)

Spotlight × FM でLLM検索


# Page. 49

![Page Image](https://bcdn.docswell.com/page/V7PKRDKLJ8.jpg)

SpotlightSearchTool
• アプリのSpotlightインデックスをFoundation Modelsが検索ツー
ルとして使える
• = オンデバイスRAGが標準機能に
「最もリクエストの多かった機能の1つ」 6
6
セッション246「Core Spotlightを利用したLLM検索」


# Page. 50

![Page Image](https://bcdn.docswell.com/page/2JVVR1V6JQ.jpg)

!
デモ: WWDC26セッション検索アプリ
WWDC26の全138セッションを
インデックスして、自然言語でAI
に質問できる
• 「Core Spotlight のセッショ
ンはどれ？」→ このデモの元
セッション自身がヒット


# Page. 51

![Page Image](https://bcdn.docswell.com/page/5EGLM2L2JL.jpg)

実装
// アプリの Spotlight インデックスを FM の検索ツールに
let configuration = SpotlightSearchTool.Configuration(
sources: [.coreSpotlight(source)],
guide: .init(level: .focused(.items), format: .compact)
)
let tool = SpotlightSearchTool(configuration: configuration)
let session = LanguageModelSession(
tools: [tool], instructions: instructions
)


# Page. 52

![Page Image](https://bcdn.docswell.com/page/4JQYRPY97P.jpg)

Core AI


# Page. 53

![Page Image](https://bcdn.docswell.com/page/K74W8YZRE1.jpg)

要はCore MLの進化版
• ・・・とはセッション内でもドキュメント内でもグループラボでも
明言はしていない
7
• が、そう解釈しました
7
関連記事：「Core AIとCore MLの違い」 についてのAppleの公式見解


# Page. 54

![Page Image](https://bcdn.docswell.com/page/LJ1Y26RVEG.jpg)

apple/coreai-models
人気OSSモデル22種の変換レシピ + 実行用Swiftパッケージ + CLI
• LLM: Qwen / Gemma 3 / Mistral / GPT-OSS 20B
• 画像生成: Stable Diffusion / FLUX.2、VLM: Qwen3-VL
• 画像系: SAM 3 / YOLOS / 深度推定 / 超解像 等、音声: Whisper 等


# Page. 55

![Page Image](https://bcdn.docswell.com/page/GJWGRW1372.jpg)

変換は1コマンド
git clone https://github.com/apple/coreai-models &amp;&amp; cd coreai-models
# 物体検出（YOLOS）
uv run models/yolo/export.py --model hustvl/yolos-tiny
# LLM（Qwen3 0.6B、iOS向け 4/8bit 圧縮プリセット）
uv run coreai.llm.export qwen3-0.6b --platform iOS


# Page. 56

![Page Image](https://bcdn.docswell.com/page/4EZLR5PG73.jpg)

変換の所用時間 ・変換後サイズ
8
8
モデル
変換時間
変換後サイズ
EDSR（超解像 ×2）
27秒
5.3MB
YOLOS-tiny（物体検出）
39秒
23MB
Depth Anything 3（深度推定）
22秒
101MB
YOLOS-base（f32 / f16）
42秒 / 8秒
488MB / 244MB
Qwen3 0.6B（LLM、4/8bit）
4分50秒
454MB
Qwen2.5 1.5B（LLM、4bit）
4分47秒
896MB
時間は重みDL込み。MBP M4 Max, メモリ128GB使用。


# Page. 57

![Page Image](https://bcdn.docswell.com/page/Y76WR9MQ7V.jpg)

LLMは Foundation Models にプラグインでき
る
let model = try await CoreAILanguageModel(resourcesAt: modelURL)
let session = LanguageModelSession(model: model)
let response = try await session.respond(to: prompt)
• オンデバイスAFM / PCCと同じ LanguageModelSession
• respond側のコードは共通


# Page. 58

![Page Image](https://bcdn.docswell.com/page/G75M8NZ274.jpg)

!
Core AIデモ 1: Qwen記事要約
PCCデモの要約アプリに第3の選択肢「Qwen (Core AI)」を追加
case .coreAIQwen:
let model = try await CoreAILanguageModel(resourcesAt: bundleURL)
return LanguageModelSession(model: model)


# Page. 59

![Page Image](https://bcdn.docswell.com/page/9J29K5R1ER.jpg)

!
Core AI デモ2: SAM 3 テキスト指定セグメンテーション
•
任意の語で該当物体の全インスタン
スを切り抜く（Meta、848M）
•
標準API（Vision等）に相当する機能
はない・・・人物 / 自動前景 / 点・
矩形指定（Tap to Segment）まで
•
モデルは apple/coreai-models か
ら、サンプルアプリは CoreAIModel-Zoo より


# Page. 60

![Page Image](https://bcdn.docswell.com/page/DEY4NKD4JM.jpg)

実装
let segmenter = try await ImageSegmenter(resourcesAt: bundleDir)
let response = try await segmenter.segment(image: cgImage, prompt: &quot;human&quot;)


# Page. 61

![Page Image](https://bcdn.docswell.com/page/VJNYXR6678.jpg)

!
Core AIデモ3: 物体検出（YOLOS）
• モデルは apple/coreaimodels より
• 同リポジトリに同根のSwiftパ
ッケージで実行


# Page. 62

![Page Image](https://bcdn.docswell.com/page/YE9P8MLRJ3.jpg)

実装
let detector = try await ObjectDetector(resourcesAt: url.path)
let detections = try await detector.detect(image: cgImage)
// → boundingBox / label（COCO）/ confidence


# Page. 63

![Page Image](https://bcdn.docswell.com/page/GE8D8LXGED.jpg)

その他に用意したデモ
• 深度推定（Depth Anything 3）: 写真1枚から深度マップ。単
眼深度推定の標準APIは無い
12
• 超解像（EDSR ×2）: 5.3MBのモデルで写真を2倍拡大
12
Vision / Core Image / AVFoundation / ARKit / RealityKitの公式ドキュメントで確認（既存の深度APIはLiDAR等ハードウェア計
測値の取得）


# Page. 64

![Page Image](https://bcdn.docswell.com/page/LELMRL8X7R.jpg)

Image Playground


# Page. 65

![Page Image](https://bcdn.docswell.com/page/4JMYRM63JW.jpg)

今年のアップデート
13
•
画像生成モデルが一新（生成はPCC上で実行）
•
フォトリアル（写実）な画像も生成できるように（スタイル .any が追加 14）
•
サイズ指定 SizeSpecification.closest(to:)
•
ImagePlaygroundOptions（iOS 26.4）：サイズ・パーソナライズ等をまとめて
渡す新オプション型
•
パーソナライズ制御 ImagePlaygroundOptions.Personalization（iOS 26.4）
13
セッション375「高品質な画像の生成」
14
フォトリアルの専用スタイルは無く、未指定（.any）またはテキストでスタイル指定して出す


# Page. 66

![Page Image](https://bcdn.docswell.com/page/PJR9RVPR79.jpg)

!
デモ: 全機能ツアーアプリ
• 公式サンプルなし
• テーマ + スケッチの同時指定、スタ
イル比較（写実 vs アニメ）


# Page. 67

![Page Image](https://bcdn.docswell.com/page/PEXQRZ3YJX.jpg)

生成例: 同じスケッチから写実 / アニメ


# Page. 68

![Page Image](https://bcdn.docswell.com/page/3EK9R8Y4ED.jpg)

実装
Button(&quot;画像を生成&quot;) { showingPlayground = true }
.imagePlaygroundSheet(
isPresented: $showingPlayground,
concepts: concepts,
// テキスト / 抽出 / スケッチ / 画像を併用可
sourceImage: sourceImage,
onCompletion: { url in record(url) }
)
.imagePlaygroundOptions(options)
.imagePlaygroundGenerationStyle(defaultStyle, in: allowedStyles)


# Page. 69

![Page Image](https://bcdn.docswell.com/page/L73W829D75.jpg)

3Dオブジェクトトラッキング


# Page. 70

![Page Image](https://bcdn.docswell.com/page/87DKMZG2JG.jpg)

何年も待っていたアップデート
2018年（ARKit 2が登場した年）のツイート：


# Page. 71

![Page Image](https://bcdn.docswell.com/page/VJPKRD3LE8.jpg)

• ARWorldTrackingConfiguration に trackingObjects 追加
• Create MLで学習
• 学習データは大量の2D画像ではなく USDZモデル1個
let configuration = ARWorldTrackingConfiguration()
configuration.trackingObjects = [referenceObject] // iOS 27のObject Tracking
// configuration.detectionObjects（iOS 12〜のObject Detection）
session.run(configuration)
セッション283「visionOSのオブジェクトトラッキングの機能強化」


# Page. 72

![Page Image](https://bcdn.docswell.com/page/2EVVR146EQ.jpg)

!
3Dオブジェクトトラッキ
ングデモ
• 公式サンプル（visionOS向け）同梱
の
Apple_Magic_Keyboard.reference
object を流用
• 旧 detectionObjects（iOS 12〜）
とアプリ内で切り替え比較 — 動かし
たとき、新APIは追従し、旧APIは追
従しない（実測で目視確認済み）


# Page. 73

![Page Image](https://bcdn.docswell.com/page/57GLM212EL.jpg)

Tap to Segment


# Page. 74

![Page Image](https://bcdn.docswell.com/page/4EQYRPD9JP.jpg)

• タップ・なぞりの粗い指示で対象物を切り抜く対話的セグメンテーショ
ン
• 公式サンプルでタップ / 矩形 / ラッソ / スクリブルの4入力方式が試せる
// タップ点を種にした対話的セグメンテーション
var request = GenerateIterativeSegmentationRequest(seedPoint: point)
try request.addIncludedPoint(point)
// 追いタップで対象を追加
try request.addExcludedPoint(point)
// ダブルタップで除外
let handler = ImageRequestHandler(cgImage, orientation: orientation)
// → 切り抜きマスクが返る


# Page. 75

![Page Image](https://bcdn.docswell.com/page/KJ4W8YGR71.jpg)

ご清聴ありがとうございました！


