کتابخانه Retrofit(رتروفیت) چیست ؟
ما برای اینکه در برنامه نویسی اندروید به زبان جاوا یا با زبان برنامه نویسی کاتلین بخواهیم به سرور خودمون متصل بشویم . وهمچنین با API سرورمون در ارتباط باشیم . یکی از این راه ها کتابخانه Retrofit میباشد . که بسیار قدرتمند میباشد. الان تقریبا یک درک کلی از این دارید که کتابخانه رتروفیت چیست ؟ و برای اینکه بهتر بفهمید و یکم اطلاعات زیاد تری بدست آورید من یک سری اطلاعات دیگر نیز برای شما جمع آوری کرده ام .
همانطور که فهمیدید Retrofit یک کتابخانه بسیار قوی برای کار با Web Service ها میباشد . Retrofit برای اینکه بتواند درخواست Http بسازد و از آن ها استفاده کند مجبور است از OkHttp استفاده کند .و اما نکته مهم اینکه کتابخانه Retrofit در این مسیر یعنی ارتباط با سرور و استفاده از APi ها آن تنها نیست و حریف بزرگی به اسم Volly را کنار خودش میبیند . درسته به نسبت کمی استفاده از کتابخانه Retrofit بیشتر از Volley میباشد. ولی Volley نیز طرفداران زیادی را برای خود دارد .

نحوی کار کتابخانه رتروفیت به چه صورتی میباشد.
دلیل استفاده از کتابخانه رتروفیت چیست؟
برای فهمیدن جواب این سوال که چرا از کتابخانه Retrofit یا امثال آن مثل Volley استفاده میکنیم . لازم است برای شما مثالی بزنم همونطور که در مباحث قبلی دانستنی های اندروید در مقاله Api برای شما عزیزان توضیح دادم فرض کنید ما برای خودمون یک اپلیکیشن فروشگاهی داریم . سرور اون اطلاعات محصولات ما را که در آن ذخیره شده است را به صورت فایل Json که آرایه ای از Object ها است را برای ما میفرستد . برای ما به عنوان یک برنامه نویس تجزیه این اطلاعات سخت و دشوار میباشد. و اینکه چگونه این اطلاعات را بگیریم و در برنامه فروشگاهی خودمون استفاده کنیم .
در این مثالی که برای شما توضیح میدهم شما دقیق تر میفهمید که رتروفیت چیست ؟ و چرا از آن استفاده میکنیم ؟ ما با کمک کتابخانه Retrofit این فایل جیسون رو دریافت میکنیم و به وسیله جفت کلیدی که در هر دو طرف یکسان هست . اون اطلاعات مورد نظرمون دریافت میکنیم و در برنامه خودمون مورد استفاده قرار میدهیم . درواقع ممکن هست ما هزاران داده داشته باشیم ولی جای نگرانی نیست چون به کمک یک حلقه for و کتابخانه رتروفیت هر دفعه در آرایه جیسون داده هارا یکی یکی دریافت میکنیم . و اینکه این عملیات در کسری از زمان انجام میگیرد و سرعت این کار بسیار بالا هست و ما متوجه تاخیر نمیشویم .
مطالب مرتبط : آموزش کتابخانه Volley برای ارتباط با سرور .
والبته برای اینکه ما داده های خودمون را برای سرور ارسال کنیم لازم است که یک request با کمک کتابخانه Retrofit به سرور بفرستیم به همان آدرس سروری که تعریف کردیم و در آخر داده های خودمون رو به صورتی که Json هست و برای سرور قابل تشخیص ، ارسال کنیم .
تفاوت Retrofit با Volley چیه ؟
این دو کتابخانه در زمینه ارتباط با وب سرویس میباشند و در عرصه رقابت فقط همدیگر رو می بینند. این دو تفاوت های با هم دیگر دارند. که در بخش های رتروفیت از Volley برتری دارد . و در بخش هایی هم Volley از Retrofit بهتر میباشد .این موارد عبارتند از :

