آموزش استفاده از SharedPreferences در فلاتر
در این آموزش به بررسی مفهوم SharedPreferences آموزش کار با آن برای ذخیره سازی اطلاعات در فلاتر خواهیم پرداخت.
در خیلی از مواقع نیاز به ذخیره سازی دائمی اطلاعات در اپلیکیشن داریم. این اطلاعات زمانی که زیاد و تکرار شونده باشند از دیتابیس استفاده میکنیم که امکانات بسیار زیادی هم در اختیار ما قرار میدهد.
مثلا لیست علاقه مندی ها یا نوشته های یک برنامه نوت که کاربران ده ها مطلب از یک دسته بندی و نیاز دارند ذخیره کنند از دیتابیس استفاده می کنیم.
اما بعضی مواقع ما فقط یک سری اطلاعات محدود و کم را لازم داریم که نگهداری کنیم مثل اسم کاربری که لاگین انجام داده ایمیل و بقیه موارد که نیازی به ساخت دیتابیس و جدول نیست.
در این مواقع از قابلیتی به نام SharedPreferences استفاده میکنیم که مثل یک دیتابیس کوچک عمل می کند و اطلاعات را به همراه یک کلید به شکل دائمی در برنامه نگهداری میکند.
برای شروع ابتدا باید پکیج زیر و به برنامه اضافه کنید.
dependencies:
shared_preferences: ^0.5.1+2
بعد از نصب پکیج, در کلاسی که نیاز به استفاده از SharedPreferences دارید باید کلاس پکیج را ایمپورت کنید.
import 'package:shared_preferences/shared_preferences.dart';
بعد از ایمپورت کردن نوبت به مقداردهی کردن SharedPreferences میرسد. ابتدا یک نمونه از این کلاس ایجاد میکنیم و از طریق این نمونه ساخته شده عملیات ذخیره و بازیابی را انجام میدهیم.
SharedPreferences sharedPreferences;
_onChanged(bool value) async {
sharedPreferences = await SharedPreferences.getInstance();
setState(() {
checkValue = value;
sharedPreferences.setBool("check", checkValue);
sharedPreferences.setString("username", username.text);
sharedPreferences.setString("password", password.text);
});
}
نحوه ذخیره سازی اطلاعات در SharedPreferences بسیار شبیه به Map می باشد زیرا اطلاعات مورد نیاز را بصورت یک جفت key,value ذخیره میکنیم.
برای مثال با دستور sharedPreferences.setString(“password”, password.text);
یک رشته با نام کلید password را با مقدار password.txt ذخیره میکنیم حالا هر زمان در هر کجای برنامه نیاز داشته باشیم با فراخوانی نام password به مقدار آن دسترسی پیدا میکنیم.
امکان ذخیره کردن تمام داده های استاندارد زبان دارت را با استفاده از این پکیج دارید.
برای دریافت کردن اطلاعات هم به شکل زیر عمل میکنیم.
username.text = sharedPreferences.getString("username");
password.text = sharedPreferences.getString("password");
برای حذف اطلاعات کافیست کلید مورد نظر را به متد remove انتقال دهید تا اطلاعات پاک شوند.
sharedPreferences.remove("key");
در خیلی از موارد نیاز است تا بررسی کنیم آیا کلید خاصی تا به حال استفاده شده است یا خیر که به شکل زیر عمل میکنیم:
bool CheckValue = sharedPreferences.containsKey('value');
در صورتی که کلید مورد نظر وجود داشته باشد مقدار صحیح بازگردانی میشود.
دیدگاهتان را بنویسید