استفاده از 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 راهی ساده و موثر برای مدیریت دادههای کوچک در فلاتر است. با یادگیری نحوه ذخیره، خواندن و حذف اطلاعات میتوانید تجربه کاربری مناسبی در اپلیکیشن خود ایجاد کنید.
☞ حالا نوبت شماست که این قابلیت را در پروژه خود پیادهسازی کنید!