واضح آرشیو وب فارسی:: رتروفیت چیست؟
رتروفیت (Retrofit) کتابخانه ای بسیار قدرتمند جهت اتصال به سرور و ارتباط با API سمت سرور است در واقع یک نوع سرویس امن REST برای اندروید و جاوا است که هدف آن سهولت مصرف خدمات وب RESTful است. رتروفیت به طور خودکار پاسخ JSON را با استفاده از (POJO (Plain Old Java Object سریال می کند که برای ساختار JSON باید به صورت پیشرفته تعریف شود. رتروفیت توسط شرکت Square پشتیبانی میشود و مورد تایید گوگل است .
معرفی کتابخانه رتروفیت (Retrofit) :
اگر به کاربرد وب سرویس برای ارتباط یک اپلیکیشن اندرویدی با سرور فکر کنید، مثال های مختلفی به ذهنتان می رسد. از اپ های فروشگاهی گرفته تا سرویسها و بازیهای آنلاین که همگی نیازمند ارسال و دریافت دادهها از یک سرور در اینترنت هستند.
پیاده سازی قابلیت ارتباط بین سرور و اپلیکیشن به روش دستی و نوشتن کامل کدها بسیار پیچیده و زمانگیر بوده و همواره باید پارامترهای متعددی مانند ساخت کانکشن برای اتصال ، ارسال دوباره درخواستهای ناموفق ، تردها (Thread)، ارورها، Parse کردن پاسخ و… را خودمان مدیریت کنیم. بنابراین بهتر است سراغ کتابخانههایی برویم که توسط شرکتهای معتبر منتشر و پشتیبانی میشوند. کتابخانه Retrofit یکی از معروف ترین این کتابخانه ها می باشد.
به واسطه Retrofit ، یک ارتباط امن از نوع HTTP بین سرور و کلاینت (اپلیکیشن) برقرار میشود ، یعنی از رتروفیت برای اتصال به وب سرویس از طریق HTTP Connection استفاده می گردد.
کتابخانه والی (Volley) به عنوان رقیب اصلی Retrofit توسط گوگل پشتیبانی میشود. هم اکنون Retrofit به دلیل مزیت هایی که نسبت به Volley دارد در بین برنامه نویسان اندروید محبوبیت بیشتری دارد . نسخه ۲ کتابخانه Retrofit ، نسبت به نسخه ۱ تغییرات گسترده ای داشته که علاوه بر استفاده راحت تر ، نسبت به ورژن 1 ، امکانات بیشتری نیز در اختیار شما قرار میدهد .
کار با کتابخانه رتروفیت (Retrofit) :
برای کار با Retrofit در اصل به سه کلاس زیر نیاز دارید:
- کلاس مدل که به عنوان یک مدل JSON استفاده می شود .
- رابط هایی که عملیات HTTP را تعریف می کنند .
- Retrofit.Builder class : نمونه ای که از رابط و API Builder استفاده می کند تا بتواند نقطه پایان URL را برای عملیات HTTP تعریف کند .
هر روش واسط یک تماس API ممکن را نشان می دهد . برای مشخص کردن نوع درخواست و URL نسبی باید حاوی HTTP (GET ، POST و غیره) باشد. مقدار بازگشت پاسخ را در یک شی تماس با نوع نتیجه مورد نظر پیچیده می کند.
@GET("users") Call<List<User>> getUsers();
برای تنظیم URL می توانید از بلوک های جایگزین و پارامترهای پرس و جو استفاده کنید. یک بلوک جایگزین با relative to به URL نسبی اضافه شده است. با کمک Path در پارامتر متد ، مقدار آن پارامتر به بلوک جایگزینی خاص محدود می شود.
@GET("users/{name}/commits") Call<List<Commit>> getCommitsByName(@Path("name") String name);
پارامترهای پرس و جو با استفاده از Query نویسی در یک پارامتر متد اضافه می شوند. آنها به طور خودکار به انتهای URL اضافه می شوند.
@GET("users") Call<User> getUserById(@Query("id") Integer id);
در واقع Body در یک پارامتر متد به Retrofit می گوید تا از شیء به عنوان بدنه درخواست تماس استفاده کند.
@POST("users") Call<User> postUser(@Body User user);
کنترل های ورودی ، اجزای تعاملی در رابط کاربری (UI) اپلیکیشن شما است. اندروید دارای طیف گسترده ای از کنترل هایی را که می توانید در رابط کاربری (UI ) خود استفاده کنید مانند دکمه ها (button) ، زمینه های متنی ، جعبه جستجو ، چک باکس ، دکمه های زوم، دکمه های تعویض و بسیاری موارد دیگر است.
به هر چیزی که کاربر بتواند در آموزش برنامه نویسی اندروید آن را ببیند و با آن تعامل داشته باشد یک واسط کاربری اپلیکیشن اندرویدی گفته می شود ( مقالات بیشتر در کلیک سایت) . این مقاله ، جزئیاتی را در مورد view های مختلف ارائه می دهد.
همانطور که در مقالات قبلی گفته شد ، یک View ، شی ای است که چیزی را بر روی صفحه ترسیم می کند که کاربر می تواند با آن تعامل برقرار کند و دیدیم یک ViewGroup یک شی است که سایر اشیا View ها (و ViewGroup) را به منظور تعریف Layout واسط کاربری، در خود نگه می دارد.
شما layout خود را در یک فایل XML تعریف می کنید که یک ساختار قابل خواندن به وسیله ی انسان، شبیه به HTML را برای layout ارائه می دهد.