Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Take an app to release quality and publish it to a Google Play testing track. Deliver: (1) the modern stack — Kotlin + Compose + Coroutines/Flow + ViewModel + Room + Retrofit + Hilt (DI); (2) correct RUNTIME permission handling for any sensitive API you use (requested at point of use, graceful denial); (3) accessibility (TalkBack labels, adequate touch targets) and dark theme; (4) a profiled, leak-free app (no Activity/Context leaks — verify with LeakCanary) holding a smooth frame rate; (5) a signed RELEASE build as an Android App Bundle (.aab) with R8 enabled; and (6) an upload to an internal/closed testing track via Play App Signing, with a store listing. Document the build/release steps.
Kotlin + Compose + Coroutines + ViewModel + Room + Retrofit + Hilt wired cleanly; idiomatic, decoupled, testable.
Runtime permissions handled properly; accessibility + dark theme; no main-thread jank; no memory leaks (LeakCanary clean).
Signed release AAB with R8 shrinking; uploaded to a Play testing track via Play App Signing; store listing present.
Build/release steps documented; reproducible; versionCode/versionName managed.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A polished, release-ready app published to a track ## Goal Take an app to release quality and publish it to a Google Play testing track. Deliver: (1) the modern stack — Kotlin + Compose + Coroutines/Flow + ViewModel + Room + Retrofit + Hilt (DI); (2) correct RUNTIME permission handling for any sensitive API you use (requested at point of use, graceful denial); (3) accessibility (TalkBack labels, adequate touch targets) and dark theme; (4) a profiled, leak-free app (no Activity/Context leaks — verify with LeakCanary) holding a smooth frame rate; (5) a signed RELEASE build as an Android App Bundle (.aab) with R8 enabled; and (6) an upload to an internal/closed testing track via Play App Signing, with a store listing. Document the build/release steps. ## Acceptance criteria - [ ] Modern stack & DI: Kotlin + Compose + Coroutines + ViewModel + Room + Retrofit + Hilt wired cleanly; idiomatic, decoupled, testable. - [ ] Platform correctness: Runtime permissions handled properly; accessibility + dark theme; no main-thread jank; no memory leaks (LeakCanary clean). - [ ] Release build: Signed release AAB with R8 shrinking; uploaded to a Play testing track via Play App Signing; store listing present. - [ ] Documentation: Build/release steps documented; reproducible; versionCode/versionName managed. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.