Expo provides two different packages for managing data storage in your app: expo-secure-store and expo-file-system.
expo-secure-store is used for storing sensitive information such as passwords, tokens, and API keys. It encrypts the data and stores it securely on the device. Here is an example of how to use expo-secure-store to store and retrieve a user's password:
import * as SecureStore from 'expo-secure-store';
// Store password securely
await SecureStore.setItemAsync('password', 'myPassword');
// Retrieve password securely
const password = await SecureStore.getItemAsync('password');
console.log(password); // 'myPassword'
expo-file-system is used for storing files such as images, videos, and documents. It provides methods for reading, writing, and deleting files. Here is an example of how to use expo-file-system to download an image from a URL and save it to the device:
import * as FileSystem from 'expo-file-system';
// Download image from URL and save to device
const url = 'https://example.com/image.jpg';
const fileUri = FileSystem.documentDirectory + 'image.jpg';
const downloadResult = await FileSystem.downloadAsync(url, fileUri);
console.log(downloadResult); // { uri: 'file:///path/to/file', status: 200, headers: {...}, md5: '...' }
These two packages serve different purposes and should be used according to your app's specific needs.