قائمة كبيرة من الاسماء هل احطها في array list او لا ؟
عندي قائمة من الاسماء تقريبا 700 اسم لتطبيق اندرويد ابغى اعرضها في listview
هل الاسماء هذي كلها في احطها في array list ? او Firebase ؟ او في شي ثاني ؟
ابدا ماعندي خلفية في قاعدة بيانات للاندرويد و لسى مبتدئة في تعلم الاندرويد
ياليت تفيدوني وشكرا
ساعد بالإجابة
"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."
الإجابات (3)
** خيارات حفظ البيانات :
- داخليه ، البيانات تحفظ في الذاكرة المخصصة في التطبيق مثل : SQLite او Shared preference.
- خارجيه ، إنشاء قاعدة بيانات خارجية يتم حفظ المعلومات فيها مثل: Firebase.
** نقاط اساسية تساعدني لإختيار طريقة لحفظ البيانات :
من ناحية كفاءة التطبيق وسرعته ، لازم نفكر بالنقاط التالية :
- حالة البيانات - ثابتة ، متغيرة
- شكل البيانات - صور ، مقاطع ، نصوص
- حجم البيانات - وهذا يعتمد على شكل البيانات. فالصور والمقاطع غالباً يكون حجمهم كبير
من ناحية ادارة البيانات وحمايتها
- طبيعة البيانات - هل البيانات حساسة مثل: الارقام السرية او المعلومات البنكية ، او ان بيانات عادية مثل عناوين المطاعم واسماء المناطق.
- حفظ البيانات - هل يهمني ان يكون عندي نسخة احتياطية " في السيرفر" او نسخة فقط " في ذاكرة التطبيق". لازم نفهم ان في امكانية نخسر البيانات اذا تم حفظها فقط في ذاكرة التطبيق
بالنسبة لحالتك ، اعتقد ما تحتاجي قاعدة بيانات خارجية ، آحفظي البيانات بإستخدام الذاكرة المخصصة في التطبيق وراح تتجنبي الآتصال بسيرفر خارجي لإستدعاء البيانات وهذا يرفع كفاءة استدعاء البيانات.
** آيش تنصح بإستخدامة لحفظ البيانات في ذاكرة التطبيق ؟
ما اقدر اجاوب على هذا السؤال ، بالنسبة لي احاول دائماََ ان ابتعد عن الـمكاتب " 3rd party libraries " لآسباب:
- آعتماد التطبيق على المكتبة ، فممكن تطبيقك ما يشتغل اذا تغيرت دالة واحدة في المكتبة - Dependency
- يفرض عليك هيكلة معينة ، ممكن هذي الهيكلة تآثر على هيكلة التطبيق بالكامل فتضطري للتغير.
- صعوبة اختبار كامل الأكواد ، والـ unit testing نعتبره جيد اذا نسبته كانت ٨٥٪ وفوق.
- ممكن المكتبة فيها مميزات functions ما تحتاجينها في التطبيق ، ليش اضيفهم ؟
ممكن يكون استخدام المكتبات اسهل ، لكن مو بالضروري تكون الطريقة الأنسب.
نقطة احب اذكرها ، استخدمي Shared preference لحفظ اعدادات التطبيق او معلومات بسيطة جداََ عن المستخدم. اذا استخدمتي SQLite لازم تكتبي الـ queries وتديري الجدول بنفسك وما اعتقد ان صعب.
khadijah abdullah: البيانات ثابتة و ممكن تتغير بعد فترة اذا حدثت في التطبيق و كلها نصوص عادية تعرض شنو الافضل استخدمه من الي اقترحته ؟
Ahmed: حدثت الجواب
khadijah abdullah: يعطيك العافية و شكرا
السلم عليكم
استخدمي Room مع Paging الجديدة من Android
https://developer.android.com/topic/libraries/architecture/paging/
سريعة في الحفظ والاستعلام.
khadijah abdullah: هل في دورس لها على اليويتوب كثير ؟ ماابغى اتوهق اذا صادفت مشكلة
احمد الجعيد: https://codelabs.developers.google.com/codelabs/build-app-with-arch-components/index.html?index=..%2F..%2Findex#0
khadijah abdullah: يعطيك العافية و شكرا
اهلا بيك
عندي قائمة من الاسماء تقريبا 700 اسم لتطبيق اندرويد ابغى اعرضها في listview
لاتستخدمي ListView بل استخدمي RecylcerView مع Adapter خاص بها و Paging حتى لايحدث بطئ لدى المستخدم.
هل الاسماء هذي كلها في احطها في array list ? او Firebase ؟ او في شي ثاني ؟
في البداية يجب عليك انشاء كلاس موديل باسم مثلاً Contact لعناصر الاسماء لديك, مثلاً رقم الهاتف, الاسم الاول, الاسم الاخير او الاسم ككل.
ثم تقومي بتخزين (عملية ملئ قاعدة البيانات) هذه الاسماء في قاعدة البيانات, الـ Room كافضل وابسط خيار.
وعندما تريدين عرضهم في الـ RecyclerView تقومي باستعلام هذه الاسماء (عناصر الموديل Contact) وتضعيهم في Array List وعرضهم باستخدام الـ Adpater في الـ RecyclerView.
في حالة تغيير او اضافة للبيانات تحتاجي الى ملئ البيانات الجديده واصدار تحديث جديد لتطبيقك حتى يتمكن المستخدم من تحميله من جديد و الحصول على البيانات الحديثه (هذه اسهل طريقة). او تستطيعي ربطه بقاعدة البيانات Firebase وعندما يفتح المستخدم التطبيق سستتحمل لديه البيانات الجديده (مجانية في البداية ولكنها تحتاج الى دفع شهري لاحقاً).
ملاحظة: في عملية ملئ قاعدة البيانات, اذا كانت الاسماء الـ ٧٠٠ بصيغة معروفه كـ JSON او ما شابه لاتحتاجي لكتابتهم يدوياً فقط اعملي طريقة لتحويلهم الى ArrayList او لكتابتهم في قاعدة البيانات.
ابدا ماعندي خلفية في قاعدة بيانات للاندرويد و لسى مبتدئة في تعلم الاندرويد
مثل ماتفضل به الاخوان في الردود السابقة انشاء قاعدة بيانات سوف تكون افضل حل. بالنسبة لقاعدة البيانات الروم كتبت من فتره دورة تشرحها في هذا الرابط: دورة تشرح قاعدة البيانات الـ Room.
xlmnxp: لو تقدر تحدد الاسئلة بالاقتباس والجواب يكون نص طبيعي يكون افضل :)
Mohammad Laif: شكرا لك اخي على التنبيه 😇
khadijah abdullah: يعطيك العافية و شكرا على التوضيح
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !