Skip to Content
React Native18. Mini-jeuxT7. Réseau & offline

Terrain 7 — Réseau & offline

9 drills · ~10 min · Chapitres liés : Partie 7

1. Pourquoi n’y a-t-il pas de CORS en RN, et la contrepartie de sécurité ?

Pas de navigateur → pas de same-origin policy : tout appel passe. Contrepartie : tout ce qui est dans l’app est public (l’APK se décompile) — jamais de clé secrète embarquée.

2. Le pattern timeout d’un fetch RN ?

AbortController + setTimeout(() => controller.abort(), ms)fetch(url, { signal }). Pas d’option native.

3. staleTime vs gcTime en une phrase chacun ?

staleTime = durée de fraîcheur (frais → zéro réseau ; stale → servi + refetch en fond). gcTime = rétention en mémoire d’une donnée inutilisée.

4. Les deux branchements RN spécifiques de TanStack Query ?

onlineManager ← NetInfo (reconnexion) et focusManager ← AppState (retour au premier plan) — les équivalents des événements window du web.

5. L’architecture des questions de Drill en une phrase (l’ADR 0001) ?

Un repo GitHub public (manifest.json + un JSON par thème) servi par raw.githubusercontent.com, fetché + validé zod + caché offline — mise à jour = git push, zéro serveur.

6. Parse strict vs safeParse dans le pipeline de questions : qui, où, pourquoi ?

Strict sur l’enveloppe du fichier (corrompu = erreur franche) ; safeParse par question (une invalide = ignorée avec warning, le jeu continue). Tolérance proportionnée au rayon du dégât.

7. À quoi sert schemaVersion dans les JSON ?

Le contrat d’évolution : une vieille app rejette proprement un format plus récent (message clair) au lieu de crasher — et une app neuve peut accepter plusieurs versions.

8. La matrice réseau×cache : que voit l’utilisateur hors ligne AVEC cache ? Hors ligne SANS cache ?

Avec : les données + bandeau « hors ligne » (un mode, pas une erreur). Sans : ErrorState + retry + le thème mélange bundlé (première ouverture dans l’avion : jouable quand même).

9. Pourquoi ne copie-t-on jamais data de Query dans Zustand — et l’exception de Drill ?

Deux sources de vérité divergent. Exception : la session copie les questions tirées — un snapshot de partie voulu figé (le refetch ne change pas une partie en cours).


👉 Terrain suivant : 8 — SQLite