네비게이션은 사용자가 앱 내의 여러 콘텐츠를 탐색하고, 그곳에 들어갔다 나올 수 있게 하는 상호작용을 의미한다. (출처 구글 문서 위 링크 참고!)
탐색 구성 요소는 세 가지 주요 부분으로 구성된다!
Navigation graph
모든 네비게이션 관련 정보가 하나의 위치에 모여있는 XML 리소스이다! 여기에는 목적지라고 부르는 앱 내의 모든 개별적 콘텐츠 영역과 사용자가 앱에서 갈 수 있는 모든 이용 가능한 경로가 포함된다.
(밑 그림의 화면 하나당 목적지라고 부른다!)
NavHost
Navigation graph에서 목적지를 표시하는 빈 컨테이너 입니다! 프래그먼트 목적지를 표시하는 기본 NavHost 구현인 NavHostFragment가 포함되어있습니다! 그냥 Navigation graph에서 포함하는 창이라고 생각하시면 됩니다!
NavController
NavHost에서 앱 탐색을 관리하는 개체입니다! NavHostFragment는 개별적으로 NavController를 가지고 있습니다. 사용자가 앱 전체에서 이동할 때 NavController는 NavHost에서 대상 컨텐츠를 조정합니다. 이를 통하여 탐색이 작동이 됩니다.(탐색 액션 수행)