مزایای هر کدام از کتابخانه های Retrofit و Volley کدامند ؟
- اولین نکته ی قوت و مزایای کتابخانه Retrofit نسبت به کتابخانه Volley پیکربندی بسیار راحت این کتابخانه میباشد .
- و اما نقطه قوت و مزایای Volley نسبت به رتروفیت این هست که درخواست هایی که تکراری هستند را Volley خیلی خوب مدیریت میکنه .
برای اینکه ما یک درخواست Http رو پیگیری کنیم این کار با کتابخانه رتروفیت راحتر میباشد - کتابخانه Retrofit میتواند تمامی پاسخ های که از Web Api دریافت میکند را تجزیه تحلیل کنه این پاسخ ها میتواند . در قالب یک Boolean باشد یعنی یا true باشد و یا false .پاسخ ما میتواند یک عدد صحیح باشد و همچنین این پاسخ میتواند در قالب تاریخ ، رشته ها و یا از همه مهم تر در قالب یک شی Json باشد .
در والی ما چند دستور داریم که این دستور ها عبارتند از :
-
- StringRequest : این دستور میگه اون پاسخی را که از سمت سرور دریافت میکنیم را به یک رشته تبدیل کن .
- JsonObjectRequest : منظور از این دستور این هست که پاسخ سرور را به JsonObject تبدیل کن .
- JsonObjectRequest : برای این هست که پاسخ دریافتی را به صورت خودکار به JsonArray تبدیل کنیم.
- ImageRequest : این دستور پاسخ را به یک بیت مپ رمز گشایی میکند.
- یکی از معایب کتابخانه رتروفیت این هست که از کش پشتیبانی نمیکند.
- کتابخانه Volley دارای یک مکانیزم کش انعطاف پذیر میباشد و در واقع این یک مورد برتر نسبت به کتابخانه Retrofit میباشد.
- در رتروفیت هیچ مکانیسمی وجود نداره که از تلاش مجدد پشتیبانی کنه و این در حالی هست که ما میتونیم این مکانیسم رو به صورت دستی پیاده سازی کنیم .
- در Volley ما به کمک مکانیسم SetRetryPolicy میتوانیم از تلاش مجدد پشتیبانی به عمل آوریم .
- retrofit از در خواست های ارسال و آپلود که به صورت چند قسمتی هستند پشتیبانی به عمل میآورد. Volley نیز این کار را انجام میدهد ولی با پیچیدگی های زیاد که با تعدادی کد اضافی نیز بنویسیم.
کتابخانه رتروفیت چگونه مورد استفاده قرار میگیرد ؟
کار مهمی که کتابخانه Retrofit انجام میدهد این هست که برای ما مبدل یا همون Converters های مختلفی را مهیا میکند . این مبدل های برای چه چیزی های هستند؟ و چه کار های انجام میدهد؟ به عنواان مثال فرض کنید سرور ما اطلاعاتی که برای ما میفرستد در قالب Json هستش ، برای همین ما در برنامه خودمون و در قسمت کد نویسی کتابخانه رتروفیت (Retrofit) می آیم از اون Converter جیسون استفاده میکنیم . امکان سمت سرور ما اطلاعات به صورت Wire , jackson, XMl نیز باشند . که در کتابخانه Retrofit برای هر کدوم مبدل مخصوص به خودش رو داریم
جمع بندی مطالب
ما در این مقاله که خدمت شما عزیزان در کدایت آوردیم . یادگرفتیم که کتابخانه Retrofit چیه ؟ و چگونه کار میکنه و اصلا هدف از به وجود امدن آن چه بوده است . و همچنین گفتیم که رقیب اصلی کتابخانه رتروفیت ، Volley هست که برای خود طفداران زیادی دارد ولی علت استفاده از این کتابخانه مزایای هست که برای آن بیان کردیم .
دیدگاهتان را بنویسید