Tarjeta de referencia rápida - lista para copiar y pegar.
Trata cada dominio como un documento aislado con un sufijo de versión en la clave:
-
Almacenar listas grandes en una matriz JSON - Analizar 5 MB en el hilo de JS bloquea la interfaz. Solución: Mueve datos relacionales a expo-sqlite; mantén AsyncStorage para metadatos y punteros de bandeja de salida.
-
Sin versionamiento de esquema - Enviar una nueva forma sin migración falla las suposiciones de JSON.parse. Solución: Siempre mantén app:storage:meta:v1 y migraciones paso a paso.
-
Almacenar secretos en AsyncStorage - No está encriptado. Solución: Tokens en expo-secure-store; solo preferencias no sensibles en AsyncStorage.
-
Carrera en escrituras concurrentes - Dos pantallas agregando a la misma bandeja de salida pueden perder elementos. Solución: Lee-modifica-escribe en una función; serializa descargas con un mutex o servicio de cola.
-
Asumir que la persistencia es sincrónica - await getItem en cada renderizado causa retrasos. Solución: Carga una vez al iniciar o hidrata Zustand/Query; usa MMKV para rutas críticas sincrónicas.
-
Crecimiento ilimitado del persister de Query - Deshidratar cada consulta llena el disco. Solución: filtro shouldDehydrateQuery + maxAge; ver ../state-management/tanstack-query/tanstack-query.md.
-
Olvidar limpiar al cerrar sesión - El caché del usuario anterior se filtra al siguiente inicio de sesión. Solución: multiRemove en claves de sesión + queryClient.clear() al cerrar sesión.
Versiones de la pila: Esta página fue escrita para React 19.2.3, React Native 0.86.0 y Expo SDK 57 (expo ~57.0.4).