Ch07. 상세뷰로 진입하거나, 새로운 뷰 띄워보기

Woozoo·2022년 12월 18일

🤔 네비게이션과 모달, 왜 알아야할까?

  • 앱에서 제공해주고 싶은 기능은 많고,
  • 각 기능은 여러 화면을 통해서 기능을 제공해줌
  • 화면 전환간에 사용 context 깨지지 않게 잘 전달하고 싶음
  • 결국, 사용자가 서비스 제공자의 의도를 잘 인지하게 도와주고, 앱 사용성을 쉽게 이해하게 도와주기 위해서

첫째, Modality

  • 모달은 사용자에게 일시적으로 집중을 요하는 컨텐츠 표시할 때 사용
  • 따라서, 사용자에게 모달로 띄운 화면이 중요하고, 필요한 경우 액션이 요구 됨을 알려줌
  • 화면 나가기 위한 명확한 행동이 요구됨(닫기 버튼, 화면 스와이프 다운 등)

둘째, Navigation

  • 보통 사용자들은 앱의 기능을 탐색할 때, 타고 타고 들어가다가 빠져 나올 때 당황하거나 어려움을 겪음 (앱의 개미지옥 현상)
  • 이 때 네비게이션은 사용자가 당황하지 않게끔, 자연스럽게 지나왔던 곳을 돌아가게 도와주는 것

🤔 네비게이션과 모달, 어떤 것이 있고, 어떻게 구현하나?

첫째, Modality

iOS에서 제공해주는 시스템 모달

  • alert
  • activity views
  • share sheets
  • action sheets

개발자가 직접 제공해주는 모달

  • 위에 플레이어뷰를 띄우는 케이스 생각하면 쉽다.
  • 직접 제공해주는 경우, 모달 띄우는 스타일도 정해야함

구현

  • 뷰컨트롤러의 present(_:animated:completion:) 메소드를 사용

둘째, Navigation

iOS에서 주요 네비게이션

  • Hierarchical Navigation 예) 설정앱
  • Flat Navigation 예) 애플 뮤직, 앱스토어
  • Content-Drive or Experience-Driven Navigation 예)게임, 북스

결국 여러 스타일을 나누긴 했지만 앱 내에서는 각 스타일을 복합적으로 사용함

🙏주요 원칙

  • 사용자가 언제나 명확한 이동경로를 파악할 수 있게 해라
  • 정보 구조를 사용자가 이해하기 쉽고 빠르게 접근하도록 디자인 해야함
  • 사용자 제스쳐를 충분히 사용해라
  • iOS에서 제공하는 네비게이션 주로 사용할 것
  • 네비게이션 바를 이용해서 현재 어떤 컨텍스트인지 잘 보여주기
  • 탭바를 이용해서 카테고리, 또는 기능별로 나누어서 표시해라
  • 아이패드에서는 탭바보다 스플릿 뷰를 써라
  • 여러 페이지가 있는 경우, 페이지 컨트롤을 써라

😉구현

  • 탭바(TabbarController)
  • 네비게이션 컨트롤러(NavigationController)

💡요약

  • 사용자가 앱내에서 화면전환간에 헤매지 않도록 도와주어야함
  • 크게는 네비게이션과, 모달을 적절히 사용해서 도움
  • 모달은 "집중집중"을
  • 네비게이션은 "개미지옥 탈출"을 도와줌
profile
우주형

0개의 댓글