-
단축어의 새로운 기능
앱 콘텐츠를 활용하여 강력한 단축어를 빌드하는 기법을 살펴보세요. 새로운 자동화 기능을 통해 앱을 시스템과 통합하는 추가적인 방법을 활용할 수 있습니다. 새로운 ‘모델 사용' 전사문 기능을 사용하여 앱 엔티티가 LLM에 표시되는 방식을 향상하세요. 앱의 풍부한 정보를 단축어 내부에 저장하세요. 이 정보는 여러 기기 간에 동기화됩니다. 이러한 기능을 결합하여 앱의 콘텐츠 및 기능과 원활하게 통합되는 강력한 지능형 자동화를 구현하는 방법을 알아보세요.
챕터
- 0:01 - Introduction
- 0:57 - Automations
- 3:25 - Use Model
- 6:58 - Storage
리소스
관련 비디오
WWDC25
-
비디오 검색…
안녕하세요! 저는 Duraid이고 단축어 팀 소속입니다
단축어로 앱에서 매일 수행하는 액션을 결합하고 시스템 내 다양한 곳에서 빠르게 실행할 수 있어요 Siri나 제어 센터 액션 버튼 그 외에도요 이 세션에서는 단축어에 추가될 흥미로운 개선 사항과 앱의 액션과 콘텐츠를 잘 통합하는 방법을 공유할게요 먼저 자동화 설정 방식의 업데이트를 살펴볼게요 그리고 사용 가능한 새로운 자동화 유형도요 다음으로 Use Model 액션과 새로운 동작 디버그 방법을 살펴볼게요 마지막으로 단축어 실행 간 데이터를 유지하는 기능인 Storage를 다룰게요 시작해 볼까요! 자동화를 사용하면 이벤트에 반응해 단축어를 자동으로 실행할 수 있어요 예를 들어 퇴근할 때마다 실행되는 단축어가 있어요 집으로 가는 경로를 계산하고 파트너 Helen에게 메시지를 보내요 예상 도착 시간을 담아서요
자동화는 이제 단축어 편집기에 바로 표시돼요 단축어 내 실행되는 액션들과 함께요 그리고 설정이 그 어느 때보다 쉬워졌어요 자동화를 찾아보고 단축어에 추가하려면 편집기의 "Automation" 섹션을 방문하세요
기존 자동화 외에도 세 가지 새로운 유형이 추가됐어요 스크린샷이 저장될 때 실행되는 스크린샷 자동화 외부 키보드가 연결되거나 연결 해제될 때 트리거되는 키보드 자동화 특정 앱에서 알림을 받을 때 실행되는 알림 자동화가 있어요 제가 작업 중인 앱으로 알림 자동화를 활용하는 예시를 살펴볼게요
이건 Soup Chef라는 앱으로 수프를 둘러보고 배달 주문이 가능해요 수프 배달이 다가오면 앱이 알림을 보내요 기사의 이름과 예상 도착 시간을 담아서요
저는 그 알림을 받으면 현관 조명을 켜고 싶어요 늦은 밤에 기사가 문을 찾을 수 있도록요 그 일이 자동으로 일어나면 정말 좋겠어요! 이를 위해 현관 조명을 켜는 단축어를 만들었어요 거실 HomePod이 수프가 곧 도착한다고 알리도록요 알림 자동화는 알림을 받을 때 트리거돼요 Soup Chef 앱에서요 앱의 모든 알림에 실행되는 걸 원하지 않아서 "arriving"이라는 단어에 대한 필터를 추가했어요 그래야 앱이 수프가 도착 중임을 알릴 때만 실행되거든요 이제 배달 기사가 제 현관까지 안전하고 밝은 길로 올 수 있어요
앱이 간결하고 유익한 알림을 제공하기 때문이에요 기사 이름으로 구분되고 동사 "arriving"으로 구체화되며 도착까지 남은 시간으로 조치 가능하게 돼요 이런 세부 정보 덕분에 단축어 내 알림 파악이 쉬워져요
Human Interface Guidelines의 알림 설계 권장 사항을 따르면 사용자들이 알림을 활용하여 강력한 자동화를 구축할 수 있어요 바로 이처럼요 다음으로 Use Model 액션에 대해 이야기할게요 Use Model 액션을 사용하면 대규모 언어 모델의 힘을 활용할 수 있어요 단축어 내에서 바로요 이제 그 어느 때보다 강력해졌어요 더욱 유능해진 새로운 Apple Intelligence 모델에 접근할 수 있고 최신 정보를 위해 웹에 연결하는 기능도 갖추고 있어요 이 모든 모델은 앱의 콘텐츠와 함께 작동할 수 있어요 예를 들어 이 예시처럼 액션이 이벤트를 찾을 수 있어요 Montreal 여행과 관련된 이벤트를요 예정된 이벤트 목록이 전달될 때요 Soup Chef 앱으로 돌아가 볼게요 제가 좋아할 수프를 골라주고 빠르게 주문할 수 있는 단축어를 만들고 싶어요 이름은 Soup of the Day로 할게요
이를 만들기 위해 단축어가 앱의 수프 데이터에 접근해야 해요 App Intents의 EntityPropertyQuery를 사용해서 Find Soups 액션을 이미 노출시켰어요 앱에서 모든 수프를 가져오고 필터링하는 기능도 포함해서요 오늘 가능한 수프만으로요
Order Soup이라는 액션도 만들었어요 수프를 파라미터로 받아서 확인 후 주문을 넣어요 단축어 만들기를 시작할게요 Use Model 액션과 함께 이것들을 연결해서요
이 단축어는 오늘 가능한 수프를 찾고 모델을 사용해 하나를 골라요 제 매운 맛 선호도에 맞는 걸로요 실행해 볼게요!
치킨 토르티야 수프를 골랐네요 하지만 Soup Chef에서 그건 메뉴에서 가장 순한 옵션 중 하나예요 더 매운 걸 원하고 있어요
모델이 예상치 못한 결과를 냈을 때 정확히 무엇을 봤는지 알고 싶을 거예요 그래야 무엇이 잘못됐는지 이해할 수 있어요 바로 그렇게 할 수 있어요 모델 트랜스크립트를 검사해서 모델에 전달된 모든 내용을 원시 형식으로 볼 수 있어요 Use Model 액션 바로 뒤에 Show Content 액션을 추가할게요 Show Content 액션의 출력에서 Transcript 속성을 선택할게요 이제 단축어를 실행하면 트랜스크립트를 볼 수 있어요
모델에 전달된 정확한 수프 엔티티를 볼 수 있어요 각각 펼쳐서 모델이 정확히 무엇을 봤는지 이해할 수 있어요
모델에 전달된 Soup 엔티티의 구조화된 표현이에요 그리고 이것들이 해당 엔티티에 노출된 속성들이에요 이름과 가용성만으로는 모델이 매운 맛 정도를 정확히 판단하기에 충분하지 않아요 각 재료와 수량을 나열하는 ingredients 속성을 추가하면 모델에게 필요한 정보를 제공할 수 있어요 추가해 볼게요
여기 제 SoupEntity가 있어요 주어진 수프의 이름과 가용성을 나타내는 속성을 노출해요
여기에 ingredients도 추가해 볼게요 문자열의 단순한 배열로요
각 문자열에는 1인분당 재료와 수량이 포함돼요
디버그에 사용했던 "Show Content" 액션을 제거했어요 변경 후 단축어를 다시 실행해 볼게요
이제 모델이 각 수프의 재료에 접근할 수 있어서 정말 매운 Tom Yum 수프를 골랐어요! 그걸 주문해야겠어요! Use Model 액션을 위한 App Intents 구축에 대한 자세한 내용은 다음을 참고하세요 WWDC25의 "Develop for Shortcuts and Spotlight with App Intents"를 확인하세요
마지막으로 Storage에 대해 이야기할게요! Storage를 사용하면 단축어 내에서 콘텐츠를 저장할 수 있어요 실행 간에 유지하기 위해서요
단축어 편집기에는 이제 값을 생성, 조회하고 단축어에 저장된 값을 편집할 수 있는 뷰가 있어요 여러 단축어에 걸쳐 공유되는 글로벌 값도 만들 수 있어요 API 키처럼 여러 단축어에서 접근해야 하는 데이터에 유용해요
이 세 가지 액션으로 데이터를 가져오고 업데이트할 수 있어요 단축어 내에서요 수많은 가능성이 열려요 일일 커피처럼 항목을 세거나 기록하는 단순한 단축어부터 실행 간에 더 풍부한 컨텍스트를 추적하는 고급 단축어까지요 Storage를 사용해 매일 쓰는 단축어를 개선하는 방법을 살펴볼게요
저는 모터 레이싱을 열심히 따라가고 있는데 매일 아침 기술적인 사실을 보여주는 단축어가 있어요! Use Model 액션은 결정론적으로 작동하도록 설계됐어요 예측 가능한 모델 출력을 원할 때 좋아요 하지만 이 단축어에서는 매일 새로운 사실을 원해요
Storage 액션으로 이를 달성할 수 있어요 먼저 "Previous Facts"라는 이름으로 저장된 값을 가져올게요 과거의 모든 사실이 담긴 목록이 될 거예요 다음으로 모델에 전달하고 모델에게 요청할게요 이전 사실들은 피해 달라고요 모델이 사실로 응답하면 "Add to List" 액션으로 새 사실이 추가된 목록을 출력해요 setter 액션으로 새 목록을 저장할 수 있어요 이제 단축어가 매일 새로운 사실을 제공할 거예요! Storage는 단축어의 모든 유형의 데이터와 호환돼요 App Entities를 포함해서요 Storage를 사용해서 마지막으로 개선하고 싶어요 제 Soup of the Day 단축어를요 단축어를 실행하면 모델이 같은 수프를 며칠 연속으로 고르는 걸 발견했어요 모델에게 최근 선택 기억을 제공하고 싶어요 매일 다른 걸 고를 수 있도록요 모터 레이싱 예시처럼 여기서도 Storage 액션을 사용할게요 그러면 Use Model 액션이 이전 선택을 반복하지 않아요 단축어를 여러 번 실행하고 나면 저장소 뷰를 열었을 때 이전 수프 목록이 있어요! iPhone에서 이 단축어를 만들고 실행하고 있지만 저장된 값이 기기 간에 동기화되어서 iPad를 사용하는 경우에도 iPad에서 단축어를 실행하면 이전 수프를 기억해요 이 값들은 기기 간에 동기화되므로 엔티티는 일관된 ID가 필요해요 모든 기기에 걸쳐서요 iPhone에 저장된 엔티티는 iPad나 Mac 앱에서도 동일한 엔티티로 인식돼야 해요 예를 들어 저장된 수프를 가져오는 간단한 단축어가 있어요 그것을 "Order Soup" 인텐트에 전달해요 저장된 값이 다른 기기에서 왔을 수 있어서 Order 인텐트는 어떤 기기에 저장됐든 수프를 인식해야 해요
이를 위해 모든 기기에서 동일한 값을 생성하는 식별자를 사용했어요 기기마다 달라지는 게 아닌 일관된 값이어야 해요 제 Soup 앱은 수프의 온라인 데이터베이스를 기반으로 해요 그래서 각 수프의 데이터베이스 행 ID를 안정적인 엔티티 식별자로 사용해요 단축어에 추가될 새로운 기능들을 소개해 드렸어요! 다음으로 앱과 통합하는 단축어를 구축해 보세요 사용자가 자동화하고 싶어 할 것들을 파악하기 위해서요 알림을 개선해서 사용자가 강력한 자동화를 만들 수 있도록요 마지막으로 App Entities를 테스트해서 Use Model 액션과 단축어의 Storage와 잘 호환되는지 확인하세요 "수프가 거의 다 왔어요."
이제 수프를 받으러 가야겠어요! 함께해 주셔서 감사해요!
-
-
6:12 - Soup Entity Example
// MARK: - Soup Entity import AppIntents struct SoupEntity: AppEntity, Identifiable { static var typeDisplayRepresentation = TypeDisplayRepresentation( name: "Soup", numericFormat: "\(placeholder: .int) soups" ) static var defaultQuery = SoupEntityQuery() var id: Soup.ID @Property var name: String @Property(title: "Available Today") var isAvailableToday: Bool @Property(title: "Ingredients") var ingredients: String var displayRepresentation: DisplayRepresentation { DisplayRepresentation(title: "\(name)", subtitle: SoupStore.description(for: id)) } } -
10:05 - Soup Entity Example
// MARK: - Soup Entity import AppIntents struct SoupEntity: AppEntity, Identifiable { static var typeDisplayRepresentation = TypeDisplayRepresentation( name: "Soup", numericFormat: "\(placeholder: .int) soups" ) static var defaultQuery = SoupEntityQuery() var id: Soup.ID @Property var name: String @Property(title: "Available Today") var isAvailableToday: Bool @Property(title: "Ingredients") var ingredients: String var displayRepresentation: DisplayRepresentation { DisplayRepresentation(title: "\(name)", subtitle: SoupStore.description(for: id)) } }
-
-
- 0:01 - Introduction
Shortcuts lets people combine everyday app actions and surface them across the system - like through Siri, Control Center, and the Action Button. Explore three major enhancements to Shortcuts and how to leverage the content in your app to integrate with the system.
- 0:57 - Automations
In iOS 26, Automations are easier to discover in the Shortcuts editor. There are three new automation types - screenshot, keyboard connection, and notification. The notification automation enables fine-grained, keyword-filtered triggers based on notification content. Learn techniques to build notifications that integrate well with automations.
- 3:25 - Use Model
The Use Model action has access to the latest Apple Intelligence models with web retrieval. Use the model transcript inspector to evaluate the exact data that's passed to the model from your app's App Intent entities.
- 6:58 - Storage
Storage lets shortcuts persist data between runs using Get, Set, and global storage values that sync across all of someone's devices via iCloud. Use storage in powerful ways, like to give the Use Model action a "memory". For App Intent entities, use a stable, device-consistent identifier to ensure correct recognition across devices.