0%
قاعدة البيانات المحلية

التخزين المحلي

الاحتفاظ بالبيانات بعد إغلاق التطبيق

15-20 دقيقة

قاعدة البيانات المحلية

كل ما بنيناه حتى الآن يختفي عند إغلاق التطبيق. فسلة المشتريات في الدرس 7 تعيش داخل ChangeNotifier، أي في الذاكرة العشوائية: يستعيد نظام التشغيل هذه الذاكرة متى احتاج إليها، فيجد المستخدم سلته فارغة دون أن يفهم السبب. وعلى الهاتف المحمول ليس هذا مجرد افتراض: فنظاما Android وiOS يُنهيان التطبيقات العاملة في الخلفية باستمرار.

يخدم الحفظ المحلي حاجتين ينبغي التمييز بينهما، لأنهما لا تتطلبان الأدوات نفسها. الأولى هي التفضيلات: قيمة منطقية للوضع الداكن، أو اللغة، أو رمز الجلسة. أي بضع عشرات من القيم المنفصلة، تُقرأ عند بدء التشغيل وتُكتب نادرًا. والثانية هي بيانات الأعمال: مئات الصفوف التي نريد تصفيتها وفرزها وربطها وعدّها. إن وضع التفضيلات في قاعدة SQL تعقيد لا داعي له؛ أما وضع كتالوج من ألف عنصر في ملف تفضيلات فخطأ يُدفع ثمنه بطءً عند بدء التشغيل.

يتناول هذا الدرس الأداتين المرجعيتين — shared_preferences وsqflite — مع معيار اختيار صريح، ثم الصعوبتين الفعليتين في SQLite على الهاتف المحمول: ترحيل المخطط (schema) عندما يكون التطبيق مثبتًا بالفعل، والمعاملات (transactions).

معيار الاختيار

الحاجة الأداة السبب
الوضع الداكن، اللغة، «عدم العرض مرة أخرى» shared_preferences مفتاح واحد وقيمة واحدة، وقراءة فورية
رمز جلسة غير حساس، تاريخ آخر مزامنة shared_preferences السبب نفسه
قائمة مهام، كتالوج، سجل، مفضلة sqflite تصفية وفرز وتقسيم إلى صفحات وعدّ
بيانات تُستعلم عبر العلاقات (مؤلف ← مقالات) sqflite الربط (jointures) والفهارس
ملفات: صور، PDF، تصدير path_provider + dart:io قاعدة البيانات ليست نظام ملفات
كلمة مرور، مفتاح API، بيانات طبية لا هذه ولا تلك راجع الملاحظة حول التشفير أدناه

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!