**تطبيق MediSim**
**عـن الـتـطـبـيـق**
تطبيق MediSim هو تطبيق صحي يهدف إلى مساعدة المرضى في التنبؤ باحتمالية الإصابة بأمراض مختلفة وإدارة صحتهم بشكل أكثر فعالية.
**المـمـيـزات**
- **التنبؤ بالأمراض**: يتيح التنبؤ باحتمالية الإصابة بأمراض متعددة بناءً على أعراض المريض.
- **التنبؤ بأمراض الجلد**: يعتمد على تقنيات الذكاء الاصطناعي لتشخيص الأمراض الجلدية من الصور.
- **إدارة الأمراض المزمنة**: يقدم نصائح ويحتفظ ببيانات لمراقبة الحالات المزمنة.
- **معلومات الأدوية**: يوفر قاعدة بيانات قابلة للبحث تحتوي على معلومات تفصيلية عن الأدوية، بما في ذلك الاستخدامات، الموانع، الاحتياطات، الجرعات، وطرق الاستخدام.
- **الحسابات الطبية**: يشمل حسابات مثل مؤشر كتلة الجسم (BMI)، نسبة الدهون في الجسم (BFP)، واحتياجات السعرات اليومية.
- **الدردشة الذكية (AI Chat)**: يوفر إجابات فورية على الأسئلة المتعلقة بالصحة.
- **دعم متعدد اللغات**: متوفر باللغتين العربية والإنجليزية.
- **الوضع الداكن والفاتح**: يوفر واجهة مستخدم سهلة الاستخدام تدعم الوضعين الداكن والفاتح.
**الـتـقـنـيـة**
- **الهيكل المعماري (Architecture)**: يعتمد التطبيق على هيكل **MVVM** (النموذج - العرض - نموذج العرض) لضمان فصل واضح للمهام وسهولة الاختبار والتطوير.
- **الهيكلية النظيفة (Clean Architecture)**: يتم تنظيم التطبيق وفقًا لمبادئ الهيكلية النظيفة، مما يفصل بين طبقات التطبيق (العرض، المجال، البيانات) لتحقيق القابلية للتوسع والصيانة.
- **واجهة المستخدم (UI)**: تم بناء الواجهة باستخدام **Jetpack Compose**، وهي أداة حديثة تسهل تطوير واجهات المستخدم بشكل تصريحي.
- **التنقل (Navigation)**: يتم استخدام مكون التنقل لإدارة التنقل بين الشاشات بشكل سلس ومتسق.
- **مكونات الواجهة (UI Components)**: يحتوي التطبيق على تخطيط بعلامات تبويب (Tab Layout) لتنظيم المحتوى وتحسين التنقل بين الأقسام المختلفة.
- **التواصل مع الشبكة (Network Communication)**: يعتمد التطبيق على مكتبة **Retrofit** لمعالجة طلبات الشبكة وجلب البيانات من الخوادم البعيدة بسهولة وكفاءة.
- **إدارة العمليات المتزامنة (Concurrency)**: تُستخدم مكتبة **Coroutines** لتسهيل إدارة العمليات غير المتزامنة وضمان تشغيل سلس دون التأثير على أداء التطبيق.
- **حقن التبعيات (Dependency Injection)**: يعتمد التطبيق على مكتبة **Hilt** لإدارة التبعيات بسهولة، مما يحسن اختبار الكود وصيانته.
- **معالجة الأخطاء (Error Handling)**: يتم التعامل مع أخطاء الشبكة بعناية من خلال فحص استجابات **Retrofit** وعرض رسائل موجهة للمستخدم، بالإضافة إلى التعامل مع الاستثناءات غير المتوقعة لمنع الأعطال وتحسين استقرار التطبيق.
- **تحميل الصور (Image Loading)**: يتم تحميل الصور بكفاءة باستخدام مكتبة **Coil**، التي تدير التخزين المؤقت وتحميل الصور بسهولة.
- **الرسوم المتحركة (Animations)**: تم دمج رسوم متحركة من **Lottie** لتوفير تجربة تفاعلية وجذابة للمستخدم.