crosscue

Android Release QA Checklist

Status: Living — the Android counterpart to ios-release-checklist.md.

Run this once per public-facing Android release (Play internal promotion to closed/open testing, production) on at least one phone; add a tablet/foldable pass when available. ~15 minutes per device once the build is installed.

Prerequisites


Automated coverage (context)

The Flutter integration_test suite runs in CI on both platforms, each workflow_dispatch-only: integration-test-ios.yml and integration-test-android.yml (#261). Dispatch the Android leg before a release, or run the whole suite locally against an emulator with scripts/run-android-integration-tests.sh (see DEPLOYMENT.md → Running on Android). A green run covers the seeded solve, rebus, navigation, and lifecycle/theme paths; this manual checklist focuses on what an emulator can’t exercise (real share-sheet import, gestures, store install).


1. Install & first launch

2. Import a puzzle

3. Solving — basic input

4. Solving — rebus

5. Persistence & lifecycle

6. Stats

7. Settings & privacy

8. Visual & accessibility

9. Tablet / foldable (skip if unavailable)

10. Edge cases

11. Challenge Boards (only on builds with a configured backend)

12. Sync (only once Google Drive OAuth is live — currently inert)

13. Home-screen widget & App Shortcuts

The Android widget (CrosscueWidgetProvider, #223) and App Shortcuts (#225) shipped in v1.4 — parity with iOS per ADR-0015.


Reporting bugs found during QA

Same flow as iOS: screenshot/recording → new GitHub issue with device, Android version, steps, expected vs. actual. Block the release on failures in sections 1–7; file 8–10 findings as enhancements unless severe.

After QA passes

  1. Mark the QA pass complete in the release issue.
  2. Promote the build to the target Play track in Play Console.
  3. Monitor Play Console → Quality (ANRs/crashes) for the first days after rollout — this is the only crash signal that exists (no remote crash reporting, by design).