Skip to main content

On This Page

Flutter Data Storage: Choosing Between SharedPreferences and FlutterSecureStorage

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Tipos de dados

Flutter enables data persistence on user devices for various purposes, such as promotional pop-up control or preference storage. This article differentiates between simple and encrypted data storage methods and presents key packages for each.

Dados simples

Simple data lacks security requirements and includes items like user preferences or display settings. This data is easily accessed, even in debug mode on Android.

Dados criptografados

Encryption encodes data using an algorithm, rendering it unreadable without decryption. Sensitive data, such as user information, should be stored using encryption to maintain its security, utilizing packages like flutter_secure_storage.

Key Insights

  • SharedPreferences is a package recommended by the Flutter team for simple data storage.
  • FlutterSecureStorage leverages keychain (iOS) and keyStore (Android) for encrypted data persistence.
  • Choosing the right storage method depends on the type of data and its criticality.

Working Example

// Example using SharedPreferences
import 'shared_preferences';

Future<void> main() async {
  final prefs = await SharedPreferences.getInstance();
  await prefs.setString('theme', 'dark');
  String? theme = prefs.getString('theme');
  print('Theme: $theme');
}

// Example using FlutterSecureStorage
import 'flutter_secure_storage';

Future<void> main() async {
  final storage = FlutterSecureStorage();
  await storage.write(key: 'token', value: 'secure_token');
  String? token = await storage.read(key: 'token');
  print('Token: $token');
}

Practical Applications

  • Use Case: An e-commerce app using SharedPreferences to store user’s preferred currency.
  • Pitfall: Storing sensitive user credentials using SharedPreferences – potentially leading to a data breach.

References:

Continue reading

Next article

Google Introduces T5Gemma 2: Encoder Decoder Models with Multimodal Inputs via SigLIP and 128K Context

Related Content