
آموزش شروع به کار با Retrofit در اندروید
آموزش شروع به کار با Retrofit در اندروید یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش شروع به کار کردن با ابزار Retrofit در اندروید است که با نام اصلی Android - Getting Started with Retrofit از شرکت Pluralsight منتشر شده است.
ابزار Retrofit در اندروید چیست؟
ابزار Retrofit یک REST client است که به صورت type-safe به منظور استفاده شدن در اپلیکیشن های اندروید و جاوا پیاده سازی گردیده است. ابزار Retrofit کمک می کند تا مصرف کردن وب سرویس های ابزار Retrofit در اپلیکیشن های اندروید و جاوا ساده تر گردد. در نسخه دوم از Retrofit تعداد قابل توجهی از قابلیت های جدید اضافه شده اند و API درونی مربوط نیز تغییر کرد. به طور پیش فرض ابزار Retrofit در نسخه دوم خود از OkHttp به عنوان لایه networking استفاده میکند و هچنین بر اساس آن پیاده سازی گردیده است. ابزار Retrofit به صورت خودکار response های دریافت شده از وب سرویس را که در قالب JSON هستند، به POJO و Plain Old Java Object تبدیل می کند. این POJO ها را باید قبل از استفاده کردن از Retrofit بر اساس ساختار مربوط به داده دریافتی با فرمت JSON بنویسیم. برای serialise کردن آبجکت ها به JSON نیز، نیاز به یک تبدیلگر و یا converter مناسب برای Gson داریم.
برای استفاده کردن از Retrofit در اپلیکیشن های اندروید می بایست ابتدا وابستگی های زیر را به فایل build.grade اضافه کنید.
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
دقت کنید که که وابستگی OkHttp از قبل در Retrofit 2 لحاظ گردیده است. اگر تمایل دارید که از یک OkHttp مجزا استفاده کنید، می بایست در ابتدا dependency مربوط به OkHttp را از Retrofit 2 حذف نمایید. این موضوع در کد زیر نشان داده شده است.
compile ('com.squareup.retrofit2:retrofit:2.1.0') {
// exclude Retrofit’s OkHttp dependency module and define your own module import
exclude module: 'okhttp'
}
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.squareup.okhttp3:okhttps:3.4.1'
دقت کنید که logging-interceptor بصورت خودکاریک رشته log را از کل response دریافت شده از وب سرویس مورد نظر ایجاد می کند. البته converter های دیگری نیز برای parse کردن JSON به تایپ های مورد نظر وجود دارند که برخی از آنها شامل مواردی از قبیل Jackson و Moshi و Protobuf و Wire و Simple XML می باشند. ضمناً می بایست که در فایل AndroidManifest.xml مجوز و یا permission دسترسی به اینترنت را نیز فعال کنید.
قابلیت های ابزار Retrofit
ابزار Retrofit یک روش بسیار مناسب برای دسترسی پیدا کردن به وب سرویس های Restful در اپلیکیشن های اندروید و جاوا می باشد.

