1. مبتدئ

    كيف تعمل مكتبة Retrofit وما دور Converter.Factory و CallAdapter.Factory؟

    تحول واجهات الـ Java/Kotlin Interface إلى طلبات HTTP عبر الـ Dynamic Proxies؛ يتولى Converter تحويل JSON لكائنات، بينما يحول CallAdapter نوع الإرجاع إلى أنواع أخرى مثل RxJava Single أو Result مخصص؛ أما دوال suspend فمدعومة أصليًا منذ Retrofit 2.6 دون CallAdapter.

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

    ما الفرق بين Application Interceptor و Network Interceptor في مكتبة OkHttp؟

    Application Interceptor يُستدعى مرة واحدة فقط لكل طلب من التطبيق دون النظر لإعادة المحاولة أو الكاش؛ بينما Network Interceptor يراقب حركة الشبكة الحقيقية عبر السلك (Over-the-wire).

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

    لماذا يفضل استخدام Moshi أو Kotlinx Serialization بدلاً من Gson في كود Kotlin الحديث؟

    لأنهما يدعمان نظام Null Safety في Kotlin بشكل أصيل ولا يتجاوزان القيم الافتراضية للخصائص كما يفعل Gson باستخدام الـ Reflection غير الآمن.

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

    كيف تطبق نمط Result لتغليف استجابات الشبكة وأخطائها بأمان؟

    باستخدام Sealed Interface أو Result<T> يمثل النجاح مع البيانات أو الفشل مع نوع الخطأ، مما يجبر المستهلك على معالجة كل السيناريوهات.

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

    ما هو الـ SSL/Certificate Pinning وكيف يتم تنفيذه لحماية التطبيق من هجمات MITM؟

    هو تقييد الاتصال بالخادم بشهادة أمان أو بصمة مفتاح عام (Public Key Hash) محددة مسبقًا داخل التطبيق بدلاً من الثقة في كل الشهادات الموثقة بالنظام.

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

    كيف تدير التخزين المؤقت للشبكة (HTTP Caching) ودعم ETag في أندرويد؟

    بتهيئة كائن okhttp3.Cache مع مسار وحجم محدد، لتقوم OkHttp تلقائيًا بإرسال If-None-Match واستقبال 304 Not Modified دون إعادة تنزيل البيانات.

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