عن المشروع
نظرة عامة
Rybbit Mobile هو تطبيق Flutter يُدار من قبل المجتمع ويتصل بخادم تحليلات Rybbit. يقدّم تجربة محلية على الهواتف لعرض بيانات تحليلات الويب مع التركيز على الخصوصية وتطوير المصدر المفتوح.
لقطات الشاشة
يتضمن التطبيق شاشات لملخص لوحة التحكم، مخططات التحليلات، قوائم الجلسات، إعدادات الموقع والمزيد. تُظهر لقطات إضافية خريطة الدول، قوائم الصفحات، وعرض تفصيلي للجلسات.
الميزات
- لوحة تحكم مع عدّاد زوار لحظي، تصفية حسب المؤسسة، ومحدد نطاق الوقت.
- مخططات زمنية للمستخدمين، الجلسات، المشاهدات، معدل الارتداد، المدة وغيرها.
- مقاييس مفصلة: أعلى الصفحات، المراجع، الدول (مع الأعلام)، الأجهزة، المتصفحات، نظام التشغيل.
- مراقبة Core Web Vitals (LCP، CLS، FCP، TTFB، INP) مع تقييمات ملونة ومخططات اتجاه.
- نظرة عامة على الأحداث المخصصة، تقسيم الخصائص وتتبع الروابط الخارجية.
- إنشاء أهداف (قائمة على المسار أو الحدث) وتصور القمع مع معدلات التحويل.
- قائمة جلسات مع علم الدولة ومعلومات المتصفح والصفحة الأولية؛ تفاصيل الجلسة تُظهر جدول زمني كامل للأحداث وإعادة تشغيل.
- تتبع أخطاء JavaScript مع عدد مرات الظهور والجلسات المتأثرة.
- إعدادات الموقع (تبديل التتبع، استثناء عناوين IP/الدول) وإدارة أعضاء المؤسسة.
- إعدادات السمة الداكنة/الفاتحة/التلقائية، اختيار اللغة (11 لغة)، عنوان خادم URL وطريقة المصادقة.
اللغات المدعومة
English (en), Japanese (ja), Czech (cs), Korean (ko), German (de), Polish (pl), Spanish (es), Portuguese (pt), French (fr), Chinese (zh), Italian (it).
البدء
المتطلبات المسبقة
- Flutter SDK 3.38+.
- Android SDK (API 21+) أو Xcode لـ iOS (12+).
- الوصول إلى نسخة Rybbit تعمل.
الإعداد
1. استنساخ المستودع.
2. تشغيل `flutter pub get` لتثبيت الاعتمادات.
3. توليد الكود باستخدام `flutter pub run build_runner build --delete-conflicting-outputs`.
4. توليد ملفات الترجمة عبر `flutter gen-l10n`.
5. نسخ `.env.example` إلى `.env` وتعبئة المتغيّرات المطلوبة.
6. تشغيل التطبيق بـ `flutter run --dart-define-from-file=.env` أو بناء ملف APK/IPA بالمثل.
المصادقة
يدعم طريقتين: تسجيل الدخول بالبريد الإلكتروني + كلمة المرور، ومصادقة باستخدام مفتاح API. أدخل عنوان خادم Rybbit وبيانات الاعتماد في شاشة الدخول.
التقنية المستخدمة
- الإطار: Flutter 3.38+ / Dart 3.10+
- إدارة الحالة: Riverpod
- التوجيه: go_router
- عميل HTTP: Dio مع معالجة الكوكيز
- التخزين المحلي: Hive و Flutter Secure Storage
- المخططات: fl_chart
- التسلسل: Freezed + json_serializable
- الترجمة: Flutter gen-l10n (ملفات ARB)
- تتبع الأخطاء الاختياري: Sentry (مُكوّن عبر `SENTRY_DSN`)
الهيكلية
يتبع المشروع تخطيطًا معياريًا يركز على المميزات:
lib/
core/ // الإعدادات، الشبكة، التوجيه، السمة، التخزين، Sentry
features/ // كل ميزة تحليلات (لوحة التحكم، الجلسات، الأداء، إلخ)
l10n/ // ملفات ترجمة ARB
shared/ // نماذج مشتركة، أدوات، ودجات قابلة لإعادة الاستخدام
كل ميزة مُنظمة إلى طبقات البيانات (API)، التطبيق (الحالة) والعرض (واجهة المستخدم).
أوامر التطوير
- تصحيح: `flutter run --dart-define-from-file=.env`
- بناء APK: `flutter build apk --debug|--release --dart-define-from-file=.env`
- توليد الكود: `flutter pub run build_runner build --delete-conflicting-outputs`
- تجديد الترجمات: `flutter gen-l10n`
- التحليل: `flutter analyze`
- الاختبار: `flutter test`
إضافة لغة جديدة
أنشئ ملف ARB جديد بناءً على `app_en.arb`، ترجم جميع المفاتيح، أضف رمز اللغة إلى قائمة اللغات المدعومة في نقطة دخول التطبيق، ثم شغّل `flutter gen-l10n`.
التوافق
- Android: API 21 (Lollipop) وما فوق.
- iOS: الإصدار 12.0 وما فوق.
- الخادم: متوافق مع Rybbit v1.0 أو أحدث.
المساهمة
المساهمات مرحب بها. قم بعمل Fork للمستودع، أنشئ فرع ميزة، أجرِ الالتزام، ادفعه، وافتح طلب سحب. اتبع نمط الشيفرة الحالي وشغّل الاختبارات قبل الإرسال.
الرخصة
هذا مشروع غير رسمي من المجتمع. منصة Rybbit الأساسية تُطوّر بواسطة منظمة rybbit‑io. التطبيق مُصدر تحت نفس رخصة المستودع (انظر ملف LICENSE).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.