شرح كيفية تخزين list string في shared preferences في Flutter
يواجه كثير من المبرمجين مشكله اثناء تخزين list كامل في قاعة البيانات المحليه للتطبيق الخاص بهم في ال shared preferences ولكن المشكلة التي تقابلهم ان ال shared preferences لا يدعم امكانية تخزين list بل يقبل فقط string , imt . double اي يقبل فقط اشياء فرديه ولكن هل يوحد مشكلة اذا قمت بتحويل ال list الى string وتخزينها ؟ في الواقع لا يوجد اي مشكلة تماما وفي هذا الشرح سوف نشرح لكم كيف تقوم بتخزين ليست كامل في ال shared preferences بدون اي مشاكل .
عادة ، من وجهة نظر المطور ، تتناقض أطر العمل والمكتبات عبر الأنظمة الأساسية مع بعضها البعض. على الرغم من أن هذا مفيد من الناحية الفنية عند الاختيار بين Flutter و React Native ، على سبيل المثال ، إلا أنه لا يمثل نظرة عامة شاملة على قدرات Flutter.
من الناحية الفنية ، سيكون من الأصح الإشارة إلى Flutter على أنها SDK بدلاً من إطار عمل. الفرق الرئيسي بين الاثنين هو أن Flutter يوفر جميع الموارد والأدوات المطلوبة للمطورين لإنشاء تطبيقات عبر الأنظمة الأساسية.
يمتلك المطور كل ما يحتاجه لبدء إنشاء التطبيقات إذا كان لديه معرفة سابقة بـ Flutter ، وقام للتو بتنزيل SDK ، ويستخدم محرر كود مناسب. حاليًا ، يمكن لـ Flutter إنشاء تطبيقات لأنظمة iOS و Windows و Linux و macOS.
How to save list of string in shared preferences
في البداية يوجد لدينا list بسيط جدا يحتوي على مجموعه من الاسماء ويوجد لدينا زر يقوم بعرض الlist وطباعتها والاخر يقوم بتخزينها , اثناء عملية التخزين سوف يتم استخدام الامر json encode وهذا هو المسؤول عن تحويل القائمة الى نص بدون اي مشاكل والان اذا قمت بطباعة نوع الlist سوف تشاهد انها عباره string ولا يوجد مشكلة الان في تخزينها , في الاستدعاء يمكنك استدعائها بدون اي مشاكل في الزر التالي كما هو موضح وسوف يقوم بطباعة لك ال list وهنا قمنا بتقسيها لكي نرجعها الى list وليس string .
ui.dart
List<String> myList = ['ahmed','mohamed','khaled'];
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: MaterialButton(
onPressed: (){
var s = json.encode(myList);
// convert list to string
CacheHelper.sharedPreferences.setString('ahmed', s);
print(s.runtimeType);
},
child: Text('Convert'),
),
),
Center(
child: MaterialButton(
onPressed: (){
List data = CacheHelper.sharedPreferences.getString('ahmed').toString().split(',');
print(data.runtimeType);
print(data.length);
print(data);
},
child: Text('print'),
),
)
],
)
);
}
}
android sdk manager تحميل flutter developers applications create app android android studio mac