کاربردهای کتابخانه volley

کاربردهای کتابخانه volley

این روزها با توجه به گستردگی نیاز به ارتباطات آنلاین، بهره گیری از یک کتابخانه networking بهینه، دغدغه بیشتر برنامه نویسان موبایل است. ما نیز در راه پیاده سازی یک ارتباط شبکه ای امن و مطمئن برای فروشگاه فرضی در پروژه پرکا پلتفرم، ناگزیر از پیمودن این راه هستیم. اگر با ما همراه بودید، متوجه شدید که در نوشته پیشین، به برتری های کتابخانه volley بر روش های دیگری همچون HttpURLConnection اشاره کردیم. باید خاطر نشان کرد که در طی جستجوهای فراوان برای پیاده سازی بهینه کاربردهای کتابخانه volley، در موارد زیادی به کتابخانه های شرکت Square مانند Picasso، Retrofit یا Okhttp رسیدیم، تا جایی که باید اعتراف کرد با توجه به آموزش هایی که استفاده ترکیبی از کتابخانه های شرکت Square را برای سرعت بالاتر و ارتباط موثرتر پیشنهاد می دهند، تصمیم گیری برای شروع سخت شده است…

حتی androidhive به عنوان یکی از به روزترین مراجع خودآموز اندروید در یکی از نوشته های اخیر خود، از Retrofit به عنوان جایگزین بلامنازع Volley یاد می کند…

چه باید کرد؟

یک پیشنهاد خوب، پایبند بودن به تصمیم پیشین و ادامه پیاده سازی فروشگاه به کمک کتابخانه Volley است، چرا که در حال حاضر با توجه به خودآموز از ووکامرس تا اندروید، پیاده سازی یک مسیر مشخص برای کار با فروشگاه ووکامرس و بارگذاری موارد به کمک Volley ساده تر به نظر می رسد، مخصوصاً که Volley کار با image و json را در یک کتابخانه پیاده سازی کرده و نیازی به استفاده همزمان از چند کتابخانه نیست. به همین منظور، کتابخانه Retrofit و همراهانش را برای اهداف آینده در گوشه ای از ذهنمان نگه داشته و در ادامه به نحوه پیاده سازی یک JsonRequest به کمک کتابخانه Volley خواهیم پرداخت.

کاربردهای کتابخانه Volley

دریافت JSON

استفاده از JsonRequest به دو بخش تقسیم می شود: JsonArrayRequest و JsonObjectRequest که در ادامه مثالی برای کار با JsonObjectRequest آورده ایم.

همان طور که در ادامه مشاهده می کنید، هدف دریافت و تجزیه خروجی json موجود در url است:

 

و از آنجا که ساختار response به شکل یک JSONObject بر می گردد، تجزیه المان های آن در متد OnResponse به سادگی انجام خواهد گرفت.

مشابه دریافت یک String، پارامتر اول متد HTTP و پارامتر دوم آدرس URL است، پارامتر سوم در این رابطه  null انتخاب شده (یعنی پارامتری در هنگام ارسال درخواست، فرستاده نمی شود)، پارامتر بعدی مشابه قبل Listenerی برای دریافت پاسخ JSON است.

 

دریافت عکس

دریافت عکس به کمک volley کمی پیچیده تر از کتابخانه Picasso است. در اینجا سه راه برای درخواست یک عکس وجود دارد.

روش اول، روش استاندارد ImageRequest است. در این روش عکس درخواستی شما در یک ImageView نمایش داده می شود و همه عملیات decoding و تغییر سایز عکس درخواستی شما در Threadی جداگانه از UI Thread انجام خواهد شد (موردی که همیشه نگرانش بودیم :-))

روش دوم، استفاده از کلاس ImageLoader به عنوان یک راه حل بهینه برای مدیریت تعداد زیادی ImageRequest است، مثلاً برای پر کردن یک  ListView.

روش سوم، استفاده از NetworkImageView است که یک نوع جایگزین XML برای ImageView محسوب می شود.

به یک مثال ساده برای روش اول نگاه کنید:

مشابه موارد قبلی، پارامتر اول آدرس عکس و پارامتر دوم listener است. پارامترهای سوم و چهارم اعداد صحیحی برای بیان maxWidth و maxHeight در عکس هستند. بعد از آن نوبت می رسد به ScaleType برای محاسبه اندازه عکس و فرمت دیکد عکس bitmap که ما از  Bitmap.Config.ARGB_8888 استفاده کردیم. در نهایت listnener خطا به عنوان آخرین پارامتر قرار می گیرد.

 

برای مشاهده یک مثال از ساخت اپلیکیشن دمای هوای مریخ!!! می توانید به این آدرس مراجعه کنید.

دیدگاه خود را بیان کنید

اولین نفری باشید که دیدگاهش را بیان می کند

avatar
  Subscribe  
به من اطلاع بده