--- 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 - 없음