원본 문서:
Human Interface Guidelines App Architecture
NOTE
본 글은 Apple developer의 공식문서인 Human Interface Guidelines App Architecture원본을 번역 및 개인적인 의견을 추가하여 정리한다.
Modality는 임시 모드에서 콘텐츠를 나타내는 설계 기술로, 종료하는데 명시적인 동작이 필요하다.
콘텐츠를 modally로 표현하면 다음을 수행할 수 있다.
다양한 시스템에서 정의된 모달을 사용하기 위해서, iOS는 alert, activity, views, share sheet 그리고 action sheets를 제공한다. custom modal(사용자 정의 모달)을 사용하려면 다음 프레젠테이션 스타일 중 하나를 사용한다.
NOTE
전체 화면이 아닌 view, popover, view pane(분할 창)에서 modal을 사용할 경우 compact enviorment 환경에 맞는 sheet를 사용한다.
Use modality when it makes sense(필요할 때 모달을 사용해라): 현재 작업과 다른 작업을 수행하거나 선택하는 데 있어, 사용자의 관심을 집중시키는 것이 중요할 때 모달을 사용한다. 모달은 사용자를 현재의 상황에서 벗어나게 하므로 꼭 모달 사용의 이점이 있을 때만 사용한다.
Reserve alerts for delivering essential - and ideally actionable - information (필수적이고 이상적인 정보를 제공하기 위해 알림을 예약해라): 일반적으로, 알림은 무언가가 잘못되었을 때 나타난다. 알림은 현재의 상황을 방해하고 알림을 종료하려면 탭을 해야 하기 때문에 사용자가 알림이 표시됐을 때 이를 정당하다고 느끼도록 설계해야한다.
In general, keep modal tasks simple, short and narrowly focused (일반적으로 모달작업을 간단하고, 짧고 집중이 덜 필요하게 유지해라): 만약 모달 작업이 너무 복잡하면 모달 상황에 들어가기 전에 수행하던 작업을 놓칠 수 있다. 앱 안에서 모달이 하나의 앱**처럼 느껴지도록 하는 것을 피한다. 특히 모달 작업 내에서 뷰를 계층적으로 표시하는 것을 자제한다. 사용자가 원래 작업으로 돌아가는 단계를 잊을 수 있기 때문이다. 만약 모달 작업이 subview를 가져야 한다면, 계층구조를 통한 단일 경로와 작업 완료를 위한 명확한 경로를 제공한다. 작업의 완료 외에 다른 용도로 버튼을 사용하는 것은 피한다.
Consider using a fullscreen modal style for immersive content or a complex task(몰입형 콘텐츠나 복잡한 작업에는 전체 화면 스타일의 모달을 사용해라): 전체 화면 모달은 작업에 집중을 할 수 있으므로 비디오, 사진, 카메라를 표시하거나 또는 문서에 마크업 또는 사진 편집과 같은 여러 단계의 작업에 적합하다.
Always include a button that dismisses the modal view(모달 화면을 종료할 수 있는 버튼을 항상 구현해라): 예를 들어 Done 버튼이나 Cancel 버튼을 사용한다. 이 버튼들은 보조 기술에 접근할 수 있고 그리고 종료하는 제스처에 대한 대안을 제공한다.
When necessary, help people avoid data loss by getting confirmation before closing a modal view(필요하다면, 모달 뷰를 닫기 전에 동의를 얻음으로써 사용자의 데이터 손실을 방지해라): 사용자가 뷰를 종료하기 위해 제스처나 버튼을 사용하는지에 상관없이, 작업의 결과로 사용자의 데이터가 손실된다면, 현재 상황을 설명하고 이를 해결할 방법을 제공한다.
Make it easy to identify a modal view's task(모달 뷰의 작업을 쉽게 이해하도록 생성해라): 사용자가 모달 뷰를 볼 때, 이전 작업에서 멀어질 것이고 그리고 바로 이전 작업으로 돌아가지 않을 것이다. 모달 뷰의 작업에 title(제목), 작업을 설명하는 추가적인 text 또는 가이드라인을 제공한다면 사용자가 앱 내에서의 현재의 작업을 이해하는 데 도움을 줄 것이다.
Coordinate the modal view's appearance with your app(모달 뷰의 디자인을 앱에 맞게 구현해라): 예를 들어 앱이 navigation bar를 포함한다면, 모달 뷰도 navigation bar와 같은 디자인으로 구현해야 한다.
Choose a modal transition style that makes sense in your app(앱에 적합한 모달 전환 스타일을 선택해라): 앱에 적합한 전환 스타일을 사용하고, 일시적으로 작업이 변경된 것에 대해 인식을 더 잘 할 수 있도록 한다. 기본적인 모달 전환은 아래에서 위로 슬라이드하고 그리고 닫힐 때 다시 원래대로 돌리는 것이다. 즉 앱 전체적으로 동일한 모달 전환 스타일을 제공해야 한다.