빠른 앱 전환과 손쉬운 멀티태스킹 작업
본 문서는 Apple의 Human Interface Guideline(이하 HIG) 문서를 한글로 번역한 것입니다. iOS 생태계 내에서 HIG를 읽으시는 분들이 번역본이 없어 불편함을 겪는 것을 알게 되었고, 이에 한글로 번역을 하게 되었습니다. iOS 커뮤니티 Async Swift에서 자율적으로 모인 9명이 함께 번역했으며, 일체의 상업적인 목적을 띄지 않습니다. 이 문서를 학습에 적극적으로 이용해 주시돼, 상업적인 용도로 이용하시는 것은 지양해 주시기 바랍니다. 감사합니다.
사람들은 보통 본인의 기기에서 멀티태스킹이 지원되는 것을 당연하게 생각합니다. 따라서 전체 화면만 지원하는 일부 iPad 앱을 제외하고 모든 앱에서 멀티태스킹이 잘 작동해야 합니다.
멀티태스킹의 앱 전환 외에도 사람들은 다양한 기기에서 여러 사용자 경험을 할 수 있습니다.
iPhone에서 멀티태스킹을 사용하면 FaceTime을 하면서 다른 앱을 사용하거나 화면 속 화면(Picture in Picture) 모드로 비디오를 볼 수 있습니다.
iPad에서 사람들은 동시에 여러 앱의 창을 보면서 작업할 수 있습니다. 또한 한 앱에서 여러 개의 창을 활성화할 수 있으며, 한 앱에서 여러 개의 창을 보면서 작업할 수 있습니다.
Apple TV에서 사람들은 화면 속 화면(Picture in Picture) 모드를 통해 콘텐츠를 재생하거나 둘러보면서 영화나 TV 프로그램을 재생할 수 있습니다.
Mac에서 사람들은 보통 한 번에 둘 이상의 앱을 실행하며 작업하기 때문에 멀티태스킹은 기본적인 사용자 경험이라고 할 수 있습니다.
반면 watchOS는 즐겨 찾는 앱이나 최근 사용한 앱 간의 전환은 쉽지만 보통 한 번에 하나 이상의 앱을 열지는 않습니다.
훌륭한 멀티태스킹 경험은 현재 작업을 잠시 중지하고 다른 작업을 하다가 돌아왔을 때 매끄러운 사용자 경험을 제공하는 것입니다. 사람들이 멀티태스킹을 언제 사용할지 모르기 때문에 앱이나 게임에서 항상 사용자들의 작업을 저장하고 빠르게 재개할 수 있어야 합니다.
앱을 전환할 때 사용자의 적극적 참여가 필요한 작업이라면 잠시 중단합니다. 예를 들어 게임이나 미디어를 시청하는 경우, 사람들이 앱을 전환하면 잠시 중단했다가 다시 돌아왔을 때, 매끄러운 사용자 경험을 제공해야 합니다.
앱이 오디오 중단에 매끄러운 사용자 경험을 제공해야 합니다. 다른 앱이나 시스템 오디오가 사용 중이던 앱의 오디오를 중단시킬 수 있습니다. 예를 들어 수신 전화나 SIri가 재생한 음악 플레이리스트가 사용 중이던 앱의 오디오를 중단시킬 수 있습니다. 이러한 경우 다음과 같은 방식으로 매끄러운 오디오 사용 경험을 제공하세요.
음악, 팟캐스트, 오디오북 재생과 같은 오디오를 사용할 때는 사용 중이던 앱의 오디오를 무기한으로 일시 중지합니다.
GPS 방향 알림 같은 잠깐의 오디오 방해에는 일시적으로 음량을 낮추거나 오디오를 일시 중지하고 오디오 중단이 끝나면 원래 음량으로 돌아와 재생을 재개합니다.
가이드라인은 Playing audio를 참고하세요.
작업이 있다면 앱을 사용하지 않더라도 백그라운드에서 완료할 수 있게 하세요. 사람들은 작업을 시작하면 앱을 사용하지 않더라도 작업이 완료되기를 원합니다. 만약 추가 작업이 필요하지 않은 경우 백그라운드에서 완료할 수 있게 하세요.
알림을 최대한 적게 사용하세요. 앱이 일시 중단되거나 백그라운드에서 실행 중일 때도 알림을 보낼 수 있습니다. 사람들은 앱에서 중요한 작업을 하다가 다른 앱으로 전환한 경우에도 작업이 완료되면 알림을 받고 다시 돌아와 다음 단계를 진행할 수 있습니다. 반면 일상적인 작업이나 보조 작업의 완료 시점까지 사용자가 알림을 통해 확인할 필요는 없습니다. 대신 사람들이 해당 앱으로 돌아왔을 때 확인할 수 있게 하세요. 가이드라인은 Managing notifications를 참고하세요.
No additional considerations for iOS, macOS, or tvOS. Not supported in watchOS.
iPadOS는 다양한 작업을 지원하는 여러 환경설정에 따른 창을 보여주고, 멀티태스킹 환경설정을 바꿀 수 있는 멀티태스킹 컨트롤과 모든 창에 접근할 수 있는 앱 선반을 제공합니다.
다음 환경설정 중 하나를 선택해 iPad 멀티태스킹 창을 열 수 있습니다.
슬라이드 오버(Slide Over)는 전체 화면의 첫 번째 창 위에 두 번째 창을 덮어 씌웁니다. 사람들은 화면에서 슬라이드 오버 창의 위치를 옮길 수 있고 숨겼다가 다시 열 수도 있으며 쌓이는 형태의 여러 슬라이드 오버 창을 열 수도 있습니다.
분할 화면(Split View)은 두 개의 창을 나란히 띄워 창의 면적을 조절하고 서로 상호 작용하게 합니다. 분할 화면의 창을 보는 동안 슬라이드 오버로 세 번째 창을 열 수도 있습니다.
화면 속 화면(Picture in Picture) 전체 화면의 앱 위에 떠있는 이동 가능하고 크기를 조절할 수 있는 동영상 화면입니다.
NOTE : 앱은 멀티태스킹 환경설정을 제어하거나 사람들의 선택을 표시하지 않습니다.
사람들이 분할 화면이나 슬라이드 오버로 창을 열 때 iPad 앱이 올바르게 반응하도록 adapts gracefully to different screen sizes를 적용합니다. 개발자 가이드라인은 Multitasking on iPad를 참고하세요. 더 많은 Pad 멀티태스킹 기능 사용 방법은 Use multitasking on your iPad를 확인하세요.
iPad 앱은 콘텐츠를 제공하기 위해 두 유형의 창을 사용합니다.
기본(primary) 창은 앱 전체 계층 구조를 표시하여 앱의 모든 개체와 관련 작업에 대한 접근을 제공합니다. 예를 들어 Mail은 기본 창에 모든 편지함과 메시지 목록을 표시합니다.
보조(auxiliary) 창은 보통 모달 형태로 앱의 특정 작업이나 영역을 표시합니다. 단일 경험에 특화된 보조 창은 다른 앱 영역으로 이동할 수 없고 작업을 완료하고 닫는 버튼을 함께 제공합니다. 예를 들어 Mail 앱은 보조 창을 사용하여 단일 메시지를 표시합니다.
iPadOS 15 및 이후 버전에서는 창의 초기 스타일을 결정하는 보기를 설정할 수 있습니다. 사람들이 창을 열고나서 다시 설정할 수 있긴 하지만 지정된 보기 스타일은 창의 기본 작업이나 콘텐츠를 시각적으로 돋보이게 할 수 있습니다. iPadOS는 보기 스타일을 다음과 같이 정의합니다.
두드러진(Prominent). 모달 스타일은 창을 들어 올려 주변 영역을 어둡게 하고 주변 영역과 구분해 상호 작용을 방지합니다.
표준(Standard). 창을 나란히 보여주는 스타일로 유사 창과 상호작용이 가능하며 앱의 모든 기능을 지원합니다.
자동(Automatic). 앱이 요청한 창을 콘텐츠에 따라 시스템이 선택한 스타일로 보여줍니다.
TIP : 사람들이 단순히 파일을 보기만 하는 경우에는 새 창을 만들지 않고 보여줄 수는 있습니다. 하지만 반드시 여러 창 보기를 지원해야 합니다. 개발자 가이드라인은 QLPreviewSceneActivationConfiguration을 참고하세요.
독립적인 작업은 두드러진(prominent) 보기 스타일을 사용합니다. 예를 들면 문서 편집이나 범위가 지정된 특정 파일이나 콘텐츠 작업에 적합합니다. 두드러진(prominent) 창은 그 자체로 독립적이며, 보조 작업이나 추가 활동, 또는 주요 작업에 영향을 주는 항목 선택 방식에는 적합하지 않습니다.
표준(Standard) 보기 스타일로 같은 작업이나 콘텐츠의 여러 버전을 보여줍니다. 예를 들어 Safari에서는 표준(Standard) 보기 스타일로 화면에서 두 개의 창을 동시에 보며 작업할 수 있습니다.
사람들이 새로운 창을 통해 작업하기를 원할 경우에만 새로운 창을 엽니다. 사람들은 앱 선반(app shelf)나 앱 익스포제(App Exposé)에서 추가(+) 버튼을 탭 하거나 메뉴 항목에서 선택해 새로운 창을 열 수 있습니다. 사람들이 원하지 않은 경우에는 새 창을 열지 않습니다.
역자설명 : 앱 익스포제(App Exposé)는 현재 실행 중인 앱의 모든 창을 한 화면에 보여줍니다.
앱의 기본 창이 사용 중인 모든 작업을 지원하는지 확인합니다. 여러 개의 창은 편리하고 효과적인 작업 경험을 제공할 수 있지만 항상 기본 창에서 앱의 모든 기능에 접근할 수 있어야 합니다.
창을 열었을 때 이전 상태를 유지합니다. 사람들은 이전의 창으로 돌아왔을 때 전과 같은 상태로 앱이 유지되기를 원합니다. 개발자 가이드라인은 Restoring your app’s state를 참고하세요.
제스처를 사용해 콘텐츠를 새 창에서 열 수 있게 합니다. 사람들은 핀치(Pinch) 제스처를 사용해서 Notes 항목을 새 창으로 확장할 수 있습니다. 제스처를 사용한 전환은 항상 두드러진(Prominent) 보기 스타일을 사용하며 매끄러운 사용자 경험을 제공합니다. 개발자 가이드라인은 collectionView(_:sceneActivationConfigurationForItemAt:point:)(collection view item에서 전환)이나 UIWindowScene.ActivationInteraction(다른 view item에서 전환)을 참고하세요.
새 창에서 콘텐츠를 여는 선택 메뉴 제공을 고려해 보세요. 이 기능 사용하면 “새 창에서 열기” 항목이 보이는데 iPad나 Mac Catalyst를 사용하는 Mac에서만 표시되고 iPhone에서는 표시되지 않습니다. 만약 iPhone에서 “세부정보 표시”와 같은 대체 항목을 꼭 사용해야 한다면 표시할 수 있습니다. “새 창에서 열기” 항목은 콘텍스트 메뉴나 버튼 또는 바 버튼에 추가할 수 있습니다. 개발자 가이드라인은 UIWindowScene.ActivationAction를 참고하세요.
새 창에서 콘텐츠를 열 때 레이아웃을 지정하지 않습니다. 사람들이 어떤 멀티태스킹 환경설정을 사용하고 있는지 모르기 때문에 “분할 화면으로 열기”나 “앞으로 열기” 같은 선택 항목을 제공하지 않습니다.
콘텐츠에서 창(window)이라는 용어를 사용합니다. 장면(scene)과 같이 창을 나타내는 다른 용어를 사용한다면 사람들이 혼란스러울 수 있기 때문에 시스템은 유형에 관계없이 앱의 창을 창(windows)이라고 합니다.
Responding to the launch of your app — UIKit