## Problem There is no established pattern for loading states in the mobile app. Each screen will invent its own approach, leading to inconsistent UX. ## Acceptance criteria - [ ] Create a reusable `LoadingScreen` composable (full-screen centered spinner, follows Material3 theme) - [ ] Create a reusable `SkeletonBox` composable (shimmer placeholder for list items and cards) - [ ] Add an example of each in the home or settings screen - [ ] Document the pattern in `mobile/docs/compose-conventions.md` - [ ] Add instrumented tests for both composables
Problem
There is no established pattern for loading states in the mobile app. Each screen will invent its own approach, leading to inconsistent UX.
Acceptance criteria
LoadingScreencomposable (full-screen centered spinner, follows Material3 theme)SkeletonBoxcomposable (shimmer placeholder for list items and cards)mobile/docs/compose-conventions.md