앱 인텐트: 애플 생태계를 위한 기능 확장 프레임워크
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
- iOS/Swift 개발자, 앱 기능 확장 및 시스템 통합을 위한 개발자
- 난이도: 중급 이상 (Swift 언어 이해 필수)
핵심 요약
- 앱 인텐트는 애플 생태계 내에서 앱 기능을 확장하는 "생태계"
@MainActor
사용,@Parameter
/@ComputedProperty
등 Swift 언어 기반의 핵심 API- 앱 기능의 시스템 통합
- Siri, Spotlight, 액션 버튼, 위젯 등으로 앱 기능 확장 가능
- 기술적 제약 조건
title
은LocalizedStringResource
로 고정값,perform()
메서드는IntentResult
반환
섹션별 세부 요약
1. 앱 인텐트 생태계 개요
- 시스템 통합 기능
- Mac Spotlight, Siri, Control Center, 위젯, 액션 버튼, Apple Pencil Pro 지원
- 사용자가 앱 내부에 있지 않아도 풍부한 경험 제공
- 핵심 구성 요소
- Intent = 동사(예: "노트 열기", "운동 시작")
- App Enums/Entities = 명사(예: 사용자 콘텐츠, 네비게이션 섹션)
- App Shortcuts = 문장(예: "intent + 파라미터")
2. 기술적 구현 요구 사항
- 필수 구성 요소
title
: 고유한LocalizedStringResource
(앱 식별자로 사용)perform()
메서드: 로직 포함,IntentResult
반환@MainActor
사용: UI/네비게이션 작업 처리supportedModes: .foreground
로 앱 실행 전 실행 가능- IntentResult 기능
- Siri 대화 생성, 뷰 스니펫 표시, 다단계 단축키에 대한 반환 값 지원
3. 파라미터 및 엔티티 처리
- 파라미터 특징
@Parameter
속성으로 변수를 인텐트 입력으로 변환- 필수/선택적 파라미터 지원,
perform()
실행 전 필수 파라미터 검증 - 사용자 경험 향상을 위한 커스텀 타이틀/대화 지원
- 2024년 신규 기능: Mac Spotlight 실행을 위한 완전한 파라미터 요약 지원
- 엔티티 요구 사항
- 지속 가능한 식별자 (필수 - 조회 용이)
@Property
또는@ComputedProperty
로 속성 정의DisplayRepresentation
과EntityQuery
로 시스템 추론 지원
4. 시스템 통합 및 제한 사항
- 자동 시스템 노출
- Spotlight에서 두드러지게 노출, Siri 트리거 문구 (필수:
applicationName
플레이스홀더 포함) - 액션 버튼/Apple Pencil 설정, 단축키 앱 사용 시 설정 생략 가능
- 제한 사항
- 한 문장당 최대 하나의 파라미터만 지원
@ComputedProperty
(2024년): 데이터 모델 대신 값 복사 지연, Getter로 값 동기화 제거
5. 앱 단축키 제공자
- 단일 제공자 구조
- 하나의 앱 내 모든 단축키를 포함
intent
인스턴스 + 문구 + 타이틀 + 이미지로 구성- 파라미터화된 문구로 각 값에 대한 단축키 생성
- 크로스 앱 공유를 위한 선언적 데이터 표현
- 이미지/데이터 표현을 다른 앱의 액션에서 활용 가능
결론
- 앱 인텐트는 애플 생태계 내에서 앱 기능 확장을 위한 핵심 도구로, Siri, Spotlight, 위젯 등 다양한 시스템 통합을 통해 사용자 경험을 향상시킬 수 있음
- Swift 기반 구현과 고정값 제약을 준수해야 시스템 호환성 확보 가능
- 2024년 업데이트를 반영한
@ComputedProperty
및 Mac Spotlight 실행 지원을 활용한 실무 적용이 권장됨