دراسة حالة
Poole: تطبيق حجز فان مشترك مع تتبّع لحظي (الإمارات)
حجز مقاعد في فان مشترك مع تتبّع لحظي (الإمارات)
الدور
مهندس iOS / جوال — تطبيقا الراكب والسائق
الجدول الزمني
من الصفر حتى الدعم الإنتاجي والإصلاحات السريعة
المنصة
iOS و Android · تطبيق راكب + تطبيق سائق
الإطار
SwiftUI (iOS) + Firebase
التصنيف
iOS



تطبيق الراكب — تتبع Google Maps حي، خط زمني للتوقفات، بطاقة السائق/المركبة، والتحقق بـ QR.
نظرة عامة
Poole منصة حجز فان مشترك لسوق الإمارات: فان واحد بمقاعد متعددة على مسار ثابت، والركاب يحجزون مقاعد وليس المركبة كاملة — أقرب لخط نقل مشترك من رحلة خاصة.
النظام تطبيقان متصلان: تطبيق راكب لحجز المقاعد وتتبع الفان، وتطبيق سائق لإدارة المسار والركاب وبث الموقع، مع Firebase كطبقة الوقت الحقيقي.
المشكلة
تطبيقات التاكسي الخاصة تربط راكبًا بسائق واحد فتصبح مكلفة على ممرات الإمارات المتكررة. Poole يستهدف الفانات المشتركة بحجز على مستوى المقعد ومسارات متعددة التوقفات ورؤية حية للجميع.
- الركاب على مسارات ثابتة يحتاجون بديلًا مشتركًا أرخص من الرحلة الفردية
- مشغّلو الفانات يحتاجون ملء مقاعد متعددة لكل رحلة
- الراكب والسائق يحتاجان رؤية حية لموقع الفان والمقاعد المتبقية
- النظام يجب أن يدير ركابًا بنقاط صعود/نزول مختلفة على نفس المسار
لماذا معماريّة تطبيقَين؟
سير عمل مختلف جذريًا
الراكب يتصفّح ويحجز ويتابع؛ السائق يدير طابورًا حيًا للصعود/النزول ويبث الموقع — أنماط تفاعل مختلفة تمامًا.
تجربة أبسط وأكثر تركيزًا
كل تطبيق يبقى رفيعًا ومخصّصًا بدل إخفاء ميزات السائق/الراكب خلف تبديل أدوار.
نموذج صلاحيات أنظف
تطبيق السائق يحتاج موقعًا خلفيًا مستمرًا؛ تطبيق الراكب لا. الفصل يحافظ على الصلاحيات واستهلاك البطارية المناسب لكل دور.
دورات إصدار مستقلة
إصلاحات منطق المسار لدى السائق يمكن إطلاقها دون فرض تحديث على كل أجهزة الركاب والعكس.
العمارة والمكدس التقني
تطبيق السائق يكتب إحداثيات GPS إلى عقدة Firebase بفاصل قصير. تطبيقات الركاب المشتركة على الرحلة تستمع لتغيّر الموقع والمقاعد/الحالة وتحدّث العلامة على الخريطة مع استيفاء بينهما لحركة سلسة بدل القفز.
| الفئة | الأدوات / التقنيات |
|---|---|
| تطبيق الراكب (iOS) | SwiftUI / Swift |
| تطبيق السائق (iOS) | SwiftUI / Swift |
| تطبيقات Android | راكب + سائق على نفس عقود Firebase اللحظية مثل iOS |
| طبقة الوقت الحقيقي | Firebase Realtime Database — موقع الفان، المقاعد، حالة الرحلة |
| المصادقة | Firebase Auth مع OTP هاتف (نمط تسجيل الإمارات) |
| الخرائط والمسارات | Google Maps SDK — رسم المسار، موقع الفان، ETA |
| الإشعارات | Firebase Cloud Messaging — تأكيد الحجز واقتراب الفان وتحديثات الرحلة |
| الخلفية / API | خلفية مركّزة على Firebase مع Cloud Functions عند الحاجة |
| المدفوعات | تدفقات حجز رحلات مع معالجة دفع قابلة للضبط لمسارات الإمارات |
| النشر / CI/CD | إصدارات متاجر إنتاجية مع دعم إصلاحات سريعة |
الميزات الرئيسية
حجز مقاعد حسب المسار (تطبيق الراكب)
يختار الراكب مسارًا ونقطتي الصعود والنزول الأقرب ثم يحجز مقعدًا أو أكثر — وليس مركبة خاصة كاملة.
تتبع الفان لحظيًا
عند بدء الرحلة يرى الراكب موقع الفان الحي مع وقت وصول تقديري لنقطة صعوده عبر مزامنة Firebase.
توفر المقاعد لحظيًا
عند حجز أو إلغاء مقاعد من ركاب آخرين يتحديث التوفر فورًا على كل الأجهزة المتصلة دون تحديث يدوي.
إدارة المسار والركاب (تطبيق السائق)
يرى السائق قائمة مرتبة للصعود والنزول، يحدد الركاب كمُصعَدين أو مُنزَلين، ويحدّث حالة الرحلة للجميع تلقائيًا.
إشعارات الرحلة
إشعارات لتأكيد الحجز واقتراب الفان وتذكيرات الصعود وإتمام الرحلة.
التحديات الهندسية والحلول
التحدي
تحديث موقع سلس وموفّر للبطارية
الحل
كُبحت كتابات موقع السائق إلى ثوانٍ قليلة بدل البث المستمر، مع استيفاء على خرائط الركاب ليبدو الفان سلسًا مع حجم كتابة وبطارية أقل على ورديات كاملة.
التحدي
ركاب متعددون، فان واحد، توقفات مختلفة
الحل
نموذج رحلة يحمل قائمة مرتبة للتوقفات بدل رحلة نقطة لنقطة. إجراءات السائق تحدّث عقدة الرحلة المشتركة ليرى كل راكب الحالة الصحيحة التالية.
التحدي
اتساق المقاعد مع حجوزات متزامنة
الحل
تغيّر المقاعد عبر تحديثات Firebase معاملية (وفحوصات خادم عند الحاجة) حتى لا يدّعي جهازان المقعد الأخير معًا.
النتائج
- تطبيقا راكب وسائق كنظام مزدوج على موقع المنتج: mypoole.com
- Firebase Realtime Database يشغّل موقع الفان والمقاعد وحالة الرحلة عبر التطبيقات
- استمرار الدعم الإنتاجي بعد الإطلاق مع إصلاحات سريعة
- موثّق كدراسة حالة تنقّل إماراتية مع ملخص مدونة يركّز على SwiftUI
ما سأفعله بشكل مختلف
- Realtime Database كان مناسبًا لبث الموقع؛ للتحليلات التاريخية سأضيف Firestore أو مستودع بيانات بدل إثقال عقد الرحلة الحية.
- سأُرسمي قواعد معاملات المقاعد أبكر — الحجز الزائد أسوأ فئة أخطاء تُدمّر الثقة في منتج المقاعد المشتركة.
- سأبقي الراكب والسائق منفصلين في هذه المرحلة؛ الدمج لاحقًا فقط إن تقاربت أدوات التشغيل وأدوات الراكب فعلًا.
هل تبني سوقًا فوريًا أو تطبيق توصيل أو حجز؟
راسلنا على واتساب +974 55179747 أو احجز استشارة مجانية — جهّز المنصات والأدوار والميزات الضرورية للإطلاق.
تفضل اختصارًا سريعًا؟ ابدأ من صفحة الإعلانات أو عد إلى معرض الأعمال.