
Navigation을 사용할 때 유의할 점 ⭐️
- 내비게이션은 자연스럽게 느껴져야 하며, 앱의 컨텐츠보다 튀어서는 안된다.
Navigation의 세 가지 종류
- Hierarchical Navigation
- 일반적으로 사용하는 기본적인 내비게이션. 계층이 존재하고 다음으로 넘어갈 수록 하위 계층으로 이동함.
- iPhone 설정 창이 Hierarchical Navigation임
- Flat Navigation
- 탭 바를 의미함.
- App Store가 Flat Navigation임
- Content-Driven or Experience-Driven Navigation
- 게임에서 다음 단계의 챌린지에 갈 때 사용하는 내비게이션.
- 사실상 iOS 내비게이션은 아님.

Navigation을 사용할 때 유용한 팁
- 하나의 뷰에 들어가고자 할 때 필요한 탭은 하나면 된다. 많은 경로를 만들어서 하나의 뷰에 들어가려고 하면 안 됨
- 한 화면에 여러 가지의 기능들을 보여주고 싶다면 액션 시트, 알림, modal 등을 사용할 것을 추천함.
-
최소한의 탭, 스와이프를 이용해서 사용자가 정보를 확인할 수 있게끔 만들어라. ⭐️
-
화면을 스와이프하여 이전 화면으로 넘어갈 수 있게끔 해도 좋다. 앱이 유동성 있게 보이기 때문.
-
되도록이면 애플에서 제공하는 표준 내비게이션 기능들을 사용할 것. (커스터마이징 X) ⭐️⭐️
- Page Controls, Tab Bar, Segmented Control, Table View, Collection View, Split View와 같은 내비게이션 관련 뷰들을 사용자들이 직관적으로 사용하는 방법을 알고 있음.
-
내비게이션 바를 사용하는 이유는 계층 간의 이동을 수월하게 하기 위함임.
-
햄버거 메뉴보다는 차라리 탭 바를 사용하라.
-
비슷한 내용의 컨텐츠가 여러 개 있을 경우에는 Page Control을 사용하라.
- 대신 Page Control은 10개 이상 넘어가면 안 된다. 10개 이상 넘어간다면 TableView에 데이터를 담은 후, 클릭하여 다음 화면으로 넘어가게끔 만들어라.
- 책은 제외. 책을 10개 이상 넘어가도 Page Control을 사용하는 것이 좋음
팁!
Segmented Control이나 Toolbar는 내비게이션으로 사용해서는 안 된다!
- Segmented Control은 동일한 주제에서 카테고리를 나눌 때 필요한 요소이다. (Day, Month, Year 식으로 나눌 때)
- Toolbar는 독립적인 내비게이션이 아니라 내비게이션 바에서 제공하는 기능이 적기 때문에 추가적으로 기능을 제공하는 요소이다. 즉, 내비게이션에게 종속되는 요소이다.
Requesting Permission이란?
- 해당 앱이 개인 정보에 접근해도 되는지 사용자에게 물어보는 알림 창 같은 것.
- 일반적으로 현재 위치, 캘린더, 연락처 정보, 알림, 사진 등에 접근해도 되는지 앱이 물어봄.
- 이런 기능이 편리하지만 동시에 사용자의 개인 정보를 일부 침해하는 것이기에 사용자에게 이런 기능들을 비활성화할 수 있는 옵션을 만들어줘야 함
Requesting Permission을 사용해야 할 때 유의할 점 ⭐️⭐️
- 필요할 때만 Requesting Permission을 사용해라.
- 굳이 필요없는데 개인 정보에 접근해도 되는지 요청하지 말 것.
- 현재 위치의 날씨를 알고 싶을 때엔 사용자의 현재 위치에 접근해야 하므로, Requesting Permission을 사용해도 됨
- 왜 사용자의 개인정보가 필요한지 Requesting Permission에다가 이유를 설명해야 한다.
- 설명 글을 써놓지 않으면 리젝 당함.
- 부드럽고 정중하게 왜 개인정보에 접근하는지에 대한 이유를 설명해야 함. 개인정보에 접근하는데 불친절한 문구를 써놓아도 리젝당할 수 있다고 함.
- 앱 이름은 설명 글에 굳이 포함하지 않아도 됨.
-
사용자가 해당 기능을 사용하고자 할 때에만 권한을 요청하라.
-
위치 정보를 불필요하게 수집하려 하지마라.
- 위치 정보는 WiFi, 휴대폰 이동사 중계기 등으로도 얻을 수 있다. 그러니까 굳이 위치 정보를 필요하지 않은 곳에서 수집하려고 하지 마라.
- Requseting Permission은 커스터마이징 하지 않는 것을 추천한다.