Ubisam-MobileGit/tasks/001-bootstrap.md

54 lines
2.5 KiB
Markdown

# TASK-001: Bootstrap the Android project
Status: complete
Owner: Codex
Reviewer: Claude
## Outcome
Create an Android Studio project that builds a minimal UBGitea Compose application and establishes deterministic local checks.
## Scope
- Included: Gradle wrapper, one Android application module, Compose theme, placeholder home screen, unit-test baseline, lint, CI-ready commands.
- Excluded: OAuth implementation, Gitea API calls, final branding assets.
## Writable paths
- Root build and configuration files
- `app/`
- `.github/` if CI is selected
- Documentation updates needed to record chosen versions
## Acceptance criteria
- [x] Android Studio can import the project without manual source edits.
- [x] Debug APK builds successfully.
- [x] Unit tests and Android lint run successfully.
- [x] The launcher displays `UBGitea` and a placeholder state.
- [x] No secret or client secret is present.
- [x] Final application ID and minimum SDK are recorded in an ADR.
## Required checks
```text
./gradlew assembleDebug
./gradlew testDebugUnitTest
./gradlew lintDebug
```
## Evidence
Recorded on 2026-08-25 using JDK 17 and Android SDK 36:
- `./gradlew assembleDebug` — passed; generated `app/build/outputs/apk/debug/app-debug.apk`.
- `./gradlew testDebugUnitTest` — passed; 1 test, 0 failures, 0 errors.
- `./gradlew lintDebug` — passed; report generated at `app/build/reports/lint-results-debug.html`.
- APK metadata inspection — package `com.ubisam.ubgitea`, minimum SDK 28, target SDK 36, application label `UBGitea`, launchable `MainActivity`.
- Sensitive-pattern repository scan excluding generated and Git metadata — no assigned secret, token, password, or private-key value found.
- Static formatting/check task — not configured for this bootstrap.
- Manual device launch — not performed because no emulator or device was available; packaged resources and APK metadata were inspected instead.
- Product decisions are recorded in `docs/decisions/001-android-application-baseline.md` and summarized in `docs/product.md`.
- Independent read-only review — no P0-P3 findings; reviewer reran build, unit test, and lint together successfully.
- Residual review notes — no device/emulator launch was available; lint completed with 0 errors and 11 non-blocking warnings (dependency updates, final icon, and future data-extraction policy). Final branding is excluded from TASK-001, and backup/data-extraction policy must be revisited before authentication or local persistence is introduced.