نظرة عامة
MoFit تطبيق لياقة مبني بـ Flutter بشكل فردي، يركّز على فكرة واحدة: تتبع الصحة اليومي لا يجب أن يبدو كواجب مدرسي. يتعامل مع تتبع السعرات الحرارية، والأهداف الشخصية، وتسجيل الوجبات، والتقدم — مُتزامن بأمان وفي الوقت الفعلي عبر Firebase.
المشكلة التجارية
معظم تطبيقات اللياقة الاستهلاكية تتنافس على الاتساع — عشرات المزايا، وخلاصات اجتماعية، وطبقات تحفيز لعبية — ما يضيف احتكاكاً لمن يريد فقط معرفة أمرين: ماذا أكلت اليوم، وهل أنا على المسار الصحيح. بُني MoFit للإجابة على هذا السؤال بأقل عدد ممكن من النقرات.
المشكلة التقنية
احتاج التطبيق إلى مزامنة موثوقة وفورية عبر الجلسات والأجهزة دون أن يديرها المستخدم بنفسه، وعزل بيانات آمن لكل مستخدم (لا أحد يرى سجل طعام أحد آخر)، وتدفق تسجيل طعام سريع بما يكفي ليستمر الناس في استخدامه فعلياً — أكبر سبب فشل لتطبيقات تتبع العادات هو التخلي الناتج عن الاحتكاك، لا نقص المزايا.
الحل
تطبيق Flutter مركّز مبني حول عرض يومي واحد: السعرات المستهلكة مقابل الهدف، والبروتين، والخطوات، مع بحث وتسجيل طعام سريع تحته. يتولى Firebase Authentication الهوية، ويوفر Cloud Firestore مزامنة فورية لكل مستخدم، بحيث ينعكس إدخال سُجّل على جهاز واحد على كل الأجهزة فوراً.
البنية المعمارية
- العميل — Flutter/Dart، قاعدة كود واحدة تستهدف الموبايل.
- المصادقة — Firebase Authentication لإنشاء الحساب وإدارة الجلسة.
- البيانات — Cloud Firestore كمخزن بيانات فوري لكل مستخدم للوجبات والأهداف وسجل التقدم، مع قواعد أمان تحصر كل قراءة/كتابة على مستندات المستخدم المصادق عليه نفسه.
- الحالة — حالة التطبيق المحلية تعكس Firestore في الوقت الفعلي، بحيث تتحدث الواجهة فور كتابة إدخال السجل، دون تحديث يدوي.
التقنيات المستخدمة
- Flutter
- Dart
- Firebase Authentication
- Cloud Firestore
المزايا
- أهداف سعرات شخصية وتتبع يومي
- تقدم الوزن وتخطيط الوجبات
- بحث وتسجيل طعام سريع
- مصادقة Firebase ومزامنة فورية عبر Cloud Firestore
تحديات هندسية
نموذج بيانات Firestore لكل مستخدم يجب أن يُقترن بقواعد أمان صارمة — وإلا فإن قاعدة بيانات العميل المحلية آمنة بقدر ما تحميها القواعد على الخادم فقط. تطلّب هيكلة المجموعات بحيث تتوسع سجلات الوجبات اليومية والأهداف وسجل التقدم بشكل نظيف لكل مستخدم، دون استعلامات مكلفة مع نمو السجل، عدة تكرارات لضبطها بشكل صحيح.
اعتبارات الأداء
تسجيل الطعام هو التفاعل الأعلى تكراراً في التطبيق، لذا تم تحسينه ليبدو فورياً: تذهب الكتابات إلى ذاكرة التخزين المؤقت المحلية لـ Firestore أولاً (واجهة متفائلة)، ثم تُزامَن مع الخادم، بدلاً من حجب الواجهة على رحلة شبكة.
اعتبارات أمنية
- قواعد أمان Firestore تحصر كل مستند بمستخدمه المصادق عليه المالك — لا قراءات عبر المستخدمين ممكنة حتى لو تم اختراق عميل.
- تتولى Firebase Authentication تخزين بيانات الاعتماد ورموز الجلسة، بحيث لا يخزّن التطبيق كلمات مرور خام أبداً.
دروس مستفادة
البناء الفردي يفرض تحديد الأولويات: أُطلق MoFit دون طبقة اجتماعية، ودون تحفيز لعبي، ودون عشرات المزايا التي يملكها المنافسون — واستمر قابلاً للاستخدام بسبب ذلك. الدرس القابل للتعميم بعيداً عن هذا التطبيق: مجموعة مزايا مركّزة سريعة وموثوقة تتفوق على مجموعة واسعة بطيئة الاستخدام يومياً.
تحسينات مستقبلية
- مسح الباركود لإدخال طعام أسرع
- تكامل اختياري مع الأجهزة القابلة للارتداء لبيانات الخطوات والنشاط
- رؤى اتجاه أسبوعية بدلاً من لقطات يومية فقط
مشاريع ذات صلة
مثل لوحة تحليلات الأعمال، بُني MoFit حول تحويل بيانات يومية خام إلى رؤية واحدة جاهزة للقرار بدلاً من جدار أرقام.
