المتطلبات (Dependencies and Software Design Patterns)

Mohammad Laifمنذ 5 سنوات

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

في هذا الدرس ستقرئ عن ماهي الاعتماديات الضروريه لهذه الدوره, وايضاً بعض من المصطلحات والـ Software Design Pattern التي سوف نستخدمها لتطبيق Android Architecture Components على اكمل وجه ان شاء الله.

 

تنقسم متطلبات هذه الدورة الى:
الاعتماديات
سوف نعتمد في هذه الدورة على الكثير من اعتماديات الـ Android Architecture Components وتستطيع تصفح جميعها من خلال هذا الرابط للحصول على احدث الاصدارات: JetPack components Dependencies.
وهذة هي الاعتماديات التي استخدمناها في شفرة مشروع هذه الدورة:

    // ROOM
    def room_version = "1.1.1"
    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version"
    // Test helpers for ROOM
    testImplementation "android.arch.persistence.room:testing:$room_version"

    // LiveData
    def live_data_version = "1.1.1"
    implementation "android.arch.lifecycle:livedata:$live_data_version"
    implementation "android.arch.lifecycle:extensions:$live_data_version"
    // Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:$live_data_version"

    // Paging
    def paging_version = "1.0.0"
    implementation "android.arch.paging:runtime:$paging_version"

 

الانماط
المعرفة البسيطة حول انماط البرمجة, لاننا في هذه الدورة سنستخدم العديد منها (Software Design Patterns) وانصحك بالقرائة عنها قبل البدء (لقد وضعت روابط لها حتى تسهل عليك الاطلاع). وايضاً سنستخدم بعض الاشياء الجديدة كـ:

  • الـ Entity (سوف نقوم بأستبدال Model بالتطبيق بهذا النمط, لمعرفة الفرق بين الـ Model والـ Entity انظر هذا السؤال).
  • نمط الـ DAO (اختصاراً لـ Data access object).
  • نمط الـ Singleton (سنستخدمة لإنشاء قاعدة البيانات و الـ Repository و الـ Executor (بديل للـ AsyncTask)).
  • نمط الـ Repository (سيكون مستودع البيانات لدينا).
  • نمط الـ Factory (سنستخدمة لعملية حقن يدوية للـ ViewModel بدلاً من مكتبة Dagger).
  • نمط الـ MVVM (النمط التي ستقوم عليه هذه الدورة).
  • نمط الـ Adapter (وايضاً PagedListAdapter).
  • نمط الـ Observer (نمط المراقب والذي سنكثر من استخدامه).
  • الـ Single source of truth (سنستخدم هذا المبدء مع قاعدة البيانات الـ Room).
  • نمط الـ Delegate (سنقوم بعمل العديد من الـ Delegation بين الـ Repository و ModelView).

 

كل هذا حتى نتوصل الى Architecture ممتاز لبناء تطبيقات الاندرويد حسب Best Practice لما هو متوفر حالياً (لإن الـ Android JetPack في تطور مستمر). وتستطيع قبل البدء في الدوره القرائة قليلاً عن هذه الانماط اذا احببت.

 

نهاية الدرس

فضلاً اذا اعجبك الدرس لاتنسى الضغظ على زر اعجبني ولنشر الفائدة قم بمشاركته مع من تحب. ولاتنسى تتبع الدرس حتى تطلع على التغييرات والتحديثات المتعلقه به مستقبلاً. وكذلك الامر بالنسبة للدورة من تتبع و اعجاب ومشاركة حتى يصلك جديد الدروس المتعلقه بها.

التعليقات (1)

هاكونا بطاطا:

شرح ممتاز ومعلومات مفيدة

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !