Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a single-screen Android app in Kotlin using Jetpack Compose (e.g. a unit converter, a tip calculator, or a counter/notes screen). It must use Compose state correctly (remember + mutableStateOf, with state hoisting so child composables are stateless), survive a screen ROTATION without losing important state (move durable state into a ViewModel), and follow Material 3 theming. No business logic in composables — keep them driven by state. Build and run it on an emulator.
Declarative composables; state via remember/mutableStateOf with proper hoisting (state down, events up); UI is a function of state.
Rotation does not lose important state (durable state in a ViewModel that survives config changes); no lifecycle-related crashes.
Material 3 theming; sensible composable structure; dp/sp used appropriately.
Compiles and runs on an emulator without warnings-as-errors; clean project layout.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A Compose app with state and a clean lifecycle ## Goal Build a single-screen Android app in Kotlin using Jetpack Compose (e.g. a unit converter, a tip calculator, or a counter/notes screen). It must use Compose state correctly (remember + mutableStateOf, with state hoisting so child composables are stateless), survive a screen ROTATION without losing important state (move durable state into a ViewModel), and follow Material 3 theming. No business logic in composables — keep them driven by state. Build and run it on an emulator. ## Acceptance criteria - [ ] Compose & state: Declarative composables; state via remember/mutableStateOf with proper hoisting (state down, events up); UI is a function of state. - [ ] Lifecycle correctness: Rotation does not lose important state (durable state in a ViewModel that survives config changes); no lifecycle-related crashes. - [ ] Material & structure: Material 3 theming; sensible composable structure; dp/sp used appropriately. - [ ] Builds & runs: Compiles and runs on an emulator without warnings-as-errors; clean project layout. ## 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.