일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 빌터패턴
- ㅓ
- 디자인패턴 #
- factory method
- Design Pattern
- designPattern
- 싱글톤
- 추상 팩토리
- 코틀린
- Abstract Factory
- 추상팩토리패턴
- 팩토리 메소드
- 프로토타입 패턴
- Singleton
- r
- 옵저버 패턴
- Functional Programming
- a
- El
- ㅋㅁ
- PrototypePattern
- Observer Pattern
- 디자인패턴
- 함수형프로그래밍
- builderPattern
- Kotlin
- F
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
안드로이드 컴포즈 네비게이션1 기초 Compose navigation Basic1 본문
1. navigation의 원칙
https://developer.android.com/guide/navigation/principles?hl=ko
1) 확정된 시작 화면 (Fixed start destination)
-
- 일회성 설정 및 로그인 과정들은 시작화면으로 볼 수 없다.
2) navigation의 상태는 Stack 구조로 화면을 관리한다.
- Back Stack 을 변경하는 작업은 스택 상단으로 새 화면을 Push하거나, 최상위에 있는 대상을 스택에서 삭제하여 항상 스택 상단에서 실행됩니다.
- 기본적으로 navigation component(host, graph, controller, destination, route)는 모든 Back Stack의 순서를 관리하지만, 개발자가 직접 백 스택을 관리하도록 선택할 수도 있습니다.
3) Up Button은 앱을 종료하지 않습니다.
- Up Button은 앱을 종료하지 않지만, Back Button은 앱을 종료합니다.
- B(App) ----Deep Link를 사용하여 실행 ---> A(app) 하였다면, A에서 Up Button을 통해 A의 화면 Stack을 통해 이전 화면으로 이동할 수 있지만, A앱을 종료할 수는 없다. 하지만, BackButton으로는 가능하다.
4) 딥링크는 수동으로 탐색하는것과 같아야 한다. (Deep linking simulates manual navigation)
- 앱 화면에 딥 링크하면 앱의 기존 백 스택이 모두 삭제되고 딥 링크된 백 스택으로 대체된다.
- 즉, 내가 A라는 앱을 사용하고 있었는데 백그라운드에 넣고 다른 앱을 사용하다 A라는 앱으로 딥링크가 되었다고 해보자! 그러면 기존의 Stack은 모두 비워지고, 새로운 Stack으로 교체된다.
2. 탐색 구성요소 navigation Component
NaviHost
- 현재 탐색 하고 있는 화면을 포함하는 UI 요소
- App은 기본적으로 NaviHost 에 화면을 넣었다가 제거 하는 형태로 탐색을한다.
NaviGraph
- App 내부에 화면을 정의 하고, 연결방법을 정의하는 자료구조
NaviController
- 화면 --> 화면 즉, destination간의 이동을 관리
- 탐색, deeplink, backstack, 작업에 관련된 메소드 제공.
Destination
- NaviGraph의 노드
Route
- NaviGraph의 엣지
- Destination을 식별하고, 전달되는 데이터를 식별함
'Compose' 카테고리의 다른 글
Compose UI Event 다루기 (0) | 2024.11.18 |
---|---|
Event에 따른 UI State 처리방법 (1) | 2024.11.17 |
Compose 상태와 상태홀더 다루기 State & StateHolder (0) | 2024.11.17 |
재사용 가능한 Composable 함수 만들기. (0) | 2024.11.05 |
Compose UI(Composable) 생명주기 (3) | 2024.09.26 |