App Intents는 Apple이 여러분의 앱에 제공하는 새로운 API입니다
2026년 2월 8일 아침, 저는 부엌 싱크대 아래에 손을 두고 있는 상태로 Apple Watch에서 Siri에게 물 8 oz를 기록해달라고 요청했습니다. 물이 기록되었습니다. 시계 다이얼로그에는 32 oz가 남았다고 표시되었습니다. 화면을 만지지 않았습니다.1
11주 전, 저는 수분 추적 iOS 앱인 Water에 단 하나의 Swift 파일을 추가했습니다: LogWaterIntent.swift로, 80줄의 AppIntent와 세 가지 Siri 문구 변형을 선언하는 AppShortcutsProvider였습니다. 이 파일은 이제 제가 보유한 가장 뜨거운 API 표면입니다.2
여기서 제가 체득하는 데 시간이 걸린 부분이 있습니다. App Intents는 Siri 기능이 아닙니다. 이는 서드파티 앱이 Apple Intelligence와 맺는 계약이며, Apple Intelligence는 iOS 18에서 배포를 시작해 iOS 26까지 계속 구축해온 시스템 AI 표면입니다.3 iOS 앱을 출시하면서 App Intents를 여전히 “있으면 좋은” 음성 기능으로 취급하고 있다면, Apple이 구축한 것을 잘못 읽고 있는 것입니다. App Intents는 Apple의 AI가 사용자를 대신해 여러분의 앱처럼 작동할 수 있게 해주는 API입니다. 그 외 모든 것(Siri, Spotlight, Shortcuts, Apple Intelligence 요약, Watch와 Vision Pro 표면)은 그 계약의 하위 흐름입니다. iOS 26에 출시된 온디바이스 LLM인 Foundation Models는 인앱 도구 호출을 위한 별도의 Tool 프로토콜을 노출하며, App Intents를 통하지 않고 병렬로 실행됩니다.
TL;DR
- App Intents는 여러분의 앱이 할 수 있는 일을 Apple의 AI가 직접 호출할 수 있는 타입화되고 구조화된 방식으로 선언합니다. Apple이 서드파티 앱에 제공하는 도구 사용 API입니다.
- 실제 프로덕션 예시 한 가지: Water의
LogWaterIntent. 80줄, 완전한 SwiftData 쓰기, HealthKit 동기화, 로케일 인식 단위 변환, 구조화된 Siri 다이얼로그 응답. - iOS 26은 Apple의 온디바이스 LLM인 Foundation Models를 추가했습니다. Foundation Models는 인앱 도구 사용을 위한 자체
Tool프로토콜을 노출하며, App Intents는 Siri / Spotlight / Apple Intelligence가 앱 전반에 걸쳐 호출하는 정식 표면으로 남아 있습니다. 같은 방향, 두 개의 평행 계약입니다. - 2026년에 App Intents가 없는 앱은 Apple Intelligence에 보이지 않습니다. AI 패브릭은 여러분이 선언한 인텐트를 통해 라우팅되거나, 그렇지 않으면 여러분의 앱을 우회해 경쟁사로 라우팅됩니다.
- Apple은 3년 동안 이를 우리에게 알려왔습니다. 이름(App Intents, App Shortcuts, Apple Intelligence)은 의도적입니다. 매 WWDC마다 계약은 스택의 한 계층씩 위로 올라갑니다.
App Intent는 실제로 무엇인가
2026년 2월 8일 커밋 e398c58에 출시된 LogWaterIntent의 전체 소스:2
import AppIntents
import SwiftData
struct LogWaterIntent: AppIntent {
static var title: LocalizedStringResource = "Log Water"
static var description: IntentDescription = "Log a glass of water to your daily intake"
@Parameter(title: "Amount", default: 8)
var amount: Int
static var parameterSummary: some ParameterSummary {
Summary("Log \(\.$amount) oz of water")
}
func perform() async throws -> some IntentResult & ProvidesDialog {
let container = try ModelContainer(for: WaterEntry.self, DailyLog.self, UserSettings.self)
let context = ModelContext(container)
let settingsDescriptor = FetchDescriptor<UserSettings>(
predicate: #Predicate { $0.id == "user-settings" }
)
let settings = try context.fetch(settingsDescriptor).first ?? UserSettings()
let amountMl: Double
if settings.unitSystem == .imperial {
amountMl = Double(amount) * 29.5735
} else {
amountMl = Double(amount)
}
let todayKey = DailyLog.todayKey()
let logDescriptor = FetchDescriptor<DailyLog>(
predicate: #Predicate { $0.dateKey == todayKey }
)
let log: DailyLog
if let existing = try context.fetch(logDescriptor).first {
log = existing
} else {
log = DailyLog(date: .now, goalAmount: settings.dailyGoal)
context.insert(log)
}
let entry = WaterEntry(amount: amountMl)
log.entries.append(entry)
try context.save()
if settings.healthKitEnabled {
try? await HealthKitService.shared.logWater(amount: amountMl, date: entry.timestamp)
}
let unit = settings.unitSystem == .imperial ? "oz" : "mL"
let totalDisplay = settings.formatAmount(log.totalAmount)
return .result(dialog: "Logged \(amount) \(unit). Today's total: \(totalDisplay)")
}
}
struct WaterShortcuts: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: LogWaterIntent(),
phrases: [
"Log water in \(.applicationName)",
"Add water in \(.applicationName)",
"Drink water in \(.applicationName)",
],
shortTitle: "Log Water",
systemImageName: "drop.fill"
)
}
}
(Water의 현재 프로덕션 버전은 이 파일에서 목표 달성/잔여량 조건을 추가해 다이얼로그를 더 발전시켰습니다. 위의 2월 8일 출시 코드는 제가 부엌 싱크대에서 테스트한 코드입니다.)
여기서 이름을 붙일 가치가 있는 세 가지가 있는데, 대부분의 “App Intents 튜토리얼”이 이를 대충 다루기 때문입니다.
@Parameter가 스키마입니다. Apple의 AI는 기본값 8을 가진 amount: Int를 봅니다. Siri가 “log 12 oz of water”를 파싱하면 LogWaterIntent(amount: 12)를 생성하고 perform()을 호출합니다. 제 쪽에서는 문자열 파싱이 없습니다. 타입 시스템이 곧 스키마입니다.5
parameterSummary는 매개변수의 자연어 반영입니다. Apple은 이를 사용해 Shortcuts UI, 다이얼로그, 그리고 점점 더 Apple Intelligence의 확인 패널에서 액션을 렌더링합니다. 요약은 사용자에게 다시 큰 소리로 읽힙니다. 잘못 작성하면 사용자는 어색한 문장을 듣고, 잘 작성하면 표면이 네이티브하게 느껴집니다.6
perform()은 IntentResult & ProvidesDialog를 반환합니다. 이것이 구조화된 반환입니다: AI 표면은 성공/실패뿐만 아니라 사용자가 듣는 다이얼로그 문자열을 받습니다. Apple은 결과가 Siri, Spotlight, Watch, 그리고 (iOS 26에서) Apple Intelligence의 응답 체인에 구성될 수 있도록 점점 더 ProvidesDialog, ProvidesView, 또는 ReturnsValue를 기대하고 있습니다.7
하단의 AppShortcutsProvider 블록은 Siri 문구를 등록하는 부분입니다. \(.applicationName) 토큰은 Siri가 “Water”를 자동으로 삽입하는 위치입니다. 동일한 인텐트에 대한 세 가지 문구 변형은 Apple의 NL 파서가 문구 사전을 유지하지 않고도 사용자 표현을 일치시킬 수 있는 여지를 더 줍니다. systemImageName은 실제 SF Symbols 이름입니다; Spotlight, Shortcuts, Apple Intelligence가 액션 아이콘을 렌더링하는 방식입니다.
이것이 SwiftUI 이후 가장 중요한 iOS API인 이유
iOS API은 두 가지 모양으로 옵니다. 일부는 앱이 어떻게 자신을 그리는지에 관한 것입니다(UIKit, SwiftUI, Metal). 일부는 앱이 시스템과 어떻게 통합되는지에 관한 것입니다(URL 스킴, Universal Links, 위젯). App Intents는 세 번째 모양입니다: Apple의 AI가 여러분의 앱을 어떻게 사용하는지입니다.
진행 과정을 추적해볼 가치가 있습니다.
- iOS 10 (2016)은 SiriKit Intents(
INIntent)를 도입했으며, 이는 서드파티 앱이 음성으로 다뤄질 수 있는 첫 번째 시기였습니다. 표면은 좁았습니다: 엄격한 스키마를 가진 고정된 도메인 목록(메시징, 결제, 차량 호출).8 - iOS 12 (2018)는 Siri Shortcuts로 표면을 확장했습니다: 모든 앱은
NSUserActivity또는INIntent를 기증하고 Siri가 이를 제안하기를 바랄 수 있었습니다. - iOS 13 (2019)은 인앱 인텐트 처리를 추가하여, 앱이 시스템 Siri UI로 백그라운드 처리하지 않고도 단축어 호출에 응답할 수 있게 했습니다.
- iOS 16 (2022)은 App Intents 프레임워크를 도입했습니다: 타입화되고 선언적이며,
@Parameter와AppShortcutsProvider를 사용합니다. 새로운 개발에서는INIntent전임자가 사실상 대체되었습니다.9 - iOS 18 (2024)은 Apple Intelligence를 도입하고 가능한 곳마다 Siri 요청을 App Intents를 통해 라우팅하기 시작했습니다. Apple Intelligence의 “개인 컨텍스트” 기능은 App Entities(App Intents의 데이터 버전)에서 읽습니다.10
- iOS 26 (2025)은 Apple의 온디바이스 LLM인 Foundation Models 프레임워크를 도입했습니다. Foundation Models는 인앱 도구 호출을 위한 별도의
Tool프로토콜을 노출합니다. App Intents는 Apple Intelligence를 위한 정식 크로스 앱 표면으로 남아 있고,Tool은 직접적인 LLM 호출을 위한 인앱 표면입니다. 두 계약은 평행하게 실행됩니다.4
계약은 매 릴리스마다 스택의 위로 확장되어 왔습니다. 원래 App Intent의 소비자는 Shortcuts를 탭하는 사람이었습니다. 그런 다음 Siri 음성. 그런 다음 Spotlight. 그런 다음 Apple Intelligence 요약. 이제 Apple Intelligence의 LLM 기반 시스템 표면이 사용자 요청에 따라 작동하기 위해 이를 사용합니다. 2026년에 출시하는 App Intent 표면은 iOS 27, 28, 29에서 Apple Intelligence가 호출할 표면입니다.
위의 패턴이 제가 App Intents가 Siri 기능이 아니라고 말할 때 의미하는 것입니다. 이는 전체 Apple AI 패브릭을 위한 구조화된 도구 사용 API입니다. SwiftUI가 가장 중요한 UI API이 된 이유는 visionOS, watchOS 10+, iOS 17+에서 앱을 작성하는 유일한 방법이 되었기 때문입니다. App Intents는 AI 측면에서 동일한 궤적을 추적하고 있습니다: Apple이 모든 베팅을 거는 표면입니다.
Foundation Models가 출시된 지금 무엇이 변하는가
Foundation Models는 모든 Apple Intelligence 호환 기기에 출시되는 프레임워크입니다. 하드웨어 컷오프는 동일한 Apple Intelligence 목록입니다: iPhone 15 Pro 및 15 Pro Max(A17 Pro), iPhone 16 라인, iPhone 17 라인, iPhone Air, iPhone 17e, M1 이상의 iPad Pro, M1 이상의 iPad Air, A17 Pro의 iPad mini, M2 이상의 Vision Pro, M1 이상의 Mac. 주목할 만한 부재: 기본 iPhone 15 / 15 Plus.412
함의: Apple의 시스템 표면(Siri, Spotlight, Apple Intelligence)이 여러분의 앱을 호출한다면, App Intents와 App Entities를 통해 호출합니다. 시스템 AI 패브릭에서 서드파티 앱을 위한 setSystemPrompt(...) API은 없습니다. 인텐트 레지스트리가 있을 뿐입니다. Foundation Models는 자체 온디바이스 LLM 기능을 원하는 개발자를 위한 평행 인앱 Tool 표면을 추가합니다. 크로스 앱 계약(Apple Intelligence와 Siri가 여러분의 앱을 찾기 위해 사용하는 것)은 App Intents를 통해 실행됩니다.
앱 개발자에게 세 가지 구체적인 결과:
관련 App Intent가 없는 앱은 해당 카테고리의 Siri 음성 명령으로 도달할 수 없습니다. Apple Intelligence는 “Hey Siri, log my water”와 같은 문구를 일치하는 인텐트를 먼저 선언한 앱으로 라우팅합니다. 저는 2026년 2월에 Water의 인텐트를 출시했습니다. 프레임워크 방향에 대한 제 해석: 2027년에 인텐트를 출시하는 수분 앱은 라우팅 가중치가 이미 초기 진입자에게 누적된 시장에 진입하게 될 것입니다. 같은 논리가 쇼핑 목록, 운동 기록, 캘린더 항목, 사진 검색에 적용됩니다. 인텐트 선언에서 선점자 우위가 복리로 작용할 것으로 예상합니다. 다른 Apple 플랫폼 베팅 API(HealthKit 카테고리, Spotlight 리치 결과, Live Activities 토큰)에서 그랬던 것처럼.
Apple Intelligence 개인화는 인텐트뿐만 아니라 App Entities에서 읽습니다. AppEntity는 “이 앱은 이런 형태의 데이터를 가지고 있다”라고 선언합니다. 사용자가 “내 읽기 목록에 추가한 마지막 책이 무엇이었지”라고 물으면, Apple Intelligence는 설치된 모든 앱에서 Book과 일치하는 모든 AppEntity를 검색합니다. 앱에 읽기 목록이 있지만 BookEntity를 선언하지 않았다면, 데이터는 Apple의 AI 표면에 보이지 않습니다. Apple Intelligence는 여러분의 데이터를 검색하거나 참조할 수 없습니다.11
IntentResult & ProvidesDialog 반환 형태가 점점 더 중요해지고 있습니다. Apple Intelligence는 Siri, Spotlight, Watch 전반에 걸쳐 인텐트 결과를 더 긴 응답으로 구성하고 있습니다. 구조화된 다이얼로그 없이 단순히 성공만 반환하는 perform()은 시스템이 일관된 응답으로 구성하기 더 어렵습니다. ProvidesDialog와 ProvidesView는 선택적인 예의가 아닙니다; 여러분의 액션이 사용자의 AI 표면에서 인용으로 등장하는 방식입니다.
다르게 만들었으면 했을 것들
11주간의 Water 프로덕션 로그는 제가 더 일찍 했어야 했던 세 가지를 알려줍니다.
필요하다고 생각하는 것보다 더 많은 인텐트를 출시하세요. 저는 하나를 출시했습니다. 네 개를 출시했어야 했습니다: LogWaterIntent, CheckTodaysProgressIntent, AdjustGoalIntent, ShowHistoryIntent. 각각은 사용자가 실제로 시도하는 Siri 문구에 매핑됩니다(“how much water have I had today”는 제 앱의 데이터가 아닌 Apple의 일반 AI로 라우팅됩니다). 놓친 각 인텐트는 Apple Intelligence가 저를 우회해 라우팅하는 쿼리입니다.
다이얼로그 문자열은 이메일 본문이 아닙니다. 처음부터 ProvidesDialog가 있었지만, 초기 다이얼로그는 산문이었습니다. CarPlay나 AirPods를 통해 듣는 사용자는 짧고 구체적이며 사실 중심의 구조가 필요합니다: “8 oz logged. 32 oz to go.” 특히 Watch 표면은 적극적으로 잘라냅니다. 대화형 다이얼로그는 자신감 있는 사실 다이얼로그보다 더 나쁜 사용자 경험입니다. 4주차에 다시 작성했습니다.2
App Entities는 제가 생각했던 것보다 더 중요합니다. 저는 WaterEntry SwiftData 모델을 가지고 있습니다. Apple Intelligence가 “어제 언제 물을 마셨는지 보여줘”에 답할 수 있도록 WaterEntryEntity: AppEntity와 그 동반자 WaterEntryQuery: EntityQuery도 선언해야 합니다. 최소한의 브리징:11
struct WaterEntryEntity: AppEntity {
static var typeDisplayRepresentation: TypeDisplayRepresentation = "Water Entry"
static var defaultQuery = WaterEntryQuery()
var id: UUID
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(title: "\(amount) oz at \(timestamp.formatted())")
}
var amount: Int
var timestamp: Date
}
struct WaterEntryQuery: EntityQuery {
func entities(for identifiers: [UUID]) async throws -> [WaterEntryEntity] {
// Fetch matching entries from SwiftData
}
func suggestedEntities() async throws -> [WaterEntryEntity] {
// Recent entries Apple Intelligence can suggest
}
}
두 개의 작은 Swift 타입과 SwiftData 가져오기 글루입니다. Spotlight에서 항목을 개별적으로 표면화할 수 있도록(사용자가 “water”를 검색하면 올바른 항목으로 이동하도록) 엔티티를 IndexedEntity에 따르게 하고 쓰기 시 인덱스 업데이트를 기증하세요. Apple의 Spotlight 파이프라인이 단순한 AppEntity 노출 너머로 기대하는 것입니다.
같은 형태가 제 다른 앱에도 적용됩니다. 제 쇼핑 목록 앱인 Get Bananas는 이미 @Attribute(.unique) var id: UUID, name, amount, section, isChecked와 iCloud Drive 동기화를 위한 lastModified 필드가 있는 SwiftData @Model ShoppingItem을 가지고 있습니다.13 이를 ShoppingItemEntity: AppEntity로 래핑하고 몇 가지 인텐트(AddShoppingItem, CheckOffItem, ShowList)를 출시하면, Get Bananas가 이미 .mcpb MCP 서버를 통해 Claude Desktop에 노출하는 것과 동일한 영속성 계층을 Apple Intelligence에 노출하게 됩니다.14 두 개의 LLM 생태계, 두 개의 다른 계약, 같은 쇼핑 목록. 이것이 단일 출시 앱으로서의 평행 계약 명제입니다: SwiftData 모델이 데이터이고, App Intents가 Apple의 계약이며, MCP이 Anthropic의 계약이고, 두 표면 모두 동일한 진실의 원천에서 작동합니다.
App Intent를 출시하지 않을 때
거부도 설계의 일부입니다.
앱이 순전히 소비 중심(사용자의 사진 읽기, 뉴스 표시, 오디오 재생)이고 변경 가능한 사용자 상태가 없다면, App Intents는 노출할 것이 없을 수 있습니다. Apple의 프레임워크는 OpenIntent(컨텍스트로 앱을 열기만 함)를 지원하지만, 유일하게 유용한 액션이 “앱 열기”라면 인텐트는 오버헤드입니다. 단순히 가지기 위해 출시하지 마세요.
액션이 추상화하기 어려운 UI 어포던스(복잡한 다단계 캔버스 도구, 3D 편집 앱)에 의존한다면, 인텐트의 필수 parameterSummary는 누구도 실제로 말하지 않는 모호한 의사 자연어로 저하될 것입니다. “edit my photo with the blur tool at strength 7”이라는 Siri 문구는 기술적으로 가능하지만 어떤 인간도 이를 발음하지 않을 것입니다. 인텐트의 표면은 보상 없는 세금입니다.
올바른 규칙: App Intent는 사용자가 자연스럽게 말해서 액션을 트리거할 문장이 있을 때 그 가치를 합니다. “Log 8 oz of water”는 그런 문장입니다. “Apply Gaussian blur with sigma 2.4 to layer 3”은 그렇지 않습니다. 앱의 액션이 두 번째 패턴에 모여 있다면, 인텐트는 여러분의 전환 레버가 아닙니다.
마무리하는 견해
3년 동안 Apple은 iOS의 시스템 AI 패브릭이 App Intents를 통해 진행된다는 신호를 보내왔습니다. WWDC 2024는 이를 통한 Apple Intelligence 라우팅을 추가했습니다. WWDC 2025는 별도의 인앱 도구 호출 표면으로 Foundation Models를 추가하면서, App Intents를 Siri / Spotlight / Apple Intelligence가 계속 사용하는 크로스 앱 계약으로 남겼습니다. 모든 신호는 같은 방향을 가리킵니다: 타입화되고 선언적인 App Intent는 이제 서드파티 앱이 시스템과 맺는 계약입니다.
대부분의 iOS 앱은 여전히 App Intents를 Siri Shortcuts로 취급합니다: 시간이 있으면 출시할 기능. 제 해석은 그 프레이밍이 잘못 늙어갈 것이라는 점입니다. Apple Intelligence의 시스템 표면이 확장됨에 따라(이미 오늘날 Siri, Spotlight, Shortcuts, Apple Intelligence 요약을 통해), 인텐트를 선언하지 않은 앱은 라우팅 그래프 외부에 있게 될 가능성이 높습니다. 선점자 표면은, Apple의 다른 플랫폼 베팅을 지켜본 제 경험상, 복리로 늘어납니다.
Water는 11주 동안 LogWaterIntent를 출시한 상태입니다. App Intent를 출시하는 코드의 양은 단일 파일에 들어갈 만큼 작습니다. 출시하지 않는 비용은 매 Apple Intelligence 릴리스와 함께 커집니다.
2026년에 iOS 앱을 출시하면서 적어도 하나의 App Intent를 선언하지 않았다면, 로드맵에 누락된 항목이 있는 것입니다. 추가하세요.
FAQ
iOS 개발에서 App Intent란 무엇인가요?
App Intent는 앱의 액션 중 하나를 Apple의 시스템 AI 표면에 노출하는 타입화되고 선언적인 Swift 구조체입니다. @Parameter를 통해 매개변수를, parameterSummary를 통해 자연어 요약을, 그리고 작업을 수행하고 구조화된 결과를 반환하는 비동기 perform() 본문을 선언합니다. Apple의 Siri, Spotlight, Shortcuts, Apple Intelligence가 이를 호출할 수 있습니다. Foundation Models(Apple의 온디바이스 LLM)는 직접적인 인앱 도구 호출을 위해 별도의 Tool 프로토콜을 사용합니다.
App Intents는 이전의 INIntent와 어떻게 다른가요?
App Intents(iOS 16, 2022 도입)는 Apple의 기본 인텐트 프레임워크로 INIntent를 대체했습니다. 새로운 프레임워크는 완전히 Swift 네이티브이며, @Parameter와 같은 프로퍼티 래퍼를 사용하고, AppEntity를 통해 타입 안전 엔티티 쿼리를 지원하며, Siri, Spotlight, Shortcuts, Apple Intelligence가 호출하는 표면입니다. 이전의 INIntent는 여전히 지원되지만 새로운 기능 작업을 받지 않습니다.
App Intent를 출시하려면 iOS 26이 필요한가요?
아니요. App Intents는 iOS 16 이상에서 사용할 수 있습니다. iOS 26은 Foundation Models 프레임워크를 함께 추가하지만, App Intent 선언 자체는 iOS 16+에서 작동합니다. 위의 예제 코드는 SwiftData(iOS 17+)를 사용하므로 배포 대상은 perform() 본문이 가져오는 것에 따라 달라집니다. 단순한 App Intents는 iOS 16까지 작동하고, SwiftData 기반은 iOS 17이 필요합니다.
App Intent와 App Entity의 차이점은 무엇인가요?
App Intent는 액션(동사)입니다. App Entity는 앱이 알고 있는 데이터(명사)입니다. LogWaterIntent는 인텐트입니다. WaterEntry가 쿼리 가능한 타입이 되는 것은 엔티티입니다. Apple Intelligence는 둘 다 사용합니다: 액션을 취하기 위한 인텐트, 응답에서 데이터를 검색하고 참조하기 위한 엔티티.
App Intents는 Foundation Models 도구 호출과 어떻게 관련되어 있나요?
Foundation Models는 직접적인 인앱 LLM 도구 호출을 위한 자체 Tool 프로토콜을 노출합니다. App Intents는 Apple Intelligence, Siri, Spotlight가 호출하는 정식 크로스 앱 표면으로 남아 있습니다. 같은 방향(타입화되고 선언적인 도구 사용); 두 개의 평행 계약. 시스템 AI 표면에서 도달 가능하기를 원하는 앱은 App Intents를 출시합니다; 자체 사용자 정의 도구로 자체 온디바이스 LLM을 호출하기를 원하는 앱은 Tool 적합성을 출시합니다. 많은 앱이 둘 다 출시하게 될 것입니다.
App Intents는 기능이 아닙니다. 계약입니다. 인텐트를 먼저 출시하는 앱이 표면을 차지합니다; 나중에 출시하는 앱은 표면이 이미 다른 곳으로 라우팅되어 있음을 발견합니다. 11주 전 저는 Water에 하나를 출시했습니다. 복리는 이미 시작되었습니다.
참고문헌
-
개인 현장 테스트, 2026년 2월 8일, 오전 ~9:15 PT. 페어링된 Apple Watch에서 첫 엔드 투 엔드 Siri-to-
LogWaterIntent-to-SwiftData 쓰기로 기록됨. ↩ -
저자의 Water iOS 앱, 941 Apps에서 출판(941apps.com).
LogWaterIntent.swift는 2026년 2월 8일 커밋e398c58로 Water 1.4에 출시되었습니다. 위의 소스 코드 발췌는 그 초기 커밋 시점의 프로덕션 버전입니다; 다이얼로그 문자열은 그 이후 반복되었습니다. ↩↩↩ -
Apple, “Apple Intelligence Foundation Language Models,” machinelearning.apple.com. 온디바이스 + Private Cloud Compute 하이브리드. ↩
-
Apple Developer, “Foundation Models” framework. iOS 26+.
LanguageModelSession은Tool프로토콜을 통해 도구 호출을 노출하며, Siri / Spotlight / Apple Intelligence가 사용하는AppIntent프로토콜과 별개입니다. 둘은 같은 방향의 평행 계약입니다. ↩↩ -
Apple Developer, “Creating Your First App Intent”. 프로퍼티 래퍼 기반 매개변수 선언; 타입이 곧 스키마. ↩
-
Apple Developer, “ParameterSummary”. Shortcuts UI, Siri 다이얼로그, Apple Intelligence 확인에서 사용됨. ↩
-
Apple Developer, “Returning a value from your intent”.
ProvidesDialog,ProvidesView,ReturnsValue형태. ↩ -
Apple, “Introducing SiriKit”, WWDC 2016. SiriKit Intents(
INIntent)는 iOS 10에 출시. Siri Shortcuts는 iOS 12(2018)에서 따라왔고, 인앱 인텐트 처리는 iOS 13(2019). ↩ -
Apple, “What’s new in App Intents”, WWDC 2022. 타입화되고 선언적인 App Intents 프레임워크의 도입. ↩
-
Apple, “Bring your app to Siri”, WWDC 2024. App Intents와 App Entities를 통한 Apple Intelligence 라우팅. ↩
-
Apple Developer, “AppEntity protocol”. App Intents의 데이터 타입 버전; Apple Intelligence와 다른 시스템 표면에서 쿼리 가능. ↩↩
-
Apple, “Apple Intelligence System Requirements”. 호환 기기: iPhone 15 Pro 및 Pro Max(A17 Pro), iPhone 16 라인, iPhone 17 라인, iPhone Air, iPhone 17e, M1 이상의 iPad Pro, M1 이상의 iPad Air, A17 Pro의 iPad mini, M2 이상의 Apple Vision Pro, M1 이상의 Mac. 주목할 만한 부재: 기본 iPhone 15 / 15 Plus. Foundation Models 프레임워크는 동일한 하드웨어 게이트를 상속받습니다. ↩
-
저자의 Get Bananas, iOS, macOS, watchOS, visionOS용 SwiftUI + SwiftData 쇼핑 목록 앱.
ShoppingItemSwiftData@Model은Item.swift에 있습니다:@Attribute(.unique) var id: UUID,name: String,amount: String,section: String,isChecked: Bool,isOptional: Bool,sortOrder: Int,lastModified: Date?.iCloudBackupManager를 통한 iCloud Drive 동기화. ↩ -
Get Bananas는 Claude Desktop을 위해
get-bananas.mcpb로 번들된 MCP(Model Context Protocol) 서버를 출시합니다. 노출되는 도구:get_shopping_list,add_item,remove_item,update_item,update_shopping_list. Anthropic의 MCP 사양: modelcontextprotocol.io. ↩