تطبيق Flutter لإدارة المساحات والوحدات.
تم حل مشكلة إعادة تحميل البيانات في كل مرة يتم فيها الدخول إلى صفحة Home من خلال:
-
إضافة متغير
_isInitializedفي كلا الـ Provider:SpacesProviderSpaceUnitsProvider
-
تحسين دالة
fetchSpacesAndUnitsلتجنب إعادة التحميل:- إضافة معامل
forceRefreshللتحكم في إعادة التحميل - التحقق من حالة التهيئة قبل التحميل
- إضافة معامل
-
إضافة ميزات التحديث اليدوي:
- زر تحديث في شريط البحث
- Pull-to-Refresh في الصفحة الرئيسية
- رسائل تأكيد عند التحديث
-
تحسين شروط العرض:
- عرض Loading فقط عند التحميل الأول
- عرض رسائل مناسبة عند عدم وجود بيانات
تم تحسين أداء الصور وحل مشكلة البطء في عرضها من خلال:
-
تحسين
CachedNetworkImage:- إضافة
cacheKeyلتحسين التخزين المؤقت - إضافة
maxWidthDiskCacheوmaxHeightDiskCacheلتحسين التخزين على القرص - إضافة
useOldImageOnUrlChange: trueلتجنب loading للصور المحفوظة - إضافة
fadeInDurationوfadeOutDurationلتحسين الانتقال - تجنب استخدام
memCacheWidthوmemCacheHeightللحفاظ على نسب الأبعاد الصحيحة
- إضافة
-
تحسين
MyMiniCard:- استبدال
DecorationImageمعCachedNetworkImageProviderبـCachedNetworkImagewidget - إضافة placeholder و error handling أفضل
- تحسين التصميم مع gradient overlay
- استبدال
-
تحسين جميع مكونات الصور:
MySpaceCard- الصورة الرئيسية في Home Page
- صور السلايد شو في Space Details Page
- صورة الوحدة في Unit Details Page
- جميع الصور في التطبيق
-
تحسينات إضافية:
- Placeholder محسن مع loading indicator
- Error handling محسن
- الحفاظ على نسب الأبعاد الصحيحة للصور
- تحسين التخزين المؤقت على القرص
- تجنب loading للصور المحفوظة مسبقاً
- تطبيق التحسينات على جميع الصفحات
- تحديث البيانات يدوياً: يمكن للمستخدم تحديث البيانات بالضغط على زر التحديث
- Pull-to-Refresh: سحب الشاشة للأسفل لتحديث البيانات
- تحسين الأداء: عدم إعادة تحميل البيانات عند التنقل بين الصفحات
- تحسين عرض الصور: تحميل أسرع للصور مع تخزين مؤقت محسن
- رسائل تأكيد: إشعارات عند نجاح التحديث
- التحديث التلقائي: البيانات تُحمل مرة واحدة عند بدء التطبيق
- التحديث اليدوي: اضغط على زر التحديث في شريط البحث
- Pull-to-Refresh: اسحب الشاشة للأسفل في الصفحة الرئيسية
- تحسين الصور: الصور تُحمل مرة واحدة وتُخزن في الذاكرة المؤقتة
lib/provider/my_provider.dartlib/provider/space_units_provider.dartlib/main.dartlib/view/my_page/home_page_1.dartlib/view/my_wedgit/my_mini_card.dartlib/view/my_wedgit/my_space_card.dartlib/view/my_page/unit_details_page.dartlib/view/my_page/space_details_page.dart
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.