استفاده از SharedPreferences برای ذخیره داده‌های ساده در فلاتر

یکی از نیازهای رایج در توسعه اپلیکیشن‌های موبایل، ذخیره داده‌هایی مانند تنظیمات کاربر یا وضعیت برنامه به صورت محلی است. در فلاتر، SharedPreferences ابزاری قدرتمند و آسان برای این منظور فراهم می‌کند. این ابزار امکان ذخیره‌سازی داده‌های کلید-مقدار (key-value) را ارائه می‌دهد که برای اطلاعات کوچک و ساده مناسب است.

چرا SharedPreferences؟

SharedPreferences یک راه سریع و سبک برای ذخیره‌سازی داده‌ها به صورت محلی است. این ابزار برای موارد زیر مناسب است:

  • ذخیره تنظیمات کاربری مانند حالت شب یا زبان انتخابی.
  • ذخیره توکن‌های احراز هویت یا وضعیت ورود کاربر.
  • ذخیره اطلاعات موقت که نیاز به پایداری دارند.

نحوه نصب و راه‌اندازی

برای استفاده از SharedPreferences، ابتدا باید بسته آن را به پروژه خود اضافه کنید. این کار با اضافه کردن خط زیر به فایل pubspec.yaml انجام می‌شود:

dependencies:
  shared_preferences: ^2.0.15

سپس دستور flutter pub get را اجرا کنید تا بسته نصب شود.

ذخیره داده‌ها

برای ذخیره داده‌ها با استفاده از SharedPreferences، ابتدا باید یک نمونه از آن ایجاد کنید و سپس با متدهای مناسب داده مورد نظر را ذخیره کنید:

// Import the package
import 'package:shared_preferences/shared_preferences.dart';

Future saveData() async {
  final prefs = await SharedPreferences.getInstance();

  // Save a string value
  await prefs.setString('username', 'FlutterDev');

  // Save an integer value
  await prefs.setInt('age', 25);

  // Save a boolean value
  await prefs.setBool('isLoggedIn', true);
}

خواندن داده‌ها

برای خواندن داده‌ها کافی است با استفاده از کلید مربوطه مقدار ذخیره شده را دریافت کنید:

// Import the package
import 'package:shared_preferences/shared_preferences.dart';

Future readData() async {
  final prefs = await SharedPreferences.getInstance();

  // Read a string value
  String? username = prefs.getString('username');

  // Read an integer value
  int? age = prefs.getInt('age');

  // Read a boolean value
  bool? isLoggedIn = prefs.getBool('isLoggedIn');
}

حذف داده‌ها

برای حذف یک مقدار خاص می‌توانید از متد remove() استفاده کنید:

// Import the package
import 'package:shared_preferences/shared_preferences.dart';

Future removeData() async {
  final prefs = await SharedPreferences.getInstance();

  // Remove a specific key-value pair
  await prefs.remove('username');
}

نکات مهم هنگام استفاده از SharedPreferences

  • SharedPreferences مناسب ذخیره‌سازی اطلاعات حساس مانند رمز عبور نیست. برای چنین مواردی بهتر است از ابزارهای امنیتی مانند flutter_secure_storage استفاده کنید.
  • این API به‌صورت هم‌زمان (synchronous) کار می‌کند، اما فلاتر برای جلوگیری از فریز شدن رابط کاربری هنگام دسترسی به داده‌ها، از یک پوشش (wrapper) غیرهم‌زمان (asynchronous) استفاده می‌کند.

جمع‌بندی

استفاده از SharedPreferences راهی ساده و موثر برای مدیریت داده‌های کوچک در فلاتر است. با یادگیری نحوه ذخیره، خواندن و حذف اطلاعات می‌توانید تجربه کاربری مناسبی در اپلیکیشن خود ایجاد کنید.

☞ حالا نوبت شماست که این قابلیت را در پروژه خود پیاده‌سازی کنید!