---
ui_doc_type: views-index
views:
  - app-shell
  - builds
  - devices
  - console
  - settings
  - jenkins-web-login
---

# View Definitions

## View Tree

| View ID | Status | Evidence | Description |
|---------|--------|----------|-------------|
| `app-shell` | 구현됨 | `lib/src/features/app_shell.dart` | AppSok 브랜드, NavigationRail, top bar, 현재 page host |
| `builds` | 구현됨 | `lib/src/features/builds/builds_page.dart` | Jenkins job/build 탐색과 APK download/install handoff |
| `devices` | 구현됨 | `lib/src/features/devices/devices_page.dart` | ADB device 목록, pending install 실행, 설치 결과 표시 |
| `console` | 구현됨 | `lib/src/features/console/console_page.dart` | 선택 device의 logcat 스트림 확인과 필터링 |
| `settings` | 구현됨 | `lib/src/features/settings/settings_page.dart` | Jenkins credential/Web Login, ADB path, diagnostics 설정 |
| `jenkins-web-login` | 구현됨 | `lib/src/features/settings/jenkins_web_login_page.dart` | Jenkins 로그인 WebView와 token bridge 진행 상태 |

## Navigation

- `app-shell` -> `builds`: NavigationRail `빌드`
- `app-shell` -> `devices`: NavigationRail `디바이스`
- `app-shell` -> `console`: NavigationRail `콘솔`, 또는 device tile `logcat` action
- `app-shell` -> `settings`: NavigationRail `설정`
- `settings` -> `jenkins-web-login`: Web Login action이 fullscreen dialog를 연다.
- `builds` -> `devices`: APK download/stage 완료 후 install handoff가 pending install 상태로 전환한다.

## Common States

- loading: Jenkins job/build, ADB device, logcat, diagnostics, WebView load 중 표시
- empty: 접근 가능한 job 없음, APK artifact 없음, device 없음, 검색 결과 없음
- error: Jenkins 조회 실패, ADB load 실패, logcat error, token 저장/삭제 실패, WebView error
- permission-denied: Jenkins 권한 없음 또는 재로그인 필요

## Common Permissions

- Jenkins credential: `builds`의 job/build 조회와 artifact download에 필요하다.
- ADB runtime: `devices` refresh/install, `console` logcat, `settings` diagnostics에 필요하다.

## Open Questions

- 없음
