کتابخانه Retrofit چیست؟

دسته بندی: برنامه نویسی
سطح مقاله: پیشرفته
زمان مطالعه: 7 دقیقه
۱۳ آبان ۱۳۹۸
فارسی
رتروفیت
English
Retrofit

اپلیکیشن‌های موبایل خدمات بسیار متنوعی به کاربران ارائه می‌دهند و امروزه کارهای بسیار متنوعی با گوشی‌های هوشمند انجام می‌شود. یک لحظه تصور کنید گوشی موبایل از زندگی شما حذف شده است، چه حالی به شما دست می‌دهد؟ مطمئنم بسیاری از کارهای روزمره شما با مشکل مواجه خواهد شد.

یکی از اصلی‌ترین و مهم‌ترین کارهایی که یک اپلیکیشن موبایل آنلاین باید انجام دهد، برقراری ارتباط با سرور است. به این ترتیب برنامه می‌تواند داده‌ها را از کاربر گرفته، آنها در سرور پردازش کرده و نتایج را به کاربر برگرداند. امروزه بیشتر اپلیکیشن‌های موبایل نیاز به برقراری ارتباط با سرور دارند و بدون شک این بخش از حساسیت بسیار بالایی برخوردار است. چون شاید کاربر با بعضی از مشکلات مربوط به رابط کاربری (UI) یا تجربه کاربری (UX) کنار بیاید، اما مطمئئنا اگر برنامه شما نتواند به خوبی با سرور ارتباط برقرار کند، کاربر نمی‌تواند از آن استفاده کند.

در این مطلب ما راجع به اندروید و نحوه برقراری ارتباط به سرور در اپلیکیشن‌های اندرویدی صحبت می‌کنیم. تا چند وقت قبل یکی از راه‌حل‌های مفید برای وصل کردن اپلیکیشن به سرور در اندروید کتابخانه‌ای با نام Android Asynchronous Http Client یا Android-async-http بود. اما از آنجایی که جامعه برنامه نویسان همیشه به دنبال راه‌های جدیدتر و بهتر هستند، ابزارهای جدیدتری برای تعامل با سرور در اندروید معرفی کردند. یکی از این ابزارها Retrofit بود. در این مطلب راجع به این صحبت می‌کنیم که کتابخانه Retrofit چیست و چه کاربردهایی دارد.

فهرست محتوای این مقاله

کتابخانه Retrofit چیست؟

آشنایی بیشتر با کتابخانه رتروفیت

Retrofit یا رتروفیت یک کتابخانه معروف اندرویدی برای کار با وب سرویس است. Retrofit یک Rest Client برای اندروید و زبان برنامه نویسی جاوا است. به کمک Retrofit به راحتی می‌توانید Rest API را تبدیل به اینترفیس‌های جاوا بکنید. این کتابخانه از OkHttp برای ساخت درخواست‌های HTTP استفاده می‌کند. به عبارتی Retrofit بازیابی و ارسال فایل JSON از یک وب سرویس مبتنی بر Rest را آسان می‌کند.

البته Retrofit تنها راه ارتباط با سرور در اندروید نیست. این کتابخانه رقیب‌هایی مثل Volley دارد. Volley کتابخانه قدرتمندی است که گوگل را پشت خودش دارد و برنامه نویسان زیادی از آن استفاده می‌کنند، اما بازار Retrofit کمی داغ‌تر بوده و کاربران بیشتری دارد. البته هر دو کتابخانه مزایا و معایب خودشان را دارند و نمی‌شود گفت که یکی از آنها بهتر است. برای مثال چند مورد از مزایا و معایب این دو کتابخانه را ببینید:

  • پیکربندی Retrofit بسیار راحت‌تر از Volley است
  • Volley به خوبی درخواست‌های تکراری آزاردهنده را مدیریت می‌کند
  • Retrofit نسبت به Volley بروزتر است
  • پیگیری درخواست HTTP با Retrofit بسیار آسان‌تر است ( برای زمانی که می‌خواهید قبل یا بعد از فراخوانی درخواست HTTP کار دیگری انجام دهید )

کتابخانه Retrofit چطور کار می‌کند؟

نحوه کار کتابخانه رتروفیت

Retrofit را می‌توانید از طریق bulid.gradle استفاده می‌کند. این کتابخانه مبدل‌های (Converters) مختلفی مثل Gson، XML، Jackson، Wire و غیره در اختیار برنامه نویس قرار می‌دهد تا او با توجه به سرور موردنظر و اینکه به چه شکل تبادل اطلاعات انجام می‌دهد از این مبدل‌ها استفاده کند. فرض کنید سرور ما از ساختار JSON برای تبادل اطلاعات استفاده می‌کند. در این شرایط بهترین کار این است که مبدل Gson را به کار بگیریم.

به طور خلاصه کتابخانه Retrofit کدهای جاوا را به JSON ( و برعکس ) تبدیل می‌کند.

چند مثال ساده از کاربردهای کتابخانه Retrofit

همانطور که گفتیم رتروفیت می‌تواند HTTP API را به اینترفیس جاوا تبدیل کند. به کد زیر دقت کنید:


public interface GitHubService {
  @GET("users/{user}/repos")
  Call<List<Repo>> listRepos(@Path("user") String user);
}

یا در تکه کد زیر مشاهده می‌کنید که کلاس Retrofit یک implementation از اینترفیس GitHubService می‌سازد:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.github.com/")
    .build();

GitHubService service = retrofit.create(GitHubService.class);

نتیجه گیری

در این مطلب بررسی کردیم که کتابخانه Retrofit چیست و چطور کار می‌کند. رتروفیت یک کتابخانه اندرویدی است که توسط شرکت Square ارائه شده و یک راه حل برای برقراری ارتباط با سرور و اتصال به APIهای مختلف است. در این کتابخانه مبدل های مختلفی برای تبدیل داده‌ها وجود دارد و اگر دوست داشتید می‌توانید مبدل اختصاصی خود را نیز بسازید. در پایان از شما می‌خواهم اگر تجربه‌ای از کار با کتابخانه Retrofit یا رقبای آن مثل Volley دارید، تجربه خود را با ما و کاربران سون لرن به اشتراک بگذارید.

نویسنده
زندگی کردن در لحظه انقدر سخت است که بیشتر مردم ترجیح می‌دهند در حسرت گذشته و رویای آینده باقی بمانند. به نظر من رسیدن به خوشحالی فرمول پیچیده ای ندارد و فقط باید به تک بیت زیر پایبند بود: سعدیا دی رفت و فردا همچنان موجود نیست در میان این و آن ، فرصت شمار امروز را

نظرات کاربران

حسین اهل زاده

با سلام
بسیار مطلب مفیدی بود، استفاده کردیم، خیلی ممنون

محمد انوری

سلام حسین جان …
خوشحالم که واست مفید بود … سلامت باشی …
بازم به سون لرن سر بزن …

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل