실시간 현황 팀과 함께하는 10문 10답

실시간 현황을 사용하면 날씨 업데이트, 비행기의 출발 시간, 주문한 음식의 배달 예정 시간 등 앱이 전달하는 최신 정보가 잠금 화면에 바로 표시되므로 사용자가 한눈에 알아볼 수 있습니다. 아울러 iPhone 14 Pro 및 iPhone 14 Pro Max의 생동감 넘치는 Dynamic Island 기능을 활용하면 실시간 현황을 더욱 재미있게 즐길 수 있습니다.

Apple 에반젤리스트, 디자이너, 엔지니어가 실시간 현황과 Dynamic Island에 대한 여러분의 질문에 답하기 위해 Ask Apple에 모였습니다. 다음은 크기 및 스타일 조정에 관한 지침, 실시간 현황을 종료하는 시점, 일반적으로 위젯과 실시간 현황 기능이 다른 이유를 비롯해 이 대화에서 논의된 핵심 내용입니다.

APNs(Apple Push Notification service)를 사용하지 않고 실시간 현황을 업데이트하려면 어떻게 해야 하나요?

앱에서 위치 서비스와 같은 기존의 백그라운드 런타임 기능을 사용하여 원하는 실시간 현황 업데이트를 제공할 수 있습니다. BGProcessingTask와 백그라운드 푸시를 사용하여 실시간 현황에 제공되는 업데이트의 빈도를 낮출 수도 있습니다. 이러한 백그라운드 작업은 시스템에서 즉시 처리되지 않는다는 점에 유의하세요. 아래에서 자세한 내용을 확인하시기 바랍니다.

Displaying live data with Live Activities

실시간 현황 종료에 설정된 기본값 4시간이 제 사용 사례에는 너무 깁니다. 실시간 현황이 끝난 후 종료하고자 할 때 참고할 지침은 무엇인가요?

실시간 현황을 종료할 때 ‘ActivityUIDismissalPolicy’를 제공하여 시스템에 UI 표시 종료 시점을 지시할 수 있습니다. 또는 즉시 또는 일정 시간이 지난 후에 실시간 현황을 종료하도록 선택할 수 있습니다.

사용자가 실시간 현황을 종료할 경우 앱은 이를 어떻게 감지하나요?

앱은 ‘activityStateUpdates’ 비동기 시퀀스를 사용하여 각 실시간 현황에 대한 상태 변화를 관찰합니다.

앱이 강제 종료되면 연결된 실시간 현황도 함께 종료되나요?

실시간 현황의 라이프 사이클은 호스트 앱의 프로세스와 연결되지 않으므로 앱을 강제로 종료하는 경우에도 실시간 현황은 그대로 유지됩니다. 위젯 확장 프로그램의 라이프 사이클도 이와 마찬가지로 별개입니다. 동일한 실시간 현황에 대한 보기를 렌더링하기 위해 위젯 확장 프로그램의 서로 다른 인스턴스가 호출될 수도 있으므로 위젯 확장 프로그램에서 상태를 로컬로 저장하지 않아야 합니다.

실시간 현황과 위젯의 차이점은 무엇인가요?

실시간 현황과 위젯은 모두 정보를 한눈에 알아볼 수 있게 제공합니다. 실시간 현황은 사용자가 시작한 작업의 진행 현황 정보를 표시하는 데 유용합니다. 적절한 예로는 음식 배달, 운동, 비행기 출발 시간 등이 있습니다. 위젯은 언제든지 필요한 정보를 한눈에 확인할 수 있게 해줍니다. 적절한 예로는 할 일 목록, 한 주의 일기예보, Apple Watch의 링 채우기 진척 상황 등이 있습니다.

실시간 현황과 위젯은 모두 UI 배치에 WidgetKit을 사용하지만, 구조는 약간 다릅니다. 실시간 현황은 프로그램에 따라 업데이트되는 단일 보기인 반면, 위젯은 미리 구성된 여러 보기의 타임라인으로 구성되어 있습니다.

실시간 현황을 제공할 때 Dynamic Island의 배경색을 변경하는 게 좋을까요?

Dynamic Island는 배경색이나 이미지를 제공하지 않을 때 몰입감이 가장 뛰어납니다. 말하자면 전면 보기 요소의 캔버스인 셈입니다. Human Interface Guidelines에서 자세한 디자인 가이드라인을 참고하시기 바랍니다.

Human Interface Guidelines: Live Activities

실시간 현황은 대화식 버튼을 지원하나요?

잠금 화면 및 Dynamic Island의 실시간 현황은 대화식 버튼이나 기타 제어 기능을 지원하지 않습니다. 실시간 현황에 버튼을 포함하면 보기와 상호작용할 수 있는 것처럼 보여 사용자가 혼란을 겪을 수 있습니다. 따라서 UI에 버튼처럼 보이는 요소가 표시되지 않도록 주의해야 합니다.

최적의 사용자 경험은 앱 내에서 이루어지기 때문에 실시간 현황의 모든 상호작용은 사용자가 앱을 열도록 안내합니다. 실시간 현황의 잠금 화면 프레젠테이션 및 확장 프레젠테이션에는 앱으로 연결되는 여러 링크를 포함할 수 있으며, 실시간 현황의 맥락에 따라 앱 내 다양한 목적 지점으로 연결될 수 있습니다.

실시간 현황이 Dynamic Island를 지원하는 유일한 방법인가요?

실시간 현황 보기는 임의의 애니메이션을 지원하지 않지만, 앱이 실시간 현황 콘텐츠의 상태를 업데이트하는 방식을 변경할 수 있습니다. 아래 문서의 ‘콘텐츠 업데이트에 애니메이션 효과 주기’ 섹션에서 자세한 내용을 확인하시기 바랍니다.

Dynamic Island에 애니메이션을 추가할 수 있나요?

실시간 현황 보기는 임의의 애니메이션을 지원하지 않지만, 앱이 실시간 현황 콘텐츠의 상태를 업데이트하는 방식을 변경할 수 있습니다. 아래 문서의 ‘콘텐츠 업데이트에 애니메이션 효과 주기’ 섹션에서 자세한 내용을 확인하시기 바랍니다.

Displaying live data with Live Activities

실시간 현황에 대한 더 많은 문서는 어디에서 찾을 수 있나요?

ActivityKit 문서는 APNs를 사용해 실시간 현황을 업데이트 및 종료하는 방법을 비롯하여 실시간 현황 구현에 관한 폭넓은 정보를 제공합니다. 아울러 Human Interface Guidelines에서는 다양한 프레젠테이션을 위한 디자인 가이드라인과 권장 크기를 제공합니다. WWDC22의 Food Truck 샘플 프로젝트에서도 아이디어를 발견해 보시기 바랍니다.

Human Interface Guidelines: Live Activities

Displaying live data with Live Activities

Starting and updating Live Activities with ActivityKit push notifications

ActivityKit

WidgetKit