Skip to main content

πŸ“± Mobile Architecture

Expo / React Native app. Uses NativeWind (Tailwind in RN), Redux Toolkit, i18next.

Source β†—

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​