تطبيق Instagram Clone مبني بالكامل باستخدام Flutter (Dart) مع تكامل حقيقي مع خدمات سحابية مثل Firebase و Cloudinary. التطبيق يقدّم تجربة شبه مطابقة للتجربة المعروفة: بوستات متعددة الوسائط، ستوريز مؤقتة، تعليقات ولايكات لحظية، بروفايلات ديناميكية، ودعم لتحديثات فورية عبر الـ Streams. صُمِّم ليعمل على Android و iOS من قاعدة كود واحدة، مع إمكانية التوسّع ليشمل Flutter Web مستقبلاً.
لماذا هذا المشروع مميز؟
واجهة وتجربة قريبة من تطبيق إنستغرام الحقيقي.
أداء سلس حتى مع وسائط متعددة (صور/فيديو).
رفع وإدارة وسائط عبر Cloudinary مع روابط مُحسّنة.
تزامن مباشر (Real-time) مع Firebase Firestore لعدد اللايكات والتعليقات والتحديثات.
بنية قابلة للتوسعة لمزايا متقدمة مثل الدردشة، الإشعارات، والتحليلات.
المنصات المدعومة
Android
iOS
⏳ Flutter Web (جاهز للتمكين مع بعض التعديلات)
التقنيات المستخدمة
Frontend / UI: Flutter, Dart, Material Design, Widgets مخصّصة, Responsive Layouts.
State Management: Provider (مطبّق)، Riverpod / Bloc (قابل للإضافة حسب الحاجة).
Backend & Data: Firebase Authentication, Cloud Firestore, Firebase Cloud Messaging (تهيئة/قابل للتفعيل)، Firebase Security Rules.
الوسائط: Cloudinary (رفع صور/فيديو، تحويلات، روابط CDN سريعة).
ميزات إضافية: Google Maps & Geolocation دعم اختياري، Lazy Loading, Cached Network Images، رفع متعدد الملفات.
إدارة الكود: Git & GitHub (Branches، Pull Requests، CI قابلة للإعداد).
بنية الحساب (Onboarding Flow)
تسجيل بالبريد وكلمة المرور (Minimal Signup).
إكمال الملف الشخصي لاحقاً: اسم، بايو، صورة بروفايل (يتم رفعها إلى Cloudinary وتحديثها لحظياً داخل التطبيق).
تسجيل دخول تلقائي بعد الإنشاء وحفظ الحالة باستخدام Firebase Auth.
واجهة الملف الشخصي (Profile)
صورة بروفايل دائرية مع تحديث مباشر بعد التعديل.
اسم، اسم مستخدم (Username)، بايو.
عدّادات حقيقية: عدد البوستات، المتابعون، تتابِع.
شبكة (Grid) بوستات المستخدم.
الضغط على بوست يفتح صفحة Post Detail كاملة.
زر تعديل الملف الشخصي لتحديث البيانات والصورة.
صفحة الـ Home (الخلاصة الرئيسية)
عرض بوستات المستخدم + بوستات الحسابات التي يتابعها.
ستوري بار أفقي في الأعلى (مع تمييز حلقي ملوّن للحسابات التي لديها ستوري جديدة < 24 ساعة).
دعم بوستات صور أو فيديو (Video Player integration).
عرض سريع للاسم، الصورة، اللايكات، التعليقات، الكابشن.
الضغط على التعليقات يفتح صفحة Comments كاملة مع إمكانية الرد.
رفع البوستات (Add Post)
اختيار صورة/فيديو من المعرض.
رفع إلى Cloudinary (مع انتظار وتحميل مؤشّر تقدّم / Snackbar أو Dialog تأكيد).
حفظ بيانات البوست في Firestore (رابط الوسائط، صاحب البوست، كابشن، توقيت، نوع الوسيط).
دعم بوست متعدد الصور (Carousel / PageView) — إذا مفعل.
اللايكات (Likes)
ضغط مزدوج أو أيقونة قلب.
حفظ حالة اللايك لكل مستخدم في Firestore (collection/subcollection).
عدّاد يتم تحديثه لحظياً في الـ Home والـ Profile بدون إعادة تحميل (Streams).
التعليقات والردود (Comments & Replies)
نموذج إضافة تعليق فوري (إرسال يحفظ مباشرة في Firestore).
عرض جميع التعليقات أسفل البوست مع زر "عرض كل التعليقات".
صفحة CommentsPage كاملة: تعليقات مرتّبة، اسم المستخدم + نص، وقت الإرسال.
نظام Reply (Threaded): الرد على تعليق معيّن يظهر متداخل.
إمكانية حذف التعليق (لصاحب التعليق أو صاحب البوست حسب الصلاحيات).
عدّادات تعليقات متزامنة مع الواجهة.
الستوريز (Stories)
رفع صور أو فيديوهات قصيرة (بدون نصوص — حسب متطلبات المشروع الحالي).
رفع الوسائط إلى Cloudinary مع حفظ وقت النشر في Firestore.
ظهور حلقة ملوّنة حول صورة البروفايل إذا كان هناك ستوري نشطة خلال آخر 24 ساعة.
مشغل ستوري كامل: تقدم تلقائي، ضغط للتقديم للستوري التالية، ضغط مطوّل للإيقاف المؤقت، رجوع تلقائي للـ Home عند الانتهاء.
دعم عرض ستوري المستخدم + حسابات المتابعين.
صفحة Post Detail (عرض بوست منفرد)
عرض صور متعددة (Swipe يمين/يسار) أو فيديو.
إظهار اسم صاحب البوست، صورة بروفايله، الكابشن، عدد اللايكات، التعليقات.
أزرار تفاعل (Like, Comment, Share Placeholder).
Explore / Discover
شبكة (Staggered / Grid) لعرض بوستات عامة أو شائعة.
دعم تحميل تدريجي (Lazy Loading / Pagination) حسب التهيئة.
إمكانية بحث عن مستخدمين أو هاشتاقات (قابل للإضافة).
الدردشة (Direct Messages) – اختيارية
إذا كان لديك نسخة أولية مفعّلة، استخدم الوصف التالي؛ وإلا احذف هذا القسم.
محادثات ثنائية مبنية على Firestore Collections.
رسائل نصيّة فورية مع طوابع زمنية.
إشعار بعدد الرسائل غير المقروءة (قابل للدمج مع FCM).
الإشعارات (Notifications)
بنية جاهزة لدمج Firebase Cloud Messaging.
أحداث محتملة: لايك جديد، تعليق، متابع جديد، رسالة.
يمكن تخصيص سياسات التنبيه لكل مستخدم.
دعم اللغات (Localization)
بنية مدمجة عبر easy_localization (تم تعطيل/تقليل استخدامها في بعض الشاشات بناءً على متطلبات لاحقة).
قابلية إضافة لغات (عربي/إنجليزي) بسهولة.
الأداء والتحسينات
استخدام StreamBuilder لتحديث حي لعدد اللايكات والتعليقات.
تحميل متدرّج (Pagination) لتقليل استهلاك البيانات.
استخدام CachedNetworkImage للحد من إعادة التحميل.
ضغط / تحويل الوسائط عبر Cloudinary لتحسين السرعة.
الأمان
قواعد Firebase Security Rules للحد من الوصول غير المصرّح.
صلاحيات: صاحب الحساب يمكنه تعديل/حذف محتواه.
التحقق من UID قبل التعديل أو الحذف.
قابلية التوسع (Scalability)
فصل واضح بين طبقة البيانات (Repositories) وطبقة العرض (Widgets/Providers).
دعم أسهل لاستبدال Firestore بواجهة REST أو Backend مخصص مستقبلاً.
بنية تسمح بإضافة Analytics، Monetization (إعلانات / اشتراكات)، وميزات مجتمع.