Architecture patterns in Android part 1 - معماريه كتابه الكود في الاندرويد جزء 1
من الاخطاء الشائعه البدء بمشروع ولم تختار اي معماريه مناسبه للعمل عليها
لماذا نحتاج الى معمارية ؟
الجواب بسيط حيث كل شي يحتاج الى الترتيب بصوره جديدة وكذلك تطبيقات الاندرويد تحتاج الى ترتيب بصوره معينه
اذا تريد كود بجودة عاليه لابد من استخدام معماريه
ماذا يحصل التطيبق الخاص بك من المعمارية ؟
-البساطة : تقسم و تحديد عمل كل مكون من المكونات وعدم التوجه الى المهام المتعددة للمكون , ليكون سهل الفهم والتتبع اذا حدثت مشكله ما
-قابليه الاختبار : امكانيه استخدام unit test
-صيانه منخفضه الكلفة : سهوله الاضافه والحذف من التطبيق
قد تظهر عدة أسئلة قادمة في رأسك.
- ما هو أفضل نمط الهندسة المعمارية تطبيقات الاندرويد؟
- وكيف يمكنني تطبيق هذا النمط بأكثر الطرق فعالية؟
لا يوجد مرشح واحد الذي يناسب جميع مشاريع الاندرويد الخاص بك لأن نمط التصميم هو مجردة وتنفيذها يعتمد على متطلبات محددة.
هناك بعض الانماط التي تستخدم لتطبيقات الاندرويد منها:
هذا النمط هو الاكثر انتشارا لتطبيقات الاندرويد وحتى كوكل تستخدمه في تطبيقاتها
وهو عبارة عن مجموعه من الارشادات تفصل الكود لكي يمكن ان يكون reuseable , testable
1 - model : هو المسؤول عن التعامل مع البيانات في التطبيق
2 - view : هو المسؤول عن وضع البيانات داخل الشاشة والتعامل مع المخرجات
3 - presenter : هو يعتبر جسر بين modul و view ويعمل ايضا كمرشد لل view
هنا بعض القواعد الاساسيه :
لماذا نحتاج الى معمارية ؟
الجواب بسيط حيث كل شي يحتاج الى الترتيب بصوره جديدة وكذلك تطبيقات الاندرويد تحتاج الى ترتيب بصوره معينه
اذا تريد كود بجودة عاليه لابد من استخدام معماريه
ماذا يحصل التطيبق الخاص بك من المعمارية ؟
-البساطة : تقسم و تحديد عمل كل مكون من المكونات وعدم التوجه الى المهام المتعددة للمكون , ليكون سهل الفهم والتتبع اذا حدثت مشكله ما
-قابليه الاختبار : امكانيه استخدام 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

هنا بعض القواعد الاساسيه :
- المسؤولية الوحيدة في الview هي رسم ui وفقا لتعليمات الpresenter
- view يرسل كل تفاعلات المستخدم الى presenter
- view ليس له اي ارتباط مع model
- presenter هو المسؤول عن ارسال متطلبات view الى model
- model هو المسؤول عن جلب البيانات من السيرفر او قواعد البيانات او من فايلات النظام
لان بعض القواعد لتطبيق mvp على android
- activity , fragment , costemVeiw تمثل جرء view في التطبيق
- كل view يمتلك presenter بعلاقه واحد لواحد
- view تتواصل مع presenter بواسطة interface والعكس صحيح
- الmodel يتم تقسيمه الى : ApiHelper, PreferenceHelper, DatabaseHelper, and FileHelper وتكون dataManager
- يتم اتصال presenter مع dataManager بواسطه interface
- presenter ليش له اي وصول الى android api
الان دعونا نرسم المخطط لهذه المعمارية
اضافه المعماريه بصوره صحيحة يسهل العمل وعدم التعديل عليها في المستقبل
قد تشعر المحتويات التالية ساحقة في البداية ولكن عندما تذهب من خلال مثال في الجزء التالي من هذه المقالة، سوف تصبح المفاهيم واضحة بالنسبة لك.
والان لنفهم كل جرء من الرسم اعلاه :
قد تشعر المحتويات التالية ساحقة في البداية ولكن عندما تذهب من خلال مثال في الجزء التالي من هذه المقالة، سوف تصبح المفاهيم واضحة بالنسبة لك.
والان لنفهم كل جرء من الرسم اعلاه :
- View : وهو الجرء من التطبيق الذي يكون الui ويتلقي التفاعلات من المستخدم
- MvpView : هو interface يضمن داخل view يحتوي على الدوال التي يكون معرضه من presetner للاتصال مع view
- presenter : هو جزء اتخاذ القرار يكون نفس view ولكن لايحتوي على android api كوتلن فقط وهي تستلم من view وتتخذ القرار وترجعه لها وكما انها ايضا تتصل ب dataManager
- MvpPresetner : هو interface يضمن داخل presenter يحتوي على دوال التي تكون معرضه من view للاتصال بها
- AppDbHelper : يتم ادرة قواعد البيانات و جميع الامور المتعلقة بها في هذا الجزء
- AppPreferenceHelper : يعمل على قراءة وكتابه البايانات في shared preferences
- AppApiHelper : يعمل في الشبكة ومعالجة البيانات
التكمله في المقاله التالية
تعليقات
إرسال تعليق