스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
앱을 Siri로 가져오기
앱 인텐트를 사용하여 앱의 기능을 Siri에 노출하는 방법을 알아보세요. 현재 사용할 수 있는 인텐트의 종류를 파악하고, 앱의 동작을 시스템에 통합하기 위한 맞춤형 인텐트를 생성하는 방법을 살펴보세요. 또한 제공해야 하는 메타데이터에 대해 알아보고, 엔티티가 Spotlight에서 검색되게 만드는 방법과 온스크린 참조에 어노테이션을 추가하는 방법 등을 알아봅니다.
챕터
- 0:00 - Introduction
- 1:44 - What's new with Siri
- 8:34 - Actions
- 15:38 - Personal context
리소스
-
다운로드
‘앱을 Siri로 가져오기’ 세션에 오신 것을 환영합니다 저는 Siri의 소프트웨어 엔지니어 Daniel Niemeyer입니다 오늘은 앱을 Siri로 가져오는 방법을 살펴보겠습니다 먼저 기존 프레임워크에 대해 살펴보고 올해 새롭게 도입된 Apple Intelligence에 대해 이야기하겠습니다 Siri가 앱에서 작업을 수행하도록 하는 새로운 API도 소개합니다 그리고 직접 통합할 수 있는 몇 가지 흥미로운 개인적 맥락 기능도 소개합니다 마지막으로 오늘 세션의 주요 내용을 정리해 보겠습니다 앱을 Siri와 통합해야 하는 이유는 무엇일까요? Siri를 사용하면 사용자가 기기의 어느 화면에서든 앱을 이용해 작업을 수행할 수 있습니다 또한 Siri는 사용자들이 앱을 보고 있을 때 신속하게 작업을 수행할 수 있도록 도와줍니다 기존 프레임워크인 SiriKit과 앱 인텐트를 사용하여 이를 수행하는 방법을 살펴보겠습니다 iOS 10부터 SiriKit이 도입되었습니다 덕분에 개발자는 시스템이 제공하는 인텐트를 통해 사용자가 이미 이용하는 Siri 기능을 앱에서도 사용할 수 있게 지원할 수 있습니다 음악 재생이나 문자 메시지 보내기 같은 것들이죠 SiriKit 도메인은 이러한 기능을 활성화하는 가장 좋은 방법이며 이 세션의 뒷부분에서 올해 더욱 개선된 사항을 살펴보겠습니다 iOS 16에서는 앱 인텐트가 도입되었습니다 이 새로운 프레임워크는 앱을 Siri, 단축어 Spotlight 등과 통합해 줍니다 앱이 기존 SiriKit 도메인과 겹치지 않는다면 앱 인텐트가 적합한 프레임워크입니다 자세한 내용을 알아보려면 WWDC24의 ‘앱 인텐트로 사용자에게 앱의 핵심 기능 제공하기’ 비디오를 시청하세요 올해에는 Apple Intelligence 덕분에 Siri의 성능이 크게 향상되었습니다 새로운 대규모 언어 모델을 통해 그 어느 때보다 뛰어난 경험을 제공합니다 아직 앱을 Siri와 통합하지 않았다면 지금이 바로 절호의 기회입니다 Apple Intelligence를 통해 세 가지 주요 방식으로 Siri를 더욱 발전시키는 데 필요한 기본 기능을 갖추게 되었습니다 첫째, Siri가 이제 더욱 자연스러운 목소리로 말합니다 둘째, Siri는 이제 더욱 맥락에 맞고 사용자에게 맞춤화됩니다 Apple Intelligence로 Siri가 화면을 인식할 수 있어 사용자가 무엇을 보는지 이해하고 그에 맞게 행동할 수 있습니다 셋째, 언어 이해도가 더욱 풍부해져 이제 Siri와 훨씬 자연스럽게 대화할 수 있습니다 말을 더듬더라도 Siri가 사용자의 의도를 이해할 수 있습니다 이미 SiriKit을 채택한 앱이라면 이러한 개선 사항이 자동으로 적용되어 무료로 제공됩니다 하지만 저희는 여기서 멈추고 싶지 않았습니다 Siri가 사용자를 대신해 앱에서 더 많은 것을 수행하도록 Siri 환경을 재구상하여 사용자가 기기에서 수행하는 작업을 더 많이 이해하도록 했습니다 이를 위해 방대한 앱 세계를 Apple Intelligence에 연결하기 위한 수단으로 앱 인텐트 프레임워크에 집중적으로 투자했습니다 그렇게 앱 인텐트 도메인이라는 일련의 새로운 API를 구축했습니다 지금 보여드리겠습니다 도메인은 도서, 카메라 또는 스프레드시트와 같은 특정 종류의 기능을 위해 설계된 앱 인텐트 기반 API 모음입니다 iOS 18에서는 이러한 도메인 중 12개를 출시합니다 Mail과 사진은 지금 바로 사용해 볼 수 있습니다 그리고 향후 몇 달간 더 많은 기능을 선보일 예정입니다 이들 각각에는 유연한 음성 상호 작용을 지원하면서도 매우 쉽게 적용할 수 있도록 학습 및 테스트된 광범위한 새로운 동작이 포함되어 있습니다 올해 Siri는 12개 도메인에서 100개 이상의 다양한 동작을 지원합니다 이를 통해 수행할 수 있는 작업의 예로 Darkroom과 같은 앱에서 Set Filter 인텐트를 사용할 수 있으므로 사용자가 “어제 내가 찍은 메리 사진에 시네마틱 프리셋을 적용해 줘”라고 말할 수 있게 됩니다 앱에 이러한 도메인에 해당하는 기능이 있다면 이 새로운 API가 안성맞춤일 것입니다 여러분의 피드백도 듣고 싶습니다 이것은 시작에 불과하며 Siri는 갈수록 더 많은 앱에서 더 많은 작업을 이해하고 수행할 수 있게 될 겁니다 이제 Assistant Schema로 앱 인텐트 도메인에 대한 작업을 빌드하는 방법을 보여드리겠습니다
스키마는 너무 광범위한 용어라 제가 정의를 내려보겠습니다 사전에서는 스키마를 클래스의 모든 멤버에게 공통적으로 적용되는 개념으로 일반적이거나 필수적인 유형 또는 양식이라고 합니다 Siri의 맥락에서 그 의미를 풀어 보겠습니다
Apple Intelligence는 방금 이야기한 도메인에서 Siri에게 새로운 기능을 제공하는 기반 모델에 의해 구동됩니다 이러한 모델은 특정 형태의 인텐트를 예상하도록 학습됩니다 이러한 형태를 스키마라고 합니다 그리고 Assistant Schema를 우리는 API라고 부릅니다 앱 인텐트를 올바른 형태로 구축하면 자연어의 복잡성을 걱정할 필요 없이 학습의 혜택을 누릴 수 있습니다 수행 메서드만 작성하고 나머지는 플랫폼이 알아서 처리하도록 맡겨두면 됩니다
올해에는 사진 생성이나 이메일 전송과 같은 100가지 이상의 인텐트에 대한 스키마를 구축했습니다 스키마는 각각 해당 인텐트를 사용하는 모든 사용자에게 공통으로 적용되는 일련의 입력과 출력을 정의합니다 이것이 바로 형태입니다 이 모든 지오메트리의 중심에는 수행 매서드가 있습니다 자유롭게 창의력을 발휘해 앱에 적합한 경험을 정의할 수 있습니다 이제 Apple Intelligence를 통한 Siri 요청의 라이프사이클을 살펴보면서 Assistant Schema를 실제로 시연해 보겠습니다 모든 것은 사용자 요청에서 시작됩니다 사용자 요청은 Apple Intelligence로 라우팅되어 모델을 통해 처리됩니다 Apple의 모델은 스키마를 추론하도록 특별히 학습되어 있어 사용자 요청에 따라 Apple Intelligence가 스키마를 예측할 수 있습니다 적절한 스키마가 선택되면 요청은 도구 상자로 라우팅됩니다 이 도구 상자에는 기기의 모든 앱의 AppIntent 모음이 스키마별로 그룹화되어 있습니다 인텐트를 스키마에 일치시켜 모델에 추론할 수 있는 기능을 부여합니다 마지막으로 AppIntent를 호출하여 작업을 수행합니다 결과가 표시되고 출력이 반환됩니다 다이어그램에 대한 설명은 여기까지입니다 몇 가지 코드로 넘어가 보겠습니다 다음은 사진 앨범을 만드는 AppIntent입니다 스키마를 따르는 것은 쉽습니다 AppIntent 선언 앞에 Swift 매크로 하나만 추가하면 됩니다 이렇게요 이 새로운 매크로는 항상 앱 인텐트 도메인에 바인딩되는 스키마에 대한 인수를 받습니다 이 예제에서는 photos가 도메인이고 createAlbum이 스키마입니다 스키마의 형태는 컴파일 시 이미 알고 있기 때문에 더 이상 AppIntent에 대한 추가 메타데이터를 제공할 필요가 없습니다 즉, 코드를 이렇게 더 줄일 수 있습니다
스키마 준수 인텐트는 알려진 형태 덕분에 코드에서 정의하기가 더 쉽습니다 그렇긴 하지만 형태가 항상 가장 유연한 건 아닙니다 하지만 걱정하지 마세요, 방법이 있으니까요 필요한 경우 선택적 매개변수를 사용하여 Assistant Intent를 확장할 수 있죠 형태에 약간의 유연성을 부여합니다 앱 인텐트 프레임워크에는 동작을 빌드하기 위한 인텐트만 있는 것은 아닙니다 앱의 개념을 모델링하기 위한 엔티티도 있습니다 이 인텐트에서 반환된 AlbumEntity처럼 말이죠
또한 Siri에 AppEntity를 노출하기 위한 새 매크로를 추가했습니다 인텐트와 마찬가지로 이 새로운 유형의 채택은 AppEntity 선언에 코드 한 줄을 추가하는 것만큼이나 쉽습니다 Assistant 엔티티는 사전 정의된 형태의 이점도 누릴 수 있습니다 따라서 앱 엔티티를 더욱 간결하게 구현할 수 있습니다 그리고 Assistant Intent와 마찬가지로 Assistant 엔티티는 필요한 경우 새로운 선택적 속성을 선언하여 형태를 훨씬 더 확장할 수도 있습니다 AlbumEntity의 Album Color 속성처럼요 마지막으로 enum도 빼놓을 수 없습니다 AppEnum을 Siri에 노출하는 것은 엔티티와 인텐트만큼이나 쉽습니다 enum 선언에 새로운 AssistantEnum 매크로를 추가하기만 하면 나머지는 알아서 처리됩니다
Assistant enum은 다른 유형들과 달리 열거 케이스에 어떤 형태도 강요하지 않습니다 구현하는 동안 완전한 표현력을 발휘할 수 있습니다 새로운 Assistant Schema 매크로에 대해 소개했으니 이제 Xcode 데모를 살펴볼까요? 저는 기기에서 사진을 보고 정리하는 미디어 보관함 앱을 개발하고 있습니다 제 앱을 Siri와 통합하여 작업을 수행하는 방법을 보여드리겠습니다 이 앱은 본 세션과 더불어 다운로드 가능한 샘플 코드로도 제공됩니다 앱을 실행하면 갤러리로 이동하고 여기에는 기기에서 볼 수 있는 사진과 비디오가 모두 표시되죠 사진을 클릭하면 전체 화면으로 볼 수 있습니다
또한 상단의 이 메뉴를 클릭하여 즐겨찾기와 공유 등의 작업을 수행할 수도 있습니다
이제 Xcode로 전환하여 앱의 코드를 보여드리겠습니다
제 앱에는 두 가지 기본 모델 유형이 있습니다 바로 애셋과 앨범이죠 애셋이 어떻게 정의되는지 보여드리겠습니다 애셋은 내 보관함에 있는 사진이나 비디오를 나타내는 객체입니다 애셋에는 title 및 creationDate와 같은 많은 속성이 있습니다
파일 맨 아래에는 제 애셋 클래스를 모델로 한 AppEntity를 반환하는 entity라는 계산된 속성이 있습니다 보시다시피 이 엔티티에는 제 모델에서 직접 함수화된 많은 속성이 포함되어 있습니다 ‘정의로 이동’을 선택하여 AssetEntity가 어떻게 정의되었는지 살펴보겠습니다 이 엔티티는 제 라이브러리에 있는 특정 애셋을 모델링합니다 제목, 생성 날짜, 위치 등 많은 속성을 노출합니다 엔티티는 앱의 콘텐츠를 모델링할 수 있는 좋은 방법입니다 앱 인텐트와 결합하면 시스템에서 엔티티로 작업을 수행할 수 있습니다 작업의 경우 저는 이미 앱에서 특정 AssetEntity를 열기 위한 앱 인텐트를 작성했습니다 여기에는 대상 매개변수, 열려는 애셋 그리고 이 작업 수행에 필요한 앱의 Navigation Manager와 같은 몇 가지 앱 종속성을 수용하는 OpenAssetIntent가 있습니다
이 인텐트를 Siri에 노출하고 앱을 Apple Intelligence와 통합하는 방법을 보여드리겠습니다 올해 앱 인텐트 도메인을 사용하면 새로운 사진 열기 스키마를 채택하여 이 작업을 수행할 수 있습니다 새 Assistant Intent 매크로를 앱 인텐트 선언에 추가해 보겠습니다
입력을 시작하면 코드 완성 제안이 표시되므로 도움이 됩니다 먼저 사진 도메인을 선택하고 다음으로 openAsset 스키마를 선택하겠습니다
끝입니다 이제 앱을 빌드해 보겠습니다
새로 등장한 이 오류는 뭐죠? Siri에 인텐트를 노출할 때 관련된 엔티티나 enum도 노출해야 합니다 이 오류를 해결하기 위해 애셋 엔티티의 정의로 이동해 보겠습니다
그러고 보니 엔티티를 노출하는 것도 잊은 것 같네요 선언에 새 Assistant 엔티티 매크로를 추가하여 문제를 해결해 보겠습니다
입력하기 시작하니 자동 완성이 다시 한번 photos를 추천합니다
이제 이 엔티티의 스키마로 asset을 선택할 수 있습니다
다시 한번 빌드해 보겠습니다
이전 오류는 제 인텐트로 해결된 것 같지만 이 새로운 적합성을 추가하면 이제 엔티티에서 새로운 빌드 오류가 발생합니다 Apple의 모델은 특정 형태의 엔티티를 예상하도록 학습되어 있습니다 내 엔티티를 스키마에 일치시킴으로써 컴파일러는 추가 검사를 통해 내 엔티티의 형태를 확인할 수 있습니다 이 경우는 hasSuggestedEdits에 대한 속성이 누락된 것 같네요 이제 추가해 봅시다
누락된 속성을 추가하니 이제 엔티티가 스키마의 형태와 일치하고 빌드에 성공했습니다 컴파일러는 기존 앱 인텐트를 스키마에 맞추는 데 도움이 되는 훌륭한 도구입니다 처음부터 시작하는 경우 필요한 형태를 대신 채워주는 코드 스니펫도 공개하고 있습니다
제 모델에는 이미 사진에 즐겨찾기를 지정하는 메서드가 있습니다 이를 사용하여 이 기능을 Siri에 노출하는 새로운 앱 인텐트를 빌드해 보겠습니다
AssetIntents 파일로 돌아가 보겠습니다
이번에는 템플릿을 사용합니다
이 플레이스홀더를 실제 엔티티 유형으로 바꾸기만 하면 됩니다
앱 종속성을 검색합니다
그리고 수행을 구현합니다
끝입니다
컴파일러에 오류가 표시되지 않고 이제 빌드에 성공했습니다 데모에서 보았듯이 Assistant Schema를 사용하면 기존 앱 인텐트에 대한 추가 빌드 시간의 유효성을 검사할 수 있습니다 이 유효성 검사를 통해 스키마 구현이 모델이 학습된 형태와 일치하는지 확인할 수 있습니다 또한 처음부터 더 쉽게 빌드할 수 있도록 Xcode 스니펫을 노출하고 있습니다 이제 단축어 앱에서 이를 테스트하고 실행하는 방법을 이야기해 보겠습니다 다른 앱 인텐트와 마찬가지로 스키마에 부합하는 앱 인텐트는 단축어 앱에서 자동으로 동작으로 표시되어 전체 단축어 에코시스템에 연결됩니다 여기에는 개인 자동화, 홈 화면 단축어 등이 포함되죠 단축어 앱은 Assistant Schema를 바로 테스트하기 좋은 방법입니다 앞으로는 이러한 동일한 인텐트와 엔티티가 Siri에서 자동으로 작동할 겁니다 이전 데모의 OpenAssetIntent와 UpdateAssetIntent를 기억하시나요? 단축어 앱을 사용하여 이러한 작업을 수행하고 종단간 테스트하는 방법을 보여드리겠습니다 먼저 단축어 앱을 실행합니다 상단의 더하기 버튼을 탭하여 새 단축어를 만들 수 있습니다 그런 다음 AssistantSchemas를 탭하여 앱에서 작업을 필터링할 수 있습니다 ‘Open Photo’부터 시작해 보겠습니다
이제 저장하겠습니다
이제 새 타일이 생겼습니다 이 타일을 탭하면 앞서 본 Open-Asset-Intent가 수행됩니다
선택할 수 있는 몇 가지 옵션이 표시됩니다 하나를 선택하여 앱에서 열 수 있습니다
보시다시피 작업이 수행되고 앱에서 사진으로 바로 이동했습니다 데모에서 보셨듯이 단축어는 작업을 바로 테스트할 수 있는 좋은 방법입니다 앞으로는 Siri에서도 동일한 인텐트가 자동으로 작동할 겁니다 앱에서 스키마에 맞는 동작을 빌드하고 유효성을 검증했으니 개인적 맥락에 대해 살짝 알려 드리겠습니다 Apple Intelligence를 통해 Siri는 사용자의 개인적 맥락에 대한 풍부한 이해력을 갖추게 됩니다 즉, Siri는 기기 전체에서 안전하고 개인적인 방식으로 사용 가능한 모든 정보를 검색하고 추론할 수 있습니다 앱 내 검색부터 시작하겠습니다 기존의 ShowInAppSearchResultsIntent를 기반으로 구축된 이 기능은 시스템이 앱의 검색 기능을 직접 활용할 수 있도록 합니다 Siri는 사용자를 검색 결과로 바로 안내합니다 이 AppIntent를 사용하면 Superhuman 같은 이메일 앱에서 사용자가 “Superhuman에서 자전거를 찾아줘”라고 말하고 앱에서 결과를 볼 수 있습니다
다음은 앱에서 검색 결과를 표시하는 AppIntent입니다 이는 기존의 ShowInAppSearchResultsIntent 유형을 준수합니다 이제 앱에 내장된 검색 기능을 Siri와 통합하기 위해 시스템 도메인 아래에 새로운 Assistant Schema를 도입합니다 이 새로운 스키마를 따르려면 AppIntent 선언 앞에 Swift 매크로를 추가하기만 하면 됩니다 이렇게요
이 검색 인텐트는 사전 정의된 형태를 활용할 수도 있습니다 ShowInAppSearchResultsIntent 유형을 삭제할 수도 있습니다 그러면 보다 간결한 앱 인텐트 구현이 가능합니다 이전 데모에서 더 나아가 Siri가 앱에서 사진을 검색할 수 있다면 정말 멋지지 않을까요? 새로운 시스템 검색 매크로를 사용하면 가능합니다 방법을 보여 드리죠
앱에는 위치별로 사진을 필터링할 수 있게 해주는 검색 막대가 이미 내장되어 있습니다
New를 입력하여 뉴욕의 사진을 필터링할 수 있습니다
Xcode로 돌아가서 이 기능을 Siri에 노출하는 방법을 살펴보겠습니다 내 Navigation Manager에는 이미 기준이 있는 openSearch라는 메서드가 있습니다 이 메서드는 사용자를 페이지로 라우팅하여 주어진 기준과 일치하는 검색 결과를 표시합니다 SearchAssets 앱 인텐트가 이미 있습니다 이 인텐트는 내 Navigation Manager를 활용하여 앱에 결과를 표시합니다 시스템 작업을 위한 새로운 앱 인텐트 도메인을 사용하면 이제 동일한 인텐트를 Siri와 Apple Intelligence에 노출할 수 있습니다 방법을 보여드리겠습니다
이 새로운 검색용 Assistant Schema를 추가하면 Siri가 사용자를 내 검색 결과 UI로 직접 라우팅할 수 있습니다 끝입니다 단축어를 빌드하고 실행하여 실제로 테스트해 보겠습니다
다시 한번 단축어 앱을 열고 새 동작을 만들 수 있습니다 내 앱에 맞게 필터링할 수 있습니다
이번에는 Search Photos를 사용하여 저장해 보겠습니다 이제 실행해 보겠습니다
이 앱 인텐트는 검색 기준에 대한 매개변수를 사용하므로 값을 입력하라는 메시지가 표시됩니다 San Fran을 검색해 보겠습니다
보시다시피 작업이 성공적으로 수행되었고 이제 금문교의 아름다운 사진이 표시됩니다 데모에서 보셨듯이 앱 내 검색은 사용자를 앱으로 끌어들여 결과를 아름다운 UI로 보여줄 수 있는 좋은 방법입니다 올해에는 Siri가 앱의 콘텐츠를 더 깊이 이해하고 더 많은 작업을 수행할 수 있도록 기능을 확장하고 있습니다 이제 Siri는 Apple Intelligence 덕분에 시맨틱 검색을 수행할 수 있는 능력을 갖추게 되었습니다 즉, 반려동물을 검색할 때 단순히 반려동물이라는 단어만 찾는 것이 아니라 고양이, 개, 심지어 뱀까지 찾을 수 있습니다 이제 Siri는 LLM을 통해 반려동물이 무엇인지 이해합니다 콘텐츠를 찾았으면 콘텐츠에 대해 원하는 동작을 바로 수행할 수 있습니다 좋아하는 반려동물 사진을 친구들과 바로 공유할 수 있단 얘기죠 앱의 경우 앱 인텐트 프레임워크를 사용하여 이러한 추가 컨텍스트를 제공하는 엔티티를 정의할 수 있습니다 IndexedEntity라는 새로운 API를 준수하여 Siri에게 앱의 콘텐츠를 검색할 수 있는 기능을 부여하세요 시맨틱 인덱스에서 정보를 사용할 수 있도록 하세요 인덱싱된 엔티티에 대한 자세한 내용을 알아보려면 제 동료의 비디오인 ‘앱 인텐트의 새로운 내용’을 시청하세요 올해는 Apple Intelligence의 기능에 힘입어 Siri의 새로운 시대가 시작되는 해입니다 앱을 Siri와 통합하는 데 필요한 도구는 지금부터 사용할 수 있습니다 그리고 방금 소개해 드린 앱 내 동작과 개인적 맥락 기능을 소프트웨어 업데이트를 통해 제공해 드릴 예정입니다 이 세션에서는 미디어 보관함 앱을 Siri로 가져오는 과정을 설명해 드렸습니다 하지만 실제로 작동하는 데모는 아직 보여 드리지 못했습니다 오늘 세션을 마치기 전에 앞으로 이 앱으로 무엇을 할 수 있는지 살짝 보여드리겠습니다
이 사진을 캘리포니아 앨범에 추가해 줘
Josh에게 이메일로 보내 줘
마무리하겠습니다 Apple Intelligence의 새로운 대규모 언어 모델 덕분에 이제 Siri는 그 어느 때보다 강력하고 유연하며 지능적입니다 SiriKit과 앱 인텐트는 앱을 Siri와 통합하기 위한 두 가지 프레임워크입니다 앱이 기존 SiriKit 도메인과 겹치지 않는다면 앱 인텐트가 적합한 프레임워크입니다 Intelligence의 경우 Siri는 사용자를 대신하여 앱 내에서 작업을 수행합니다 새로운 Assistant Schema API를 채택하여 앱에서도 이 기능을 활용할 수 있습니다
다음의 멋진 비디오도 시청해 보시기 바랍니다
시청해 주셔서 감사합니다
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.