😌
앱이 실행되지 않을 때에도 Siri와 커뮤니케이션하는 확장 프로그램을 빌드하여, 앱에 SiriKit을 도입할 수 있다.
해당 확장프로그램에는 처리할 수 있는 특정 도메인 및 Intent가 함께 등록된다.
Siri는 음성인식, 자연어 인식을 비롯한 모든 상호작용을 처리할 뿐 아니라,
확장프로그램과 연동하여 정보를 얻고 요청을 처리한다.
🧐 SiriKit을 사용해야 Siri가 앱을 열어주는건가?
-> 아님
🧐 그럼 SiriKit으로 뭘 할 수 있는거지?
시리를 불러서 앱에서 어떤 동작을 할 수 있게!
G선생 Q.
SiriKit은 여러 "도메인"으로 구성되어 있습니다. 각 도메인은 특정 종류의 작업에 대한 일련의 액션을 제공합니다. 이 도메인들 중 일부는 다음과 같습니다:
SiriKit을 사용하여 개발된 앱은 사용자의 음성 명령을 받아들이고, 해당 명령을 처리한 후 Siri에게 그 결과를 전달합니다. 이렇게 하면 Siri는 사용자에게 응답을 제공할 수 있습니다.
그러나 SiriKit는 모든 앱에 적용될 수 있는 것은 아닙니다. Apple은 사용자의 개인 정보와 관련된 데이터 보호를 매우 중요하게 생각하기 때문에, SiriKit은 특정 카테고리의 앱에서만 작동합니다.
"Empower users to interact with their devices through voice, intelligent suggestions, and personalized workflows."
음성, 지능형 제안, 개인화된 워크플로우를 통해 사용자가 장치와 상호작용할 수 있도록 지원합니다.
SiriKit은 2가지 프레임워크를 포함하고 있는데, Intents, IntentsUI이다.
Intents, IntentsUI 프레임워크는 "Hey Siri,""시리야,"로 시작하는 인터랙션, 바로가기 작업, 위젯 구성을 구동한다.
또 시스템은 앱이 제공하는 의도와 사용자 활동을 지도, 캘린더, 시계정보표시, 위젯 및 검색결과의 상황별 제안에 통합한다.
시스템이 제공하는 표준 의도를 사용하여 음악 재생, 문자 메시지 보내기 등 사용자가 이미 Siri에게 요청한 작업을 수행할 수 있다.
또 사용자 정의 의도를 설계하여 시스템 전체에 걸쳐 앱의 고유한 기능을 제공할 수 있다.
-> https://developer.apple.com/documentation/sirikit/adding_user_interactivity_with_siri_shortcuts_and_the_shortcuts_app
앱이나 Intents 앱 확장에서 직접 Intent를 처리할 수 있다.
앱 확장 설정 및 앱과 확장 간의 정보 공유
-> https://developer.apple.com/documentation/sirikit/intent_handling_infrastructure/structuring_your_code_to_support_app_extensions
사용자 요청을 이행한 후 Siri 및 지도에 브랜딩 또는 기타 사용자 정의 콘텐츠를 표시하려면, IntentsUI 앱 확장에서 사용자 정의 뷰 컨트롤러를 생성해라.
-> https://developer.apple.com/documentation/sirikit/creating_an_intents_ui_extension
Logic
유저의 Speech -> 오디오로 읽어들여 -> Text -> 그 Text를 구조화된 표현으로 변환(Intent) -> Intent 기반으로 Action을 취함 -> 시각적, 구두적 Response 제공
여기서 앱이 하는 일은?
앱에서 SiriKit에 대한 요청을 처리하는 방법에는 3가지의 단계가 있음
이 글은 개요니깐 구체적인 스텝은 나의 다음 글을 참고하길
https://velog.io/@maddie/iOSWWDC2019-SiriKit-Media-Intents
Intents 파일 추가: 앱 프로젝트에 'Intents.intentdefinition' 파일을 추가하여 사용자의 요청을 나타내는 인텐트와 응답을 정의합니다.
인텐트 핸들러 구현: 해당 인텐트를 처리하는 핸들러를 구현합니다.
Info.plist 업데이트: 앱이 Siri와 통합될 수 있도록 Info.plist 파일을 업데이트 합니다.
Siri 권한 요청: 앱이 처음 실행될 때 사용자에게 Siri 권한을 요청합니다.
사용자가 Siri를 통해 앱을 제어할 때 Siri는 사용자의 요청을 앱에 전달하고, 앱은 해당 요청을 처리한 후 Siri에 응답을 보내면 Siri는 그 결과를 사용자에게 전달합니다.
Siri <-Sirikit-> 앱
SiriKit은 시리와 앱의 중재자 역할!
😇 Reference
https://developer.apple.com/kr/siri/
https://developer.apple.com/documentation/sirikit/
https://zeddios.tistory.com/271