Architecture patterns in Android part 1 - معماريه كتابه الكود في الاندرويد جزء 1

من الاخطاء الشائعه البدء بمشروع ولم تختار اي معماريه مناسبه للعمل عليها

لماذا نحتاج الى معمارية ؟

الجواب بسيط حيث كل شي يحتاج الى الترتيب بصوره جديدة وكذلك تطبيقات الاندرويد تحتاج الى ترتيب بصوره معينه

اذا تريد كود بجودة عاليه لابد من استخدام معماريه

ماذا يحصل التطيبق الخاص بك من المعمارية ؟

-البساطة : تقسم و تحديد عمل كل مكون من المكونات وعدم التوجه الى المهام المتعددة للمكون , ليكون سهل الفهم والتتبع اذا حدثت مشكله ما

-قابليه الاختبار : امكانيه استخدام unit test

-صيانه منخفضه الكلفة : سهوله الاضافه والحذف من التطبيق


قد تظهر عدة أسئلة قادمة في رأسك.

-  ما هو أفضل نمط الهندسة المعمارية تطبيقات الاندرويد؟
- وكيف يمكنني تطبيق هذا النمط بأكثر الطرق فعالية؟

لا يوجد مرشح واحد الذي يناسب جميع مشاريع الاندرويد الخاص بك لأن نمط التصميم هو مجردة وتنفيذها يعتمد على متطلبات محددة.

هناك بعض الانماط التي تستخدم لتطبيقات الاندرويد منها:
  • MVC ( Model — View — Controller)
  • MVP ( Model — View — Presenter)
  • MVVM (Model — View — ViewModel)
  • VP (View — Presenter)

 MVP in Android



هذا النمط هو الاكثر انتشارا لتطبيقات الاندرويد وحتى كوكل تستخدمه في تطبيقاتها
 وهو عبارة عن مجموعه من الارشادات تفصل الكود لكي يمكن ان يكون reuseable , testable

1 - model : هو المسؤول عن التعامل مع البيانات في التطبيق
2 - view : هو المسؤول عن وضع البيانات داخل الشاشة والتعامل مع المخرجات
3 - presenter : هو يعتبر جسر بين modul و view ويعمل ايضا كمرشد لل view






هنا بعض القواعد الاساسيه :
  1. المسؤولية الوحيدة في الview هي رسم ui وفقا لتعليمات الpresenter 
  2. view يرسل كل تفاعلات المستخدم الى presenter
  3. view ليس له اي ارتباط مع model
  4. presenter هو المسؤول عن ارسال متطلبات view الى model 
  5. model هو المسؤول عن جلب البيانات من السيرفر او قواعد البيانات او من فايلات النظام 
 
لان بعض القواعد لتطبيق mvp على android
  1. activity , fragment , costemVeiw تمثل جرء view في التطبيق
  2. كل view يمتلك presenter بعلاقه واحد لواحد 
  3. view تتواصل مع presenter بواسطة interface والعكس صحيح 
  4. الmodel يتم تقسيمه الى : ApiHelper, PreferenceHelper, DatabaseHelper, and FileHelper وتكون dataManager
  5. يتم اتصال presenter مع dataManager بواسطه interface
  6. presenter ليش له اي وصول الى android api
 
 
الان دعونا نرسم المخطط لهذه المعمارية 
 
 
اضافه المعماريه بصوره صحيحة يسهل العمل وعدم التعديل عليها في المستقبل

قد تشعر المحتويات التالية ساحقة في البداية ولكن عندما تذهب من خلال مثال في الجزء التالي من هذه المقالة، سوف تصبح المفاهيم واضحة بالنسبة لك.


والان لنفهم كل جرء من الرسم اعلاه :

  1. View : وهو الجرء من التطبيق الذي يكون الui ويتلقي التفاعلات من المستخدم 
  2. MvpView : هو interface يضمن داخل view يحتوي على الدوال التي يكون معرضه من presetner للاتصال مع view
  3. presenter : هو جزء اتخاذ القرار يكون نفس view ولكن لايحتوي على android api كوتلن فقط وهي تستلم من view وتتخذ القرار وترجعه لها وكما انها ايضا تتصل ب dataManager 
  4. MvpPresetner : هو interface يضمن داخل presenter يحتوي على دوال التي تكون معرضه من view للاتصال بها 
  5.  AppDbHelper : يتم ادرة قواعد البيانات و جميع الامور المتعلقة بها في هذا الجزء
  6. AppPreferenceHelper : يعمل على قراءة وكتابه البايانات في  shared preferences
  7. AppApiHelper : يعمل في الشبكة ومعالجة البيانات 
 
التكمله في المقاله التالية
 
 
 
 
 
 
 
 


تعليقات

المشاركات الشائعة من هذه المدونة

مقدمة عن Dagger 2

local function