오늘도 더 나은 코드를 작성하였습니까?

android navigation의 원칙 본문

Android Jetpack Architecture/Navigation

android navigation의 원칙

hik14 2021. 11. 12. 14:52

다양한 화면 전환 및 앱 간의 navigation은 사용자 경험의 핵심 부분입니다

 

원칙은 앱 전체에서 일관되고 직관적사용자 경험의 기준을 설정합니다.

 navigation component는  원칙을 기본적으로 구현하도록 설계되어 사용자가 앱 사이를 이동할 때 동일한 navigation 휴리스틱(체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편추론의 방법)

과 동일한 이동 패턴을 경험하게 할수 있다.

 

1.  Fixed start destination (확정된 시작 화면)

- 모든 앱에는 고정된 시작 화면이 있어야한다. 사용자가 런처(아이콘)에서 앱을 실행할 때 표시되는 첫 번째 화면입니다.

- 이 화면은 사용자가 뒤로 버튼을 누른 후 런처로 돌아갈 때 표시되는 마지막 화면이기도 합니다.

 

* 앱에는 일회성 설정 또는  로그인 화면이 있을 수 있습니다. 이러한 조건부 화면은 사용자가 특정 경우에만 이러한 화면을 보기 때문에 시작 화면으로 볼수 없다

 

앱이 처음 실행되면 사용자를 위한 앱에 시작 화면이 표시됩니다. 첫 화면은 back stack의 기본 화면이 되며 앱의 navigation state에 대한 기초가 됩니다. stack 맨 위는 현재 화면이고 스택의 이전 화면은 사용자가 있었던 곳의 기록을 나타냅니다. back stack의 항상  맨 아래에 앱의 시작 화면이 있습니다.

 

back stack을 변경하는 작업은 새로운 화면을 stack 맨 위로 push하거나 stack에서 최상위 화면을 pop하여 항상 스택 맨 위에서 일어난다.

 

3.  Up and Back are identical within your app's task

(android backpress(system navigation)와  app의 이전화면(up)은 동일해야된다. )

 

system navigation - back button

화면 아래 system navigation에 있고 사용자가 최근에 작업한 화면의 이력을 역시간순으로 navigation하는 데 사용된다.

뒤로 버튼을 누르면 현재 화면이 백 스택의 맨 위에서 pop 되고 이전 화면으로 이동합니다

 

app - up button

up Button은 화면 상단의 app bar 에 있다.

앱의 작업 내에서 up buttonback button 은 동일한 작동을 해야된다. 

 

 

Deep linking 또는 특정 화면의 수동 탐색는 UpButton 을 사용하여 화면들을 통해 다시 시작 화면으로 이동할 수 있습니다.

앱 작업 중 특정 화면에 딥 링크할때 앱 작업에 대한 기존 백 스택이 제거되고 딥 링크된 백 스택으로 대체된다.

 

기존 백스택을 대체하는  synthetic 백 스택은 NavGraph를 기반으로 하는 단순화된 백 스택이다.

 중첩 navi가 없는 간단한 NavGraph의 경우 시작 대상과 딥 링크 대상으로 구성됩니다.

더 복잡한 , 중첩 navi 그래프의 경우 synthetic 백 스택에는 딥 링크 화면의 조상인 모든 중첩 그래프의 시작 화면도 포함됩니다

 

jetpack navigation component는 deep linking를 지원하고 navi graph의 화면에 연결할 때 현실적인 백 스택을 다시 생성합니다

'Android Jetpack Architecture > Navigation' 카테고리의 다른 글

중첩 네비 그래프 (Nested Navi Graph)  (0) 2021.11.19
Navigation graph design 네비 그래프 디자인  (0) 2021.11.18
destinations 생성  (0) 2021.11.15
Navigation component 시작하기  (0) 2021.11.12
Navigation  (0) 2021.02.18