Design a mobile app architecture that cleanly separates UI, state, and data layers for maintainability and testability.