تطبيق دردشة جماعية باستخدام Flutter و Firebase
يحتوي على مكالمات فيديو، إشعارات، إدارة المجموعات، مؤشرات الكتابة والقراءة، أمان متقدم، تسجيل دخول، إنشاء حساب، وغيرها.
الوظائف الرئيسية:
الدردشة الجماعية (إرسال واستلام رسائل).
مكالمات فيديو باستخدام Agora.
إشعارات عند إرسال رسالة أو دخول المستخدم مكالمة.
إنشاء حساب وتسجيل دخول عبر البريد الإلكتروني.
دعم لإشعارات FCM عند إغلاق أو فتح التطبيق.
مؤشرات الكتابة، الرسائل المقروءة والمستلمة.
قواعد أمان مخصصة في Firestore (مثلاً: فقط الأدمن يمكنه إضافة أعضاء للمجموعة).
استخدام Mutex لتوليد معرفات رقمية فريدة (Agora UID).
وظائف backend باستخدام Firebase Cloud Functions.
تشغيل وظائف تلقائية عند تغيير البيانات في Firestore (مثل إرسال إشعارات تلقائيًا).
قواعد وفهارس مؤشرة في Firestore لتحسين الأداء.
المنصات المدعومة:
الميزة AndroidiOSWeb
الدردشة والإشعارات نعم نعم نعم
مكالمات الفيديو نعم نعم لا
التقنيات واللغات المستخدمة: اللغات:
اللغة الاستخدام
Dart تطوير واجهة التطبيق باستخدام Flutter
TypeScript تطوير وظائف Firebase Cloud Functions
C++ ضمن مكتبات Agora
Swift دعم iOS
CMake إعدادات البناء للمكتبات المدمجة
Ruby لأدوات إضافية أو سكربتات
أخرى (Other) ملفات أو لغات مساعدة أخرى
المكتبات والخدمات:
Flutter: واجهة المستخدم لتطبيق الهاتف.
Firebase:
Firestore (قاعدة بيانات NoSQL).
Firebase Authentication (لإنشاء الحسابات).
Firebase Cloud Messaging (لإرسال الإشعارات).
Firebase Hosting (لنشر الواجهة إن لزم).
Firebase Functions (لوظائف Backend).
Agora SDK:
agora_rtc_engine: مكتبة مكالمات الفيديو.
agora_uikit: لعرض واجهة المكالمات.
خطوات التشغيل (Setup):
الخطوة 1: ربط التطبيق بـ Firebase
إعداد Firebase project.
تفعيل تسجيل الدخول بالبريد.
إنشاء قاعدة بيانات Firestore.
ربط التطبيق بـ Firebase باستخدام flutterfire_cli.
الخطوة 2: إعداد الإشعارات (اختياري)
تفعيل FCM في Firebase.
تعيين vapidKey للويب.
ضبط ملف notifications_service.dart.
الخطوة 3: إعداد مكالمات الفيديو (اختياري)
إنشاء حساب على Agora.
إعداد App ID و App Certificate.
تعيين القيم في:
functions/environment.ts
flutter_app/lib/environment.dart