1. مبتدئ

    ما هو حقن التبعيات (Dependency Injection) وما الفوائد الأساسية لتطبيقه في أندرويد؟

    هو نمط تصميمي يقضي بتمرير التبعيات التي يحتاجها الكائن من الخارج بدلاً من قيام الكائن بإنشائها بنفسه داخل الـ Constructor.

    اقرأ الشرح الكامل
  2. مبتدئ

    ما هو Hilt وما المزايا التي يقدمها فوق مكتبة Dagger 2 لتطبيقات أندرويد؟

    Hilt هي مكتبة رسمية مبنية فوق Dagger لتبسيط استخدامها في أندرويد عبر توفير مكونات مسبقة التعريف (Standard Components) لدورة حياة الشاشات وإلغاء الحاجة لكتابة كود الـ Boilerplate المعقد يدويًا.

    اقرأ الشرح الكامل
  3. متوسط

    ما دور الوسوم الأساسية في Hilt: @HiltAndroidApp و @AndroidEntryPoint و @Inject؟

    @HiltAndroidApp ينشئ الحاوية الجذرية، و @AndroidEntryPoint يهيئ مكونات أندرويد لحقن التبعيات، و @Inject يطلب التبعية أو يعرف كيفية إنشائها.

    اقرأ الشرح الكامل
  4. متوسط

    ما الفرق بين @Provides و @Binds داخل كلاسات الـ Module في Hilt؟

    @Binds دالة مجردة (abstract) سريعة لربط الواجهة (Interface) بتطبيقها المباشر؛ بينما @Provides دالة عادية تستخدم عندما يتطلب بناء الكائن منطقًا أو عندما يكون الكائن من مكتبة خارجية.

    اقرأ الشرح الكامل
  5. متوسط

    كيف تعمل هرمية المكونات ونطاقات دورة الحياة (Scopes) في Hilt؟

    تربط النطاقات كائنات التبعيات بدورة حياة مكونات أندرويد المحددة: @Singleton للتطبيق بالكامل، @ActivityScoped للنشاط، و @ViewModelScoped لدورة حياة الـ ViewModel.

    اقرأ الشرح الكامل
  6. متقدم

    كيف تحل تعارض توفير نسختين مختلفتين من نفس النوع باستخدام الـ Qualifiers في Hilt؟

    بتعريف وسوم مخصصة (Custom Annotations) موسومة بـ @Qualifier لتمييز كل نسخة (مثل عميل شبكة موثق وعميل شبكة عام).

    اقرأ الشرح الكامل