← Volver al listado de tecnologías
Capítulo 6: Storage Debugging
Storage Debugging
El plugin Storage permite inspeccionar y modificar el almacenamiento local en tiempo real.
Storages Soportados
- AsyncStorage: Storage por defecto de React Native
- MMKV: Storage de alto rendimiento
- SecureStore: Storage encriptado (Expo)
Interfaz del Panel
┌─────────────────────────────────────┐
│ Storage [Refresh] │
├─────────────────────────────────────┤
│ AsyncStorage (5 items) │
│ ├─ user_token: "eyJhbGci..." │
│ ├─ user_settings: { theme: "dark" } │
│ ├─ onboarding_complete: true │
│ └─ cart_items: [...] │
├─────────────────────────────────────┤
│ [Add Key] [Clear All] │
└─────────────────────────────────────┘
Configuración
import { StoragePlugin } from '@rozenite/storage';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { MMKV } from 'react-native-mmkv';
const storage = new MMKV();
const storageConfig = {
adapters: [
{
name: 'AsyncStorage',
adapter: AsyncStorage,
},
{
name: 'MMKV',
adapter: {
getItem: (key) => storage.getString(key),
setItem: (key, value) => storage.set(key, value),
removeItem: (key) => storage.delete(key),
getAllKeys: () => storage.getAllKeys(),
},
},
],
};
<RozeniteProvider
plugins={[StoragePlugin.configure(storageConfig)]}
>
Edición en Tiempo Real
- Haz click en cualquier valor
- Edita el JSON o string
- Guarda los cambios
- La app refleja el cambio inmediatamente
Ejercicio Práctico
Objetivo
Inspeccionar y modificar AsyncStorage desde Rozenite.
Pasos
- Guarda varios valores en AsyncStorage
- Abre el panel Storage
- Edita un valor desde DevTools
- Verifica el cambio en la app
Ver solución
import AsyncStorage from '@react-native-async-storage/async-storage';
function StorageDemo() {
const [theme, setTheme] = useState('light');
useEffect(() => {
loadTheme();
}, []);
const loadTheme = async () => {
const saved = await AsyncStorage.getItem('theme');
if (saved) setTheme(saved);
};
const saveData = async () => {
await AsyncStorage.setItem('theme', 'dark');
await AsyncStorage.setItem('user', JSON.stringify({
name: 'Juan',
email: '[email protected]'
}));
};
return (
<View style={{ backgroundColor: theme === 'dark' ? '#000' : '#fff' }}>
<Button title="Guardar datos" onPress={saveData} />
<Button title="Recargar tema" onPress={loadTheme} />
</View>
);
}
Desde Storage panel, edita theme a "light" o "dark" y presiona Recargar.
Criterios de Éxito
- Datos guardados visibles
- Edición desde DevTools funciona
- App refleja cambios