스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
watchOS 11의 새로운 기능
watchOS 앱에서 더블 탭 동작을 지원하고, 스마트 스택 위젯의 관련성과 상호작용을 향상하고, iOS 실시간 현황을 스마트 스택에 표시하는 등 Apple Watch에서 새롭게 제공할 수 있는 다양한 기능을 살펴보세요.
챕터
- 0:00 - Intro
- 1:00 - Live Activities
- 2:29 - Widgets
- 10:33 - Double tap
- 12:29 - Health and fitness
리소스
- Enabling the double-tap gesture on Apple Watch
- Forum: UI Frameworks
- Human Interface Guidelines: watchOS
- Human Interface Guidelines: Widgets
- WidgetKit
관련 비디오
WWDC24
-
다운로드
안녕하세요 저는 Erena Inoue입니다 watchOS Smart Stack 팀의 엔지니어입니다 watchOS 11은 Apple Watch를 한층 더 개인적이고, 지능적이며 편리하게 만들어 주는 새로운 기능으로 가득합니다 이 세션에서는 앱에서 이러한 동일한 기능을 활용하는 방법을 소개하려고 합니다 iOS 실시간 현황이 Apple Watch에 어떻게 표시되며 watchOS를 위해 경험을 어떻게 맞춤화할 수 있는지 알아봅니다
다음으로, 상호작용과 관련성이 어떻게 결합되어 더 효과적인 위젯과 더 지능적인 스마트 스택을 구현하는지 살펴봅니다
그런 다음, 어떻게 더블 탭을 사용해 앱에서 탐색하고 조치를 취할 수 있는지 확인합니다
그리고 HealthKit과 WorkoutKit의 향상된 기능을 몇 가지 검토합니다
다룰 내용이 많으니 실시간 현황으로 시작해 보죠 실시간 현황을 통해 iPhone 잠금 화면에서 곧바로 이벤트 또는 작업의 진행 상황을 한눈에 쉽게 추적할 수 있습니다
watchOS 11에서 iOS 앱의 실시간 현황은 Apple Watch의 스마트 스택에서 제공되며 아직 watchOS 앱이 없어도 제공됩니다
코드를 전혀 변경하지 않아도 Dynamic Island의 선행 뷰 및 후행 뷰가 스마트 스택에 자동으로 표시됩니다
실시간 현황이 소규모 추가 활동 패밀리를 지원한다고 지정하여 Apple Watch의 스마트 스택을 위한 맞춤형 콘텐츠를 제공할 수 있습니다 ActivityConfiguration에 .supplementalActivityFamilies 편집자를 추가하면 시스템에서 Dynamic Island 뷰보다 맞춤형 콘텐츠 뷰가 선호됩니다 그런 다음 Environment를 사용해 watchOS용 실시간 현황 뷰의 레이아웃을 추가로 맞춤화할 수 있습니다 스마트 스택용으로 .small 패밀리를 사용하거나 iOS와 iPadOS의 잠금 화면용으로 .medium 패밀리를 사용하세요
실시간 현황은 스마트 스택에 풍부한 정보를 한눈에 볼 수 있게 표시할 수 있는 새롭고 멋진 방법입니다
Apple Watch에서 멋진 실시간 현황 경험을 제공하는 방법에 대한 자세한 내용은 여기에 나와 있는 세션을 참고하세요
스마트 스택의 더 풍부해진 경험을 계속 살펴보자면 위젯에는 새로운 기능이 많이 있습니다! 관련 위젯부터 살펴보겠습니다
watchOS 10에서 도입된 스마트 스택은 맞춤화할 수 있는 위젯 스택으로 어떤 시계 페이스에서든 Digital Crown을 한 번만 돌리면 접근할 수 있습니다
watchOS 11에서는 몇 가지 맥락 단서를 시스템에 제공하면 가장 관련성 높은 위젯이 스마트 스택에 자동으로 표시됩니다 App Intent RelevantContext API를 사용해 위젯이 언제 가장 관련성 높을 수 있는지를 시스템에 알려 주세요 날짜, 추론된 위치나 정확한 위치 취침 시간과 기상 시간 등의 수면 진행 중인 운동과 채우지 못한 활동 링 등의 피트니스 단서 문서에서 확인할 수 있는 기타 정보 등 관련 맥락을 제공할 수 있습니다!
위젯에서 RelevantContext를 사용하는 방법을 살펴보죠 미리 알림 앱의 한 예제를 사용하겠습니다
먼저, 위젯의 TimelineProvider에 새로운 relevances()를 구현합니다
다음으로, RelevantContext를 정의합니다 목록의 미리 알림에는 마감일이나 연관된 날짜 간격이 있을 수 있죠 따라서 날짜 관련 맥락을 사용하겠습니다
방금 생성한 맥락을 새 WidgetRelevanceEntry 유형에 래핑하고 WidgetRelevances를 반환하면 방금 생성한 WidgetRelevanceEntry가 래핑됩니다
다른 관련 맥락에서도 비슷하게 할 수 있습니다 예를 들어, 수면 데이터 위젯이 있는 경우 그 사람이 기상한 후에 관련될 수 있습니다 .sleep 관련 맥락을 사용해 시스템에서 해당 위젯을 기상 시간에 제안하게 만들 수 있습니다 또는 운동 추적기 앱이 있다고 가정해 보겠습니다 아직 그날 해야 할 운동을 하지 않았다면 .fitness 관련 맥락을 .activityRingsIncomplete 조건과 함께 사용해 시스템에서 해당 위젯을 제안하게 만들 수 있습니다
AppIntentConfiguration이 위젯에 있으면 인텐트당 관련성을 지정할 수 있습니다 Coffee Shop 위젯에서 예제 하나를 살펴보겠습니다 각 인텐트는 즐겨 찾는 매장 위치를 나타낼 수 있습니다 각 매장에 근접하면 해당 위치에 대한 위치 관련 맥락을 제공할 수 있습니다 WidgetRelevanceEntry에 대한 이니셜라이저는 앱 인텐트에 대한 추가 구성 매개변수를 허용합니다 또한 relevances 메서드의 반환 유형은 WidgetConfigurationIntent 유형을 제네릭 매개변수로 사용하죠
즐겨 찾는 커피 숍을 변경하면 invalidateRelevances 메서드를 사용해 업데이트된 관련 위치를 제공합니다
요약하면, 할당할 관련 맥락을 신중하게 선택해야 합니다 유용하고 실행 가능한 시점에 위젯을 제안하는 것이 중요하기 때문입니다 시스템에서 RelevantContext를 사용해 위젯을 제안하고 다른 위젯들 사이에서의 우선순위를 결정합니다 시스템은 다양한 위젯의 제안 사항을 동시에 고려하므로 여러분의 위젯이 항상 표시된다는 보장은 없습니다 다음은 대화형 위젯입니다
iOS 17 및 macOS 14에서는 대화형 위젯을 도입해 사람들이 앱을 열 필요 없이 위젯에서 곧바로 작업을 수행할 수 있도록 했습니다 이제 대화형 위젯을 watchOS에서도 사용할 수 있습니다! iOS 및 macOS에서와 마찬가지로 버튼과 토글을 사용해 watchOS 위젯을 대화형으로 만들 수 있죠 watchOS 11의 대화형 홈 위젯은 예를 들어, 사람들이 문을 직접 잠글 수 있게 해 줍니다
상호작용으로 앱 실행 없이 빠른 동작을 제공할 수 있습니다 모든 watchOS 위젯 패밀리는 상호작용을 지원합니다! 다양한 상호작용이 지원되지만 일부 위젯 패밀리는 모양이나 크기로 인해 적절하지 않을 수 있습니다 위젯에 상호작용을 적용하는 방법을 살펴보죠 홈 위젯의 예제를 사용하겠습니다 먼저, 위젯 부 내부에 SwiftUI 버튼을 생성합니다
그런 다음, 위젯의 인텐트에서 perform() 메서드를 구현하여 앱 인텐트 동작을 지정합니다 이 경우, 버튼을 탭하면 문이 잠깁니다
대화형 위젯을 사용하는 방법에 대한 자세한 내용은 상호작용에 대한 ’위젯 구현하기’ 세션을 참고하세요 동일한 원칙이 watchOS에도 적용됩니다
경우에 따라, 위젯에서 동작을 실행하려고 할 때 추가 확인 단계를 적용하여 원치 않는 놀라움을 방지하는 것이 중요합니다 예를 들어, 누군가가 직장에서 위젯을 탭하여 집 문을 잠금 해제하는 것은 의도치 않은 것일 수 있습니다
requestConfirmation() API를 사용하여 해당 인텐트를 수행하기 전에 추가 프롬프트를 표시해 이 동작이 의도된 것인지 확인할 수 있습니다 조건 매개변수에 대해 .lowConfidenceSource를 전달하여 시스템에서 실수로 탭한 것일 수 있는 경우를 판단하고 이 경우 프롬프트를 표시하게 할 수 있습니다
대화형 watchOS 위젯 생성을 가능한 한 매끄럽고 편리하게 구현하기 위해 AccessoryWidgetGroup라는 뷰 템플릿 API를 도입합니다 템플릿으로 accessoryRectangular 위젯에서 최대 3개의 콘텐츠 부분으로 구성되는 뷰를 생성해 더 쉽게 한눈에 보게 할 수 있죠
watchOS 11에는 이 레이아웃을 사용하는 많은 새 위젯이 있습니다
메시지 위젯은 상단에 고정된 연락처 3개를 보여 줍니다
AccessoryWidgetGroup에는 2개의 주요 구성요소인 Label과 Content가 있습니다 기본적으로 Label은 앱 Widget Extension 번들의 표시 이름이지만 맞춤형 Label 또는 Text 뷰를 제공하는 것이 좋습니다 콘텐츠에는 최대 3개의 뷰가 있을 수 있습니다 4개 이상의 뷰가 제공되는 경우 처음 제공된 뷰 3개만 표시됩니다 콘텐츠의 각 뷰는 대화형 뷰이거나 Link를 사용해 앱의 다른 부분으로 딥링크를 연결할 수 있습니다 서체 크기, 콘텐츠 뷰 크기 콘텐츠 여백은 모두 미리 구성되어 있으므로 여러분은 위젯의 콘텐츠에 집중할 수 있습니다
고정된 연락처가 3개 미만인 경우 시스템에서 비어 있는 추가 뷰를 자동으로 삽입하여 위젯에 3개의 뷰가 표시되도록 합니다 비어 있는 뷰를 탭하면 앱이 실행되기만 합니다 시스템에서 비어 있는 뷰의 색상을 제공합니다 모든 위젯에 걸쳐 시각적 일관성을 유지하기 위해 이 색상은 구성이 불가능합니다
.accessoryWidgetGroupStyle 뷰 편집자를 사용하여 콘텐츠 뷰의 마스킹 모양을 .circular 또는 .roundedSquare로 지정할 수 있습니다 지정하지 않는 경우 기본값은 .circular입니다
또한 AccessoryWidgetGroup 레이아웃에서 색상을 맞춤화하고
.containerBackground() 뷰 편집자로 배경 색조를 지정하거나 .foregroundStyle() 뷰 편집자로 레이블의 색조를 지정할 수도 있죠
위젯의 새로운 기능을 요약해 보겠습니다 관련 위젯은 시스템이 해당 위젯을 적시에 제안할 수 있게 해 줍니다 대화형 위젯에 대해서도 살펴봤습니다 여기서는 단일 위젯에 여러 탭 대상을 추가할 수 있고 앱을 시작하지 않고도 작업을 실행할 수 있습니다
AccessoryWidgetGroup은 단일 위젯에 여러 종류의 콘텐츠나 앱 인텐트를 표시할 수 있는 유용한 방법입니다 이 모든 것이 결합되어 스마트 스택을 한층 더 효과적이고 지능적으로 만들어 줍니다 이제 더블 탭에 대해 살펴보겠습니다! Apple Watch Series 9과 Ultra 2에서는 더블 탭 제스처로 전화 받기 음악 일시 정지하기 스마트 스택 스크롤하기 같은 일반적인 작업을 수행하는 새로운 방법을 도입했습니다 watchOS 11에서는 더블 탭 기능이 확장되어 앱의 더 많은 곳에서 작동합니다
이제 더블 탭으로 List
ScrollView
세로 스타일 TabView를 스크롤할 수 있습니다 앱에서 이 동작이 자동으로 구현됩니다
자동 스크롤 동작 외에 더블 탭을 사용하여 수행할 기본 동작을 식별할 수 있습니다 예를 들어, 버튼 또는 토글을 앱에서 활성화하거나
스마트 스택의 위젯이나 실시간 현황에서 활성화합니다
.handGestureShortcut 편집자를 버튼이나 토글에 적용하여 .primaryAction으로 이를 식별합니다 어떤 사람이 더블 탭 제스처를 수행하면 시스템에서 버튼이나 토글의 윤곽선을 자동으로 강조하여 곧 호출될 동작임을 시각적으로 나타냅니다 필요한 경우 ’clip shape’ 뷰 편집자를 사용하여 강조의 모양을 맞춤화할 수 있습니다
한 번에 한 요소만 기본 동작이 될 수 있으므로 앱의 인터페이스와 사용 사례를 신중하게 고려하세요 더블 탭 시, 제어기가 화면에 있는 경우에만 기본 동작이 수행됩니다 제어기가 화면을 벗어나면 시스템이 그쪽으로 스크롤합니다 앱에서 이미 List나 ScrollView를 사용하며, 이에 따라 더블 탭의 자동 스크롤 동작을 가져오는 경우 해당 뷰 내에서 작업을 실행하기 위해서도 이를 사용하지는 마세요 더블 탭은 앱에서 일관되고 예측 가능하게 사용하면 가장 좋습니다
WorkoutKit 및 HealthKit의 몇 가지 향상된 기능으로 마무리하겠습니다
WorkoutKit에는 새로운 활동 유형이 있습니다! 실내 수영이 사이클링, 달리기와 Custom Workouts API에 포함됩니다 실내 수영에는 새로운 목표 유형도 있습니다 distanceWithTime으로 운동 단계에 거리, 시간 목표를 설정할 수 있죠 모든 맞춤형 운동 유형에 대해 새로운 displayName 속성으로 운동, 회복, 준비 운동, 정리 운동 단계의 이름을 맞춤화합니다 ’WorkoutKit으로 맞춤형 수영 세션 빌드하기’ 세션에서 자세한 내용을 확인하세요
HealthKit에서는 이제 State of Mind API를 사용해 기분 또는 감정 데이터를 읽고 쓸 수 있습니다 ’HealthKit의 웰빙 API 살펴보기’ 세션을 확인하세요 자세한 내용을 확인하세요
watchOS 11에서 앱에 제공되는 새로운 기회가 정말 기대됩니다! 이제 실시간 현황이 Apple Watch에 표시되며 해당 경험을 맞춤화할 수 있습니다 관련성, 상호작용, 추가 레이아웃 옵션으로 위젯을 더 효과적으로 구현하고 스마트 스택에서 한눈에 보도록 만들 수 있습니다 더블 탭은 앱과 위젯에서 탐색하고 조치를 취하는 새로운 방법입니다 HealthKit 및 WorkoutKit의 향상된 기능은 건강 및 피트니스 공간의 앱에 새로운 가능성을 제공합니다 SwiftUI의 새로운 기능에 대한 자세한 내용은 ’SwiftUI의 새로운 기능’ 세션을 참고하세요
여러분이 새로운 API로 앱과 위젯에 어떤 혁신을 구현하실지 정말 기대됩니다 시청해 주셔서 감사합니다!
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.