[HIG] App Architecture - Modality

LEEHAKJIN-VV·2022년 5월 16일
0

원본 문서:
Human Interface Guidelines App Architecture

NOTE
본 글은 Apple developer의 공식문서인 Human Interface Guidelines App Architecture원본을 번역 및 개인적인 의견을 추가하여 정리한다.


Modality

Modality는 임시 모드에서 콘텐츠를 나타내는 설계 기술로, 종료하는데 명시적인 동작이 필요하다.
콘텐츠를 modally로 표현하면 다음을 수행할 수 있다.

  • 사용자가 밀접하게 관련된 옵션들이나 앱과 독립된 업무에 집중하는 데 도움을 준다.
  • 사용자가 중요한 정보를 받는 것을 보장하고 필요한 경우 특정 동작을 수행한다.

다양한 시스템에서 정의된 모달을 사용하기 위해서, iOS는 alert, activity, views, share sheet 그리고 action sheets를 제공한다. custom modal(사용자 정의 모달)을 사용하려면 다음 프레젠테이션 스타일 중 하나를 사용한다.

  • Automatic: Uses the default presentation style, typically a sheet
  • Fullscreen: Covers the preivous view, and requires a button for dismissal
  • Popover: Presents a popover in a horizontally regular enviorment and a sheet compact enviorments
  • Current context: Covers a particular previous view
  • Custom: Uses custom animation to present content in a custom container

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(앱에 적합한 모달 전환 스타일을 선택해라): 앱에 적합한 전환 스타일을 사용하고, 일시적으로 작업이 변경된 것에 대해 인식을 더 잘 할 수 있도록 한다. 기본적인 모달 전환은 아래에서 위로 슬라이드하고 그리고 닫힐 때 다시 원래대로 돌리는 것이다. 즉 앱 전체적으로 동일한 모달 전환 스타일을 제공해야 한다.

0개의 댓글