π± Mobile Architecture
Expo / React Native app. Uses NativeWind (Tailwind in RN), Redux Toolkit, i18next.
Layoutβ
State Managementβ
Same Redux pattern as Station Frontend β slices have only sync reducers, thunks dispatch lifecycle actions explicitly. See Station Frontend β Redux for the full pattern.
Stylingβ
- NativeWind (Tailwind classes for RN) β not styled-components
- Same semantic color tokens as Station Frontend
useTranslation()for all user-facing strings
API Clientβ
// transport/http/client.ts
const apiClient = axios.create({
baseURL: CLOUD_HOST,
// auth interceptors + token refresh
});
All API calls go through thunks in *.actions.ts files. Screens never import from transport/.
WebSocketβ
Mobile keeps a WSS connection to Cloud for real-time device state updates and push fallbacks.
Referenceβ
- Conventions: expo.md β