스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
앱 단축어로 앱 돋보이게 만들기
앱 단축어를 사용해 Spotlight나 Siri로 앱에서 자주 사용하는 기능을 표시하는 방법을 알아보세요. 앱 검색 결과를 설정하는 방법을 살펴보고 멋진 앱 단축어를 만드는 모범 사례도 배워 봅니다. 뛰어난 시각과 음성 경험을 빌드하고 이를 Apple Watch와 HomePod을 비롯한 다른 Apple 기기로 확장하는 방법도 보여 드립니다. 앱 단축어와 App Intent에 대해 더 알아보시려면 WWDC23의 'App Intent 개선 사항 살펴보기'와 'Spotlight 단축어 디자인하기' 세션을 확인하세요.
리소스
관련 비디오
WWDC23
-
다운로드
♪ ♪
안녕하세요 엔지니어링 관리자 제리입니다 Siri와 앱 단축어를 담당하죠 오늘은 앱 단축어로 여러분의 앱을 더 돋보이게 하는 방법을 공유할 텐데요 먼저 살펴볼 내용은 운영 체제 전반에서 쓰일 빠르고 일상적인 동작을 앱에서 만들 때 앱 단축어를 도입해야 할 이유입니다 이어서 앱 단축어 구현의 기본적인 내용을 다루고 시각과 음성으로 모두 쓰기 좋은 앱 단축어를 만드는 방법을 살펴본 뒤 iOS 17 앱 단축어의 새로운 개선 사항도 보겠습니다 마무리로는 어떻게 하면 앱 단축어를 iPhone 외의 많은 Apple 기기로 확장할 수 있는지 알아보겠습니다 우선 앱 단축어를 사용하면 앱의 기능을 검색하고 사용하기가 쉬워집니다 앱 설치와 동시에 자동으로 사용할 수 있으며 사용자의 설정은 전혀 필요하지 않죠 iOS 15 및 이전 버전과는 달리 앱 단축어를 쓰기 전에 단축어 앱이나 Siri에 추가 버튼을 사용할 필요가 없습니다 Siri에 트리거 어구를 말하면 앱 단축어를 실행할 수 있죠 Spotlight로 검색하면 검색 결과에서도 단축어가 강조됩니다 단축어 앱에서는 강력한 사용자 단축어와 자동화를 구성할 수 있고요
앱 단축어를 쓰면 시스템 전체에서 사용자에게 앱 기능이 더 잘 보이며 백그라운드에서 실행하는 기능과 앱을 여는 기능 모두에 좋은 시작점이 생겨 사용자의 집중이 유지됩니다 앱의 핵심 기능을 사용할 때 마찰을 줄여 주는 빠르면서도 기억하기 좋은 방법이며 사용할 수 있는 콘텍스트도 늘어납니다 핸즈프리 환경에서 음성만 쓰거나 집에서 HomePod을 쓸 수도 있겠죠 기억하기 좋은 앱 단축어로 제일 중요한 앱 기능이 타깃되면 여러분의 앱은 검색되고 기억되어 일상의 일부가 될 겁니다 이번 세션에서는 Demo라는 가상의 앱을 예시로 들어 할 일 목록을 관리해 보겠습니다 저는 새로운 기능인 목록 요약하기를 시스템에 표시하고 싶습니다 남아 있는 일을 신속하게 확인할 수 있는 기능으로 단축어와 Siri에서 모두 쓸 수 있습니다 앱 단축어에서 쓰기에 완벽한 빠르고 가벼운 기능이죠 이걸 쓰는 사용자는 앱에서 필요한 걸 매끄럽게 얻고 각자 할 일을 하게 됩니다 할 일 목록 요약에 App Intent를 활용하는 방법과 단축어에서 구두 명령으로 목록을 요약할 수 있도록 앱 단축어를 구현하고 Spotlight에서 강조할 방법을 빠르게 설명하겠습니다
앱 단축어 빌드에 쓰인 App Intent 프레임워크는 완전히 새롭게 개발된 Swift 전용 프레임워크로 이걸 사용하면 Swift 소스 코드에 멋진 Intent를 더 빠르고 쉽게 빌드할 수 있습니다 모든 앱 단축어의 시작은 소스 코드 내 Intent 정의입니다 Intent는 앱에서 완수할 수 있는 개별 작업을 나타냅니다 할 일 목록 만들기나 그 콘텐츠 요약하기 혹은 항목에 체크하기 등이죠 App Intent를 만든 뒤에는 그걸로 Spotlight나 Siri에서 쓸 앱 단축어를 만들 수 있습니다 이렇게 하면 필요한 Siri 트리거 어구와 제목과 심볼에 Intent가 연동됩니다 둘을 모두 정의했으면 이제 앱을 빌드하고 작동을 테스트할 일만 남습니다 아주 간단한 앱 단축어를 먼저 만들어 보죠 이 앱 단축어로 빈 할 일 목록을 새로 만들 수 있는데요 Spotlight나 Siri에 목록 이름만 넣으면 됩니다 이를 간단히 구현할 두 단계짜리 과정은 App Intent를 정의하고 앱 단축어를 정의하는 겁니다 먼저 App Intent 프레임워크를 가져오겠습니다 이어서 Intent에 새 구조체를 구현합니다 AppIntent 프로토콜을 준수해서요 Intent의 실제 기능은 시스템에서 호출될 perform 메서드에 포함합니다
AppShortcutsProvider 구조체를 마지막으로 구현합니다 이 프로토콜을 준수하는 구조체는 앱당 최대 하나입니다 AppShortcutsProvider에서 제 앱이 지원하는 앱 단축어를 모두 지정할 수 있죠 여기서는 Create List 단축어를 추가했습니다 앱 단축어마다 몇 가지 컴포넌트가 있습니다 트리거되었을 때 호출되는 Intent와 앱 단축어의 작동을 위해 Siri가 인식해야 할 어구입니다 이건 앱 단축어마다 여러 개를 지닐 수 있죠 짧은 제목과 시스템 이미지 이름은 시스템이 앱 단축어를 시각적으로 표현할 방식을 알려 줍니다 간단한 앱 단축어 구현은 이것만으로 됩니다 앱을 실행하면 즉시 Siri나 단축어 앱에서 할 일 목록 생성이 시작되죠 코드에서 구조체 두 개를 만들었을 뿐인데요
하지만 고급 작업도 시도해 보고 싶습니다 요약되어야 할 특정 목록을 주고 작업 요약을 빠르게 받아 보는 거죠 이는 App Intent의 두 가지 핵심 개념을 건드립니다 바로 엔티티와 쿼리죠 한번 해 봅시다 SummarizeList App Intent를 우선 구현해야 합니다 AppIntent 프로토콜을 준수하는 구조체를 만드는 건 같습니다 TodoList 구조체에는 스텁 구현을 남겨 뒀는데요 이건 나중에 보겠습니다 앱에는 목록 요약을 반환하는 편리한 함수가 이미 있으니 그대로 사용하겠습니다 사용자 지정 다이얼로그로 이 요약을 반환할 수 있습니다 App Intent 결과의 일부죠 이걸로 Siri는 결과를 말하거나 보여 줍니다
모든 Intent에는 시스템에 나타낼 제목이 필요합니다
Intent는 변수를 선언하고 @Parameter 프로퍼티 래퍼로 주석을 달아서 입력값을 받을 수 있습니다 이 케이스에서는 ToDoList 구조체를 참조했는데 앞서 말했듯 당장은 스텁인 구조체입니다
여러 App Intent에 유용할 두 가지 개념인 엔티티와 쿼리를 이야기하겠습니다 엔티티는 사용자가 참조할 앱 관련 개념입니다 할 일 목록 엔티티가 제 앱에 있는 건 타당합니다 앱에서 작업을 수행할 때 참조하고자 할 타당한 객체니까요 다른 앱이라면 사용자 엔티티와 문서, 주문 엔티티 등이 있겠죠 앱의 엔티티는 App Intent에서 사용할 수 있습니다 Intent가 해당 엔티티를 입력 매개변수로 쓴다면요 여기 SummarizeList Intent에서는 할 일 목록 엔티티가 매개변수죠 App Intent의 매개변수에 맞는 엔티티 인스턴스를 찾고자 시스템은 쿼리에 의존합니다 런타임에서 시스템은 쿼리 객체를 인스턴스화하고 호출해서 다양한 검색 매개변수를 근거로 엔티티를 찾습니다 쿼리는 관련 엔티티의 인스턴스를 시스템에 반환합니다 이후 시스템은 Intent 실행 시 이 엔티티를 사용합니다 제 앱에서는 할 일 목록 엔티티를 구현해야 합니다 시스템이 관련된 할 일 목록을 검색할 때 도움이 될 쿼리도요 작업하던 목록 요약 앱 단축어로 돌아가 봅시다 AppEntity에 맞추는 방식으로 TodoList의 스텁 구현을 확장하겠습니다 typeDisplayRepresentation 프로퍼티를 구현해서 이 엔티티 유형을 표시할 방법을 시스템에 알리겠습니다 마찬가지로 displayRepresentation도 구현해서 이 특정 인스턴스를 표시할 방법도 시스템에 알리고요 Spotlight나 단축어의 최상단에 엔티티가 보이게 하려면 엔티티는 디스플레이 표현에서 이미지나 심볼을 지녀야 합니다 마지막으로 엔티티의 기본 쿼리를 선언합니다 제 할 일 목록 엔티티에는 단순한 쿼리를 구현했습니다 이 쿼리로는 최소한 할 일 목록을 식별자로 검색할 수 있을 겁니다 저는 suggestedEntities도 구현하고 싶습니다 그러면 사용자에게 가장 관련도가 높아 보이는 할 일 목록을 앱이 제어할 수 있게 되죠 시스템은 제안된 엔티티를 사용해서 앱 단축어를 자동으로 채울 겁니다 SummarizeList App Intent와 여기에 연동된 엔티티 및 쿼리 구조체만 있으면 이 기능을 쓸 수 있습니다 단축어 앱 내부에서와 자동화의 일부로요 아직 끝이 아닙니다 Siri에서도 이 기능에 접근할 수 있으면 좋겠거든요 Spotlight에서도 완전히 기능하고요 그러려면 앱 단축어를 구현해야 합니다
앞서 다뤘던 AppShortcutsProvider를 먼저 확장해 보죠 기존 단축어에 새 앱 단축어를 추가하고 Siri에서 제 앱 단축어를 호출할 발음 어구 어레이도 넣겠습니다 응용 프로그램 이름을 문자열에 바로 쓰는 대신 특수 토큰을 사용한 것에 주목해 주세요 이러면 Siri가 앱의 본이름뿐 아니라 제가 정의한 비슷한 이름까지 인식할 수 있죠 Intent의 매개변수 list도 일부 어구에 추가했습니다 앱 단축어는 사전 정의 매개변수로 트리거 어구 확장도 지원해서 사용자는 Siri를 호출하자마자 매개변수를 제공할 수 있습니다 이때 시스템은 suggestedEntities 메서드를 ToDoListQuery에 호출해 가능한 값의 어레이를 얻습니다 list 매개변수가 없는 어구도 제공했다는 데 주목하세요 이는 대체로 좋은 방법입니다 앱 단축어가 list 없이 사용되어도 사용자가 하나를 선택하도록 Siri나 단축어로 유도되거든요 앱 단축어는 Intent 수행 전에 값 프롬프트를 자동으로 띄웁니다 선택적 매개변수가 아니라면요 선택적 매개변수라면 perform 메서드 내에서 값 프롬프트를 수동으로 띄우면 됩니다 전과 마찬가지로 짧은 제목과 시스템 이미지를 넣어야 합니다
짧은 제목과 시스템 이미지를 잘 선택하는 게 중요합니다 Spotlight에서 제 앱을 검색하는 사용자가 가장 먼저 보는 부분이니까요 앱 단축어는 고정 집합이 있는 매개변수를 지원합니다 Siri에 미리 지정 가능한 유명 매개변수 값이 들어 있죠 '내 앱에서 X를 찾아 줘' 같은 개방형 값은 지원하지 않습니다 이때 X는 사용자가 주는 모든 입력값이 될 수 있죠 AppEnum인 매개변수를 사용할 수 있는데 이건 값이 미리 알려져 있습니다 완전히 동적으로 만들려면 AppEntity인 매개변수를 써도 되죠 제 앱에서 그랬듯 suggestedEntities를 통해서 쿼리의 엔티티 목록을 반환하기만 하면 됩니다
마지막 단계로는 updateAppShortcutParameters를 AppShortcutsProvider 객체에 호출해야 합니다 이 메서드를 호출하면 앱 단축어 매개변수가 변경됐다고 시스템에 신호가 가서 이를 다시 가져오도록 관련 쿼리에 suggestedEntities가 호출됩니다 할 일 목록이 달라질 때마다 이 작업을 해야 합니다 추가와 삭제는 물론이고 이름 수정 같은 변경도 포함되죠 엔티티의 displayRepresentation이 한 부분이라도 변경되면 이 메서드를 호출해야 하는 겁니다
앱이 처음 실행되었을 때도 이걸 호출하는 걸 잊지 마세요 엔티티 매개변수를 참조한 앱 단축어 어구는 시스템이 엔티티를 가져오는 데 한 번 성공한 뒤에야 작동합니다
'목록 요약하기' 앱 단축어 구현에 필요한 건 여기까지입니다 이제 앱을 사용할 때 이렇게 말할 수 있죠 'Siri야, Demo로 장 볼 목록을 요약해 줘' 그러면 음성과 시각으로 즉각 반응이 올 겁니다 약간의 코드만으로 사람들이 필요한 정보를 빠르고 매끄럽게 얻을 수 있게 했습니다 멋진 앱 단축어를 본격적으로 구현할 때는 사용자가 검색하기 쉽게 해야 합니다 기기를 사용하는 동안에 앱 단축어를 검색하게 하는 두 가지 강력한 방법이 있습니다 Spotlight와 Siri 팁이죠 Spotlight는 iPhone과 iPad에서 앱을 시작할 때 널리 쓰입니다 가장 연관성 높은 항목에는 앱뿐 아니라 앱 단축어도 나오는데 앱 단축어의 검색을 돕는 좋은 방법이죠 이러면 앱을 검색하는 순간 앱 단축어를 발견하게 됩니다 여러분의 앱이 가장 연관성 높은 항목이고요 아니면 앱 단축어 자체를 검색해서 찾을 수도 있습니다 지금 보시는 '목록 요약하기'처럼요 Spotlight도 있지만 사용자가 앱을 사용하는 동안 앱 단축어를 검색하기에는 Siri 팁도 훌륭한 방법입니다 여기서는 팁이 유용하게 쓰일 만한 위치인 목록 뷰에 하나를 추가했습니다 팁 뷰는 SwiftUI와 UIKit에서 다 사용할 수 있고 스타일이 다수 제공되어 모든 응용 프로그램에서 보기 좋죠 Siri 팁은 콘텍스트를 고려해 배치해 주세요 화면에 나타나는 콘텐츠와 관련되도록요 Spotlight와 Siri 팁 외에도 사용자가 앱 안팎에서 앱 단축어를 발견할 방법은 여러 가지가 있습니다
App Intent와 앱 단축어를 더 깊이 파고들고 싶으면 WWDC22의 두 세션을 참고하세요 App Intent 프레임워크가 개괄된 'App Intent 살펴보기'와 앱 단축어로 가능한 사용자 경험을 한층 다양하게 살펴보는 'App Intent로 앱 단축어 구현하기'입니다 가능한 여러 매개변수의 값을 명확화하는 등의 경험이죠
첫 앱 단축어를 구현했으니 앱 단축어를 최대한 활용하도록 올해 새로워진 사항과 iOS 17의 멋진 신기능을 소개하겠습니다
iOS 17에서는 App Intent와 앱 단축어가 단축어 앱에 나타나는 방식을 업데이트했습니다 새로운 디자인 덕에 App Intent를 쉽게 찾고 앱의 가장 중요한 동작에 탭 한 번으로 접근할 수 있죠 앱 단축어는 Spotlight에서도 잘 보이는 곳에 배치됩니다 자주 쓰이는 앱 단축어가 여기에 보이는 건 물론이고 올해 새 API가 추가돼 앱 단축어는 시각적으로도 한층 또렷해졌으며 Spotlight에 도입된 기능 덕에 관심 엔티티가 강조되기까지 합니다
단축어 자동화 설정은 사용하기 쉽게 다시 디자인됐고 앱 단축어도 잘 보이니 더 간단하게 시작할 수 있습니다
훌륭한 새 기능을 모두 활용하고 앱 단축어에 시선을 모을 수 있게 색상, 엔티티 섬네일과 짧은 제목, 심볼에 대해 새 API를 도입했습니다 이 새로운 API는 모든 앱 단축어에 필수이며 여러분의 앱을 돋보이게 합니다
색상부터 보시죠 앱의 Info.plist에서는 색상을 두 개까지 설정할 수 있습니다 Spotlight나 단축어에 앱이 보일 때 시스템은 이 색을 사용합니다 앱 내 스타일과 유사한 색상을 넣어 보세요 시스템의 나머지 부분에 앱 내 경험의 일부를 구현할 수 있을 겁니다 앱의 각 엔티티 인스턴스에서는 섬네일 이미지를 고를 수 있습니다 기존 DisplayRepresentation API가 확장된 거죠 섬네일 제공은 이미지가 있는 URL과 이미지를 표현하는 데이터 객체로도 가능하며 명명된 이미지 리소스 번들이나 시스템 이미지 이름으로도 됩니다 고유하고 구별이 쉬운 이미지를 엔티티에 선택해 주면 Spotlight에서 관심을 끌기가 더 좋습니다 모든 앱 단축어에는 짧은 제목과 시스템 이미지가 필요합니다 Spotlight나 단축어에 보이는 짧은 제목과 시스템 이미지는 동작 스타일에 쓰입니다 앱 단축어의 기능이 드러나면서도 잘 구분되는 걸 선택하세요
앱 단축어가 시각적으로 시스템에 보이는 새 방식과 더불어 올해는 앱 단축어를 Siri와 같이 쓰는 방식도 크게 개선했습니다 iOS 16의 Siri는 앱 단축어의 트리거 어구를 소스 코드와 문자열 파일에 정의한 그대로 말했을 때만 인식했습니다 하지만 앱 단축어에 접근하려는 사람들은 단어나 어구를 다르게 쓸 수도 있죠 저는 앱에 'Siri야, Demo로 장 볼 목록을 요약해 줘'를 어구로 제공했으니 이걸 말하면 앱 단축어는 예상대로 트리거되겠지만 비슷하게 그럴싸한 말인 'Demo로 장 볼 목록 말해 줘'로는 작동하지 않을 겁니다 iOS 17에서는 더 자연스러운 말로 앱 단축어를 트리거할 수 있습니다 앱 단축어에 제공한 것과 유사한 어구도 마찬가지로 작동하도록 온디바이스 기계 학습을 활용하죠 새로운 시맨틱 유사도 인덱스로 가능해진 기능입니다
새로운 유연 매칭 기능을 쓰면 더 자연스럽게 앱 단축어를 호출할 수 있고 가능한 각종 어구를 모두 제공할 필요가 없어집니다 무엇보다 유연 매칭을 위해 코드를 변경할 필요도 없죠 Xcode 15으로 앱을 다시 빌드하기만 하면 기존과 유사한 어구로도 작동할 겁니다 아직 유연 매칭을 도입할 준비가 안 되었다면 '앱 단축어 유연 매칭 활성화'라는 빌드 설정을 비활성화해서 기능을 빼면 됩니다 다시 앱 단축어 어구에 정확히 매칭되는 것만 받으면 되죠
앱 단축어 어구를 한층 자연스럽게 확장하는 새로운 유의어 API도 있습니다 DisplayRepresentation API에 작게 추가된 이 API로 AppEntity와 AppEnum 케이스에서 유의어를 추가로 정의할 수 있죠 앱 단축어의 범위도 한층 넓어집니다 Siri에 더 자연스럽게 말할 수 있으니까요 가령 제 앱에서는 트리거 어구에서 바로 목록 이름을 바꿔 부를 수 있게 됩니다
앞서 명시하지 않은 목록을 Siri가 요구할 때도 유의어를 사용할 수 있죠 이 유의어들은 엔티티의 인스턴스마다 연동됩니다 updateAppShortcutParameters는 변경이 생기면 다시 호출해야 하죠
새로운 Negative Phrases API도 유연 매칭을 지원합니다 이 API는 앱 단축어가 아닌 어구로도 앱이 잘못 호출될 때만 사용하면 됩니다 이 케이스에서는 'Demo 요약을 식료품 가게에 보내 줘'라는 말로 앱 단축어가 엉뚱하게 트리거될 수 있으니 이걸 부정 어구에 넣겠습니다
마지막으로 Siri에서 앱 단축어를 테스트하는 작업은 매번 앱을 빌드하고 실행한 다음 Siri에 말해야 하니 다소 느릴 수 있습니다 다중 로케일로 테스트하려면 특히나 시간이 많이 들겠죠 더 빠르고 쉬운 앱 단축어 작성을 위해서 Xcode에 도입한 강력한 새 도구가 App Shortcuts Preview입니다 App Shortcuts Preview는 macOS Sonoma에서 실행한 Xcode 15에서만 사용 가능하다는 걸 알아 두세요 예시를 살펴봅시다 이건 제 Demo 앱 프로젝트입니다 이미 앱 단축어를 구현해 놓았는데요 앱을 실행하고 Siri에 말해서 앱 단축어를 테스트할 수도 있지만 어구의 효과를 미리 확인할 빠른 방법을 소개하려 합니다 새 기능은 Product의 App Shortcuts Preview에 있습니다 시맨틱 유사도 인덱스의 생성 기회가 생기도록 앱을 먼저 빌드해야 하는데요 빌드가 끝나면 왼쪽에서 앱을 선택하고 사람들이 Siri에 말할 법한 어구를 바로 넣어 주면 됩니다 확실히 작동할 몇몇 어구로 시험해 보겠습니다 코드에 정의해 둔 어구들인데요 'Demo로 쇼핑 목록을 요약해 줘' SummarizeList Intent와 올바르게 매칭되네요
첫 번째와 비슷하지만 제가 제공하지 않은 어구도 시도해 보겠습니다 'Demo로 쇼핑 목록 요약본을 줘'
유연 매칭 덕분에 아무런 추가 작업 없이도 이번 어구 역시 같은 Intent에 매칭됩니다
차이가 다소 커서 확실히 인식하기 어려울 듯한 세 번째 어구로 시도해 봅시다 'Demo로 쇼핑 목록에서 요점을 뽑아 줘' 이건 앱의 어떤 앱 단축어와도 매칭되지 않는데요 앱 단축어에 얼른 새로운 어구를 추가하고 다시 빌드한 다음 테스트할 수 있습니다
'Demo로 쇼핑 목록에서 요점을 뽑아 줘' 이제 새 어구도 매칭되네요 앱을 실행하지 않고도 확인할 수 있죠 이제 중국어로 앱을 테스트하고 싶은데요 휴대폰의 언어를 바꾸고 앱을 실행해 Siri에 묻는 대신 Preview에서 로케일 셀렉터만 쓰면 됩니다 이걸로 새로운 어구를 즉각 테스트할 수 있죠
보시다시피 중국어 어구도 기대한 대로 작동합니다 개발 기기는 전혀 사용할 필요가 없죠
App Shortcuts Preview는 앱 단축어와 Siri의 조합을 수동으로 하는 것보다 더 빠르게 테스트할 수 있는 대안입니다 이걸로 앱 단축어 개발은 더욱 간단해지죠 iOS 17에서는 앱 단축어 트리거 어구를 현지화하는 방식도 개선했습니다 새로운 String Catalog 파일 포맷과 더불어서요 이전에는 각 로케일의 앱 단축어마다 어구 수가 제한되어 있었습니다 가령 Swift 코드에 앱 단축어로 어구 다섯 개를 정의하면 로케일마다 어구가 다섯 개로 제한되었죠 iOS 17에서는 String Catalog 덕분에 이 제한이 없어져서 당연히 필요할 어구를 모든 로케일마다 원하는 만큼 넣을 수 있습니다 iOS 17이나 이후 버전을 타깃하는 앱에서만 가능한 기능이란 걸 알아 두세요 이 새로운 기능은 쉽게 사용할 수 있습니다 올해 이전에 앱 단축어를 앱에서 쓴 적이 없다면 AppShortcuts라는 새 String Catalog만 생성하세요
앱을 다시 빌드하고 나면 AppShortcutsProvider에 정의한 어구가 자동으로 뜨는 게 보입니다
Swift 소스 코드를 편집하고 다시 빌드하면 새 String Catalog 형식이 추가되거나 삭제된 어구를 자동으로 따라갈 겁니다 그렇지 않고 올해 이전에 앱 단축어를 이미 사용했다면 AppShortcuts.strings 파일을 String Catalog로 이동시키세요
Xcode에서 파일을 우클릭해서 마이그레이션 어시스턴트를 따르면 완성되고 다시 빌드되자마자 어구가 자동으로 뜨는 게 보입니다 이미 수행한 현지화는 모두 보존된 상태로요
String Catalog로 마이그레이션한 뒤에는 로케일마다 추가 어구를 제한 없이 더할 수 있습니다
유연 매칭과 새로운 App Shortcuts Preview String Catalog로 앱 단축어는 Siri와 한층 멋진 조합을 이룹니다 멋진 트리거 어구를 만드는 몇 가지 팁을 드리죠 기억에 남는 어구를 선택하는 게 중요합니다 앱 사용자의 휴대폰에는 앱 단축어를 지원하는 다른 앱도 많을 테니 실제로 쓰려고 하면 단축어의 정확한 어구를 기억하기 어려울 겁니다 앱 이름의 유의어를 활용하면 사용자의 앱 단축어 호출 범위가 더욱 넓어집니다 인간이 읽을 수 없는 플레이스홀더 키는 되도록 Swift 소스 코드에 쓰지 마세요 어구에서 참조한 매개변수가 있다면 앞에서 시연한 보간된 문자열 플레이스홀더로 정의되어야 합니다 런타임 중에 이 플레이스홀더를 바르게 로드하고 채우려면 이는 필수죠 아울러 단축어를 앱에 도입할 때는 앱 단축어에 있는 몇 가지 제한 사항도 알아 두셔야 합니다 한 앱의 앱 단축어는 최대 열 개까지 가능합니다 트리거 어구는 앱 전체에 최대 1천 개까지 가능하고요 모든 매개변수 조합이 포함된다는 데 주의하세요 예를 들어 매개변수에 가능한 값이 열 개라면 유효 어구의 수는 10의 배수로 확장됩니다 이 제한에 걸리지 않으려면 어구의 매개변수에 가능한 값을 너무 많이 주지 마세요 App Shortcuts Preview로 테스트하면 유연 매칭이 이미 처리했을 어구를 중복으로 정의하지 않아도 됩니다 모든 트리거 어구에는 앱 이름이나 이름의 유의어가 들어가야 하죠 앱 이름의 유의어를 추가로 정의하는 방법에 대해서는 이 영상에 연결된 링크를 참고해 주세요
이제 앱을 여는 앱 단축어가 Spotlight에 나올 수 있습니다 엔티티로 앱을 여는 App Intent가 있다면 OpenIntent 프로토콜을 App Intent가 준수해야 합니다
멋진 앱 단축어 경험을 만들 방법을 살펴봤으니 iPhone을 넘어 더 다양한 기기에서 이 멋진 경험을 어떻게 구현할 수 있는지 이야기하겠습니다 앱 단축어는 이제 Apple Watch에서도 작동하지만 최선의 경험을 위해서는 몇몇 제약이 있다는 걸 유의하세요 Apple Watch의 앱 단축어는 기기 자체에 설치된 watchOS 앱에서 비롯해야 합니다 페어링된 iOS 기기의 앱 단축어는 Watch에서 실행할 수 없죠 그러니 iPhone에 설치된 iOS 앱은 있는데 상응하는 watchOS 앱은 없다면 watchOS에서는 앱 단축어가 작동하지 않습니다
Siri와의 유연 매칭은 Apple Watch에서 쓸 수 없으니 어구를 정확하게 말해야 합니다 Apple Watch 지원은 watchOS 9.2에서 도입되었고 이 버전과 이후 버전을 쓰는 모든 기기에서 사용 가능합니다
앱 단축어는 이제 Apple Watch에서도 검색됩니다 iOS와 마찬가지로 watchOS의 단축어 앱에서도 기기에서 사용할 수 있는 앱 단축어가 강조됩니다
앱 단축어는 이제 HomePod에서도 지원됩니다 앱 단축어가 활성화된 앱이 iOS나 iPadOS를 쓰는 컴패니언 기기에 설치되어 있어야 하죠 앱 단축어로 앱이 실행되는 iOS나 iPadOS와 달리 HomePod에서는 앱 단축어로 앱이 실행되지 않을 수도 있습니다 iPhone에 Demo 앱을 넣기만 하고 HomePod에 말할 수 있겠죠 'Siri야, Demo로 장 볼 목록을 요약해 줘'라고요 HomePod의 앱 단축어 지원은 16.2와 이후 버전부터 가능합니다
HomePod에 앱 단축어를 만들 때는 음성 전용 기기임을 고려하세요 Siri가 말할 대사는 반드시 간단명료해야 합니다 상응하는 시각 자료가 없을 테니까요 IntentDialog 클래스에 있는 이니셜라이저는 full과 supporting 문자열을 모두 취합니다 HomePod은 full 대화를 쓰지만 iPhone 같은 시각 기기는 supporting 대화를 대신 쓰므로 참고할 시각적 출력이 있으면 더 간결히 말해도 되지만 화면이 없을 때는 전부를 말해야 합니다
음성 전용 사용 예를 포함해 앱 단축어를 어떻게 디자인할지 더 알고 싶다면 '앱 단축어 디자인하기' 세션을 WWDC22에서 확인하세요
몇 가지 핵심 내용을 되짚어 보며 마무리하겠습니다 앱 단축어는 시스템 전체에서 앱 기능의 가시성을 높이고 앱을 일상적으로 사용할 때 마찰을 줄입니다
앱 단축어 검색은 어느 때보다 쉬워졌죠 Spotlight에서 두드러지는 배치로 앱 사용이 촉진되며 더 많은 스타일 옵션이 앱을 돋보이게 합니다
앱 단축어와 Siri의 조합은 유연 매칭으로 대폭 개선되어서 사용자가 음성으로 앱 단축어를 트리거하기가 쉬워졌습니다 앱 단축어의 개발과 테스트도 더 빠르고 간단해졌죠 Xcode 도구인 App Shortcuts Preview 덕이죠
App Intent와 앱 단축어를 더 깊이 파고들고 싶다면 올해 세션에서 두 편을 더 확인해 보세요
많은 사항이 개선된 앱 단축어가 여러분의 앱과 사용자에게 더 적합해졌으리라 생각합니다 여러분이 만들 멋진 앱 단축어를 기대하겠습니다 ♪ ♪
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.