Modality는 임시 모드, 즉 이전의 current context로부터 분리된 짧은 모드에서 컨텐츠를 보여주기 위한 디자인 기술이다. 사용자들로 하여금 특정 task에 집중하도록 하기 위해서, 또 경고를 위해서 사용한다. iOS는 기본으로 Alert / Activity Views(or Share Sheets) / Action Sheets를 제공한다. 중요한 점은 current context와의 interaction을 막는게 목표다. alert나 halfscreen도 아래쪽(이전)의 컨텍스트와의 상호작용을 막는다.
이전 컨텍스트와의 상호작용을 막지만 원래 있던 작업이 대기 중 이라는 사실을 알 수 있도록 보여주는게 특징이다. Sheet는 몰입도가 높지 않은 콘텐츠에 사용한다.
반대로 몰입감이 필요할 때 사용한다. 이전의 뷰가 완전히 덥힌 상태다. 모달을 사라지게 하려면, 어떤 버튼을 눌러야 내릴 수 있다. swipe안된다. 보통 집중하고 오랜 시간을 보내는 곳, video, camera, photo 등에 쓴다.
모달을 이치에 맞게 써라
짧은 테스크에 집중이 필요한가? 확실한 장점이 있는가?
핵심적인 내용을 전달할 때, ALERT를 사용해라
예를 들어, 뭔가 문제가 생겼거나 되돌이킬 수 없는 작업을 허가받는 경우에 사용할 수 있다. Alert는 말 그대로 불쾌한 경험이다. 사용경험을 interrupt하고 dismiss tap를 가져야 한다. 왠만하면 사용하지말고, 특히 사용자의 정상적인 행동의 결과로는 alert를 쓰지 않아야 한다. 뭔가 문제가 있을 때, 권한을 얻을 때 쓰는 것이다. 이 때는 강하고 부정적인 말을 해도 된다.
모달에서 처리하는 task는 simple, short, narrowly focus해야 한다.
모달task가 너무 복잡하면 뭐하려고 했는지 이전 컨텍스트의 task를 잃어버린다. 굳이 써야 한다면, single path hierarchy를 해라.
Done은 전체 테스크를 마무리할 때만 써라.. 그렇지 않으면 쓰지마라.
꼭 Dismiss 버튼을 포함해라! 언제든 모달뷰를 나갈 수 있도록 해라.
모달뷰를 내릴 때 만약 그 액션이 사용자가 적은 컨텐츠를 날릴 수 있는 거라면 사용자가 확인을 하도록 해라
Popover위에다가 어떤 것도 올라올 수 없다. alert는 … 가능!
타이틀을 보여줘라
여기가 어딘지에 대한 기초적인 정보를 제공해서 사용이 용이하도록 하자
앱에 있는 기본 네비게이션 스타일과 디자인적으로 비슷하게 만들어라
transition style을 잘 고려해라
모달은 앱 개발 과정에서 가장 많이 쓰이는 요소 중 하나다. 사용자의 이전 작업을 중단하고 임시로 새로운 작업이 필요할 때 사용한다. 그렇기 때문에 이전 작업과의 비연속성과 연속성을 염두해두고 작업을 해야지 사용자 경험을 헤치지 않을 수 있다.
Apple HumanInterface Guideline
https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/modality/