Gestion d'état
Nous utilisons une approche hybride pour la gestion d'état.
1. État serveur (React Query)
90 % des données de l'app proviennent de l'API (chevaux, alertes, caméras). Nous utilisons TanStack Query pour :
- Le cache (validité instantanée).
- Le rafraîchissement en arrière-plan.
- Les mises à jour optimistes (UI mise à jour avant confirmation serveur).
const { data: horses } = useQuery({
queryKey: ["horses", stableId],
queryFn: () => api.getHorses(stableId),
});
2. État applicatif (React Context)
Pour l'état global, nous utilisons des Context Providers.
- AuthProvider : Stocke le JWT dans
SecureStore(prêt biométrie) et exposesignIn/signOut. - SocketProvider : Maintient le singleton de connexion Socket.io.
3. État de navigation
Géré implicitement par Expo Router à partir du système de fichiers (app/(tabs)/index.tsx).