وفر قريشاتك
وفّر في كل طلب بلمسة واحدة
تطبيق كوبونات وعروض عربي مبني بـ Flutter و Firebase: انسخ كود الخصم بلمسة، وافتح المتجر، وتصفّح العروض، واستقبل الصفقات الجديدة بالإشعارات.
- الدولة
السعودية
- النوع
- الكود متاح
- الفترة
- 2021
- المنصات
- Android · iOS
نظرة عامة
وفر قريشاتك (ElMwafer) تطبيق كوبونات وعروض للمتسوقين العرب في السعودية والخليج. يعرض أكواد خصم لأشهر المتاجر الإلكترونية في الأزياء والمنزل والسفر والمطاعم والأطفال وغيرها.
ينسخ المستخدم الكود بلمسة واحدة وينتقل إلى المتجر، ويتصفح عروض المتاجر ويقرأ مقالات التسوق. يُدار المحتوى من تطبيق إدارة منفصل على Firebase، ويضم هذا المستودع الكود المصدري الكامل لتطبيق المستخدم.
التحدي
- 01
كانت أكواد الخصم متفرقة في منشورات مواقع التواصل، وكثير منها ينتهي قبل أن يصل إليه المتسوق.
- 02
احتاج المشغّل إلى إضافة المتاجر والكوبونات والعروض دون إصدار تحديث، وإبلاغ المستخدمين بالصفقات الجديدة فورًا.
- 03
الجمهور يقرأ العربية، فكان لا بد أن تكون التجربة كلها RTL أولًا بخط عربي.
أبرز الميزات
الكوبونات
- شريط أقسام للمطاعم والسفر والأطفال والمنزل وغيرها، ولكل قسم قائمة كوبونات.
- بحث فوري عن المتاجر يعتمد على استعلامات النطاق في Firestore.
- بطاقة كوبون بشعار المتجر والخصم والكود وعدّاد الاستخدام.
- زر نسخ الكود ينسخه إلى الحافظة ويزيد عدّاد النقرات للمتجر.
- زر تسوّق الآن يفتح المتجر، وزر المشاركة يرسل العرض مع رابط تحميل التطبيق.
العروض والتفاعل
- عروض متاجر مثل Amazon و H&M و AliExpress تُحمَّل من Firestore مع بحث خاص بها.
- كل عرض يفتح صفحة المتجر في المتصفح.
- كل جهاز مشترك في topic باسم
allعلى FCM ليرسل المشرف الصفقات الجديدة للجميع. - اهتزاز عند وصول إشعار والتطبيق مفتوح.
هيكل التطبيق
- شاشات تعريف تظهر مرة واحدة عبر علَم محفوظ في
shared_preferences. - قائمة جانبية للتبديل بين الوضعين الفاتح والداكن والتواصل عبر WhatsApp والتقييم والمشاركة.
- واجهة عربية بخط Cairo من Google Fonts مع شريط علوي منحنٍ مخصص.
الميزة الأبرز
انسخ الكود وافتح المتجر
- قائمة الكوبونات استعلام Firestore على
couponsمفلتر حسب القسم المختار. - زر نسخ الكود يحدّث حقل
clickللمتجر أولًا ثم ينسخ الكود ويعرض رسالة تأكيد، فيعكس عدّاد الاستخدام في كل بطاقة نقرات حقيقية. - زر تسوّق الآن يتحقق عبر
canLaunchقبل فتح رابط المتجر، ويعرض رسالة إذا كان الرابط معطّلًا. - زر المشاركة يكوّن رسالة عربية باسم المتجر وقيمة الخصم ورابط تحميل التطبيق.
الشاشات
ملاحظات هندسية
- 01
بحث بالبادئة على Firestore
لا يدعم Firestore استعلام
LIKE، فيعتمد البحث على استعلام نطاق من النص المكتوب حتى النص مضافًا إليه آخر حرف عربيي، فيطابق كل اسم متجر عربي يبدأ بما كُتب. - 02
عدّ الاستخدام الحقيقي
يكتب إجراء النسخ عدّاد النقرات أولًا ثم ينسخ الكود داخل
whenComplete، فيعكس العدّاد نقرات حقيقية. - 03
محتوى بلا إصدارات جديدة
المتاجر والكوبونات والعروض والمقالات محفوظة في Firestore وتُعدَّل من تطبيق الإدارة، فتظهر الصفقات الجديدة دون تحديث من المتجر.
- 04
تعريف لمرة واحدة
تقرأ
main()علَمinitScreenقبلrunAppوتختار المسار الأول: شاشات التعريف أو شاشة البداية. - 05
حفظ اختيار الثيم
يحفظ
ThemePreferenceاختيار الوضع الداكن، ويُبلغThemeProviderتطبيقGetMaterialAppلإعادة البناء بالـThemeDataالمناسب.
النتائج
- نُشر على Google Play باسم الحزمة
com.wafer.qrushatak، وصفحته لم تعد متاحة، لذلك لا تُذكر أرقام تثبيت. - مع Flutter 2.10.5 يعطي
flutter analyzeصفر أخطاء وصفر تحذيرات على كود 2021. - الكود المصدري الكامل لتطبيق المستخدم موجود في المستودع.
التقنيات
- Flutter
- Dart
- Cloud Firestore
- Firebase Storage
- FCM
- Provider
- GetX navigation
- flutter_typeahead
- SharedPreferences
- url_launcher
- Google Fonts
- Arabic RTL