ویژگی های منحصر به فرد این ابزار باعث شده است که بسیاری از اپلیکیشن های اندروید از آن استفاده کنند. در قسمت زیر به صورت تیتر وار برخی از ویژگی های این ابزار را بررسی می کنیم.
- سرعت بسیار بالا.
- امکان ایجاد ارتباط مستقیم با وب سرویس مورد نظر.
- پشتیبانی از dynamic URL ها.
- سادگی در استفاده از آن.
- پشتیبانی از network request هایsynchronous و asynchronous.
- پشتیبانی از converter ها.
- پشتیبانی از request cancellation.
- پشتیبانی از post request ها و multipart upload ها.
Retrofit چگونه ارتباط اپلیکیشن اندروید با سرور را ساده میکند؟
بسیاری از اپلیکیشنهای اندروید برای نمایش اطلاعات بهروز یا ثبت دادههای کاربران به یک سرور متصل میشوند. برای مثال، یک برنامه فروشگاهی ممکن است فهرست محصولات را از Web API دریافت کند یا اطلاعات سفارش را برای سرور بفرستد. Retrofit کتابخانهای برای برقراری این ارتباطهای HTTP است که تعریف درخواستها و تبدیل پاسخهای دریافتی را سادهتر میکند. بهجای مدیریت دستی تمام جزئیات ارتباط شبکه، میتوانید ساختار درخواستها را با استفاده از interfaceها و تعریف endpointها مشخص کنید.
یکی از ویژگیهای مهم Retrofit، استفاده از تعریفهای type-safe برای درخواستهای شبکه است. این رویکرد کمک میکند ساختار متدهای ارتباط با سرور روشنتر باشد و نوع دادههای مورد انتظار در کد مشخص شود. برای مثال، میتوانید متدی تعریف کنید که اطلاعات یک کاربر را از سرور دریافت کند و نتیجه را در قالب یک مدل داده در برنامه در اختیار شما قرار دهد. این ساختار، سازماندهی کدهای مربوط به ارتباط شبکه را سادهتر میکند و تغییرات بعدی را قابلمدیریتتر میسازد.
چگونه پاسخ Web API را در اپلیکیشن اندروید مدیریت کنیم؟
پس از ارسال یک درخواست HTTP، اپلیکیشن باید پاسخ سرور را دریافت کند و بر اساس نتیجه آن تصمیم بگیرد. این پاسخ ممکن است شامل اطلاعات موردنیاز، پیام خطا یا وضعیت دیگری از عملیات باشد. هنگام استفاده از Retrofit، میتوانید پاسخهای دریافتی را به مدلهای داده مناسب نگاشت کنید و سپس اطلاعات را در بخشهای مختلف برنامه به کار ببرید. برای مثال، در یک اپلیکیشن خبری، دادههای دریافتی از Web API میتوانند برای نمایش عنوان و محتوای خبرها استفاده شوند.

مدیریت درست پاسخها فقط به دریافت دادههای موفق محدود نمیشود. برنامه باید بتواند با خطاهای HTTP، مشکلات اتصال و پاسخهایی که مطابق انتظار نیستند نیز برخورد کند. همچنین عملیات شبکه نباید باعث مسدود شدن رابط کاربری شود؛ بنابراین اجرای درخواستها و مدیریت نتیجه آنها باید با توجه به امکانات ارتباط ناهمگام در اندروید طراحی شود. شناخت این ملاحظات به شما کمک میکند هنگام استفاده از Retrofit، ارتباط شبکه را به شکلی قابلاعتمادتر در اپلیکیشن خود پیادهسازی کنید.
نقش Retrofit در توسعه اپلیکیشنهای مبتنی بر REST API
REST API یکی از روشهای رایج برای فراهم کردن دسترسی به دادهها و عملیات سمت سرور است. در این مدل، کلاینت معمولاً با ارسال درخواستهای HTTP به endpointهای مشخص، اطلاعات را دریافت یا تغییر میدهد. Retrofit به شما کمک میکند این endpointها را در قالب متدهای یک interface تعریف کنید و از آنها برای اجرای عملیات موردنیاز برنامه استفاده کنید. برای مثال، در یک اپلیکیشن مدیریت وظایف، میتوانید درخواستهای مربوط به دریافت فهرست وظایف یا ثبت یک وظیفه جدید را بر اساس API سرور تعریف کنید.
وقتی تعداد endpointها در یک پروژه افزایش پیدا میکند، داشتن ساختاری مشخص برای درخواستهای شبکه به نگهداری بهتر کد کمک میکند. میتوانید تعریف ارتباط با سرور را از منطق نمایش اطلاعات جدا نگه دارید و مدلهای داده را برای تبادل اطلاعات به کار ببرید. البته Retrofit مسئول طراحی خود API یا منطق سمت سرور نیست؛ بلکه ابزاری برای استفاده از API در سمت کلاینت است. به همین دلیل، آشنایی با HTTP، ساختار REST API و مدلهای داده به شما کمک میکند استفاده مؤثرتری از این کتابخانه داشته باشید.
این آموزش Retrofit برای چه کسانی مناسب است؟
این دوره برای توسعهدهندگانی مناسب است که با برنامهنویسی اندروید آشنایی دارند و میخواهند ارتباط اپلیکیشن خود با Web Serviceها را با استفاده از Retrofit پیادهسازی کنند. اگر قصد دارید اطلاعات را از یک سرور دریافت کنید یا دادههای تولیدشده توسط کاربر را به API ارسال کنید، آشنایی با این کتابخانه میتواند بخش مهمی از فرایند توسعه اپلیکیشن شما را پوشش دهد. سطح متوسط دوره نشان میدهد که داشتن آشنایی اولیه با مفاهیم برنامهنویسی اندروید و ارتباط شبکه میتواند در یادگیری بهتر مطالب مؤثر باشد.
همچنین این آموزش برای برنامهنویسانی مفید است که میخواهند روش تعریف درخواستهای HTTP، استفاده از RESTful Web Serviceها و دریافت و ارسال دادهها را در یک پروژه اندروید یاد بگیرند. اگر قبلاً با درخواستهای شبکه کار کردهاید اما میخواهید کدهای ارتباط با سرور را منظمتر و ساختاریافتهتر بنویسید، Retrofit میتواند ابزار مناسبی برای بررسی باشد. آشنایی با این کتابخانه همچنین درک شما را از ارتباط میان مدلهای داده در اپلیکیشن و پاسخهای دریافتی از سرور تقویت میکند.
سرفصل مطالب آموزش ویدئویی شروع به کار با Retrofit در اندروید
فصل اول: مقدمه این دوره آموزشی- مقدمه این دوره آموزشی
- مقدمه
- آیا این دوره آموزشی برای شما مناسب است یا خیر؟
- کارکردن با HTTP در اندروید
- معرفی کردن Retrofit
- بررسی اپلیکیشن مربوط به این دوره آموزشی
- سرفصل مطالب این دوره آموزشی
- جمع بندی
- مقدمه
- مفاهیم اولیه در HTTP
- آموزش عملی: کار کردن با HTTP Request ها
- بررسی اجمالی Web Service های RESTful
- مهمترین مباحث مربوط به Web Service های RESTful
- بررسی اجمالی تکنولوژی Web Service ها
- آموزش عملی: راه اندازی کردن یک Web Service در Node
- آموزش عملی: راه اندازی کردن یک Web Service در دات نت
- جمع بندی
- مقدمه
- آموزش عملی: بررسی کردن اپلیکیشن این دوره آموزشی
- آموزش عملی: راه اندازی کردن Retrofit در Android Studio
- بررسی الگوهای HTTP Request ها در Retrofit
- آموزش عملی: کار کردن با Service Builder و Interface مربوط به آن
- آموزش عملی: ایجاد کردن اولین HTTP Request
- آموزش عملی: رصد کردن Request ها با مکانیزم Logging
- جمع بندی
- مقدمه
- آموزش عملی: پر کردن داده های List View
- بررسی پارامتر های Request
- آموزش عملی: پر کردن داده های Detail View
- آموزش عملی: فیلتر کردن با استفاده از Query Parameter
- آموزش عملی: مدیریت کردن پارامترها با استفاده از Query Map
- آموزش عملی: بازیابی کردن داده ها از یک URL جایگزین
- جمع بندی
- مقدمه
- ارسال کردن داده با HTTP
- ارسال کردن داده ها با Retrofit
- آموزش عملی: ایجاد کردن Entity های جدید
- آموزش عملی: به روز رسانی Entity های از قبل موجود
- آموزش عملی: حذف کردن Entity ها
- آموزش عملی: کار کردن با HTTP Header ها
- جمع بندی
- مقدمه
- نگاهی دقیق به Interceptor ها
- آموزش عملی: اضافه کردن HTTP Header ها با استفاده ها Interector ها
- آموزش عملی: بهبود دادن Error Handling
- آموزش عملی: پیکربندی کردن Timeout در Request ها
- آموزش عملی: کنسل کردن Request ها
- آموزش عملی: ارسال Synchronous Call ها
- قدم های بعدی در یادگیری Retrofit
- جمع بندی







