Ubisam-MobileGit/tasks/001-bootstrap.md

2.5 KiB

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

  • Android Studio can import the project without manual source edits.
  • Debug APK builds successfully.
  • Unit tests and Android lint run successfully.
  • The launcher displays UBGitea and a placeholder state.
  • No secret or client secret is present.
  • Final application ID and minimum SDK are recorded in an ADR.

Required checks

./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.