برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0
سبد خرید خالی است.

Glide یا Coil ؟ کدومش رو برای اندروید استفاده کنم؟

چکیده کوتاه مطلب

برای کار با تصاویر باید از Glide استفاده کنم یا Coil ؟
کدومشون سرعت و کارایی بیشتری داره؟
توی این پست میخوام این موضوع مهم رو کامل توضیح بدم.

Glide بهتره یا Coil ؟ یا اصلا از کدومش استفاده کنم بهتره؟

زمانی که میخوایم اپلیکیشن آنلاین درست کنیم یکی از مواردی که همیشه باهاش روبرو هستیم دریافت تصاویر از اینترنت هستش.

تصاویری که قرار هست به صورت آنلاین دریافت کنیم و به کاربر نشون بدیم.

اندروید چندین کتابخونه برای نمایش تصاویر آنلاین داره.

کتابخونه هایی مثل : Universal Image LoaderPicassoFrescoGlideCoil و …

یکی از دغدغه های اصلی برنامه نویس های اندروید اینه که کدوم یکی از اینا بهتره؟ چرا باید ازشون استفاده کنم؟

همانطور که بالا اشاره کردم اندروید چندین کتابخونه برای اینکار داره، ولی من قصد دارم که گلاید و کویل رو مورد بررسی قرار بدم.

و اما چرا از بین این همه کتابخونه فقط میخوام این 2 تا رو بررسی کنم؟

برتری Glide و Coil نسبت به رقبا

این 2 کتابخونه جز بروزترین و پرامکانات ترین کتابخونه ها برای اندروید هستند.

از نظر کارایی و سرعت واقعا اصلا قابل مقایسه با رقبای خودشون نیستند و بسیار پرقدرتمند هستند.

هر دو این کتابخونه ها فشار بسیار کمی رو به منایع سخت افزاری اعمال میکنن و این واقعا یکی از بزرگترین نقاط قوت این کتابخونه ها هستش.

علاوه بر این موارد، هر دو این کتابخونه ها قابلیت های زیادی رو هم به برنامه نویس میدن.

قابلیت هایی مثل : گرد کردن تصاویر، اعمال انیمیشن برای زمان بارگذاری تصاویر و کلی قابلیت های کاربردی دیگر.

بررسی ساختار

هر کدوم از این دو کتابخونه روی یک سخت افزاری خاصی فوکوس کردن.

فوکوس اصلی گلاید فشار کم روی GPU (بخش گرافیکی گوشی) و فوکوس اصلی کویل هم فشار کمتر روی CPU (پردازنده گوشی) هستش.

نکته
البته این موضوع دلیل بر این نیستش که روی بقیه منابع سخت فازاری خوب عمل نکرده باشن.
بلکه روی این منابعی که اشاره کردم، تمرکز بیشتری شده.

کویل با استفاده از Coroutine ساخته شده و به خاطر همین موضوع هم تمرکز زیادی روی CPU داره.

گلاید از روی کتابخونه OkHttp ساخته شده و برای موارد ارتباط با اینترنت از این کتابخونه استفاده میکنه.

بررسی سرعت بارگذاری تصاویر

توی این بخش میخوام سرعت بارگذاری تصاویر توی هر دو کتابخونه رو به صورت نمودار نشون بدم و کامل بررسی کنم.

این تست به 2 صورت انجام شده :

  • تصاویر با حجم کم (حجم کمتر از 100 کیلوبایت)
  • تصاویر با حجم زیاد (حجم کمتر از 1 مگابایت)

توی هر دوی این تست ها، 5 تصویر با حجم های مختلف درنظر گرفته شده است.

در هر دو تست کمترین عدد بهترین نتیجه هستش.

تصاویر با حجم کم

این تست در 2 حالت انجام شده :

  • بارگذاری تصاویر از سرور
  • بارگذاری تصاویر از کش گوشی
glide_vs_coil_lower_img_server

بارگذاری تصاویر از سرور

glide_vs_coil_lower_img_cache

بارگذاری تصاویر از کش گوشی

تصاویر با حجم زیاد

این تست در 2 حالت انجام شده :

  • بارگذاری تصاویر از سرور
  • بارگذاری تصاویر از کش گوشی
glide_vs_coil_bigger_img_server

بارگذاری تصاویر از سرور

glide_vs_coil_bigger_img_cache

بارگذاری تصاویر از کش گوشی

 

اگر به تصاویر بالا خوب توجه کنی، متوجه میشی که سرعت بارگذاری تصاویر توی گلاید بیشتر از کویل هستش.

آموزش استفاده کردن

توی این بخش میخوام نحوه اضافه کردن هرکدوم از کتابخونه ها و نمونه کدهای ساده اونها برای استفاده رو توضیح بدم.

کتابخونه Glide

برای اضافه کردن این کتابخونه باید کدهای زیر رو توی gradle قرار بدی :

implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

بعد از اضافه کردن این کدها پروژه رو sync کن.

نمونه کد ساده برای استفاده کردن

Glide.with(context)
   .load("https://www.example.com/image.jpg")
   .into(imageView)

کتابخونه Coil

برای اضافه کردن این کتابخونه باید کدهای زیر رو توی gradle قرار بدی :

implementation("io.coil-kt:coil:1.4.0")

بعد از اضافه کردن این کدها پروژه رو sync کن.

نمونه کد ساده برای استفاده کردن

imageView.load("https://www.example.com/image.jpg")
نکته
کویل برای اعمال تصاویر روی ImageView از Extension استفاده میکنه.

نتیجه گیری

واقعا نمیشه گفت که کدوم یکی از این دو کتابخونه ها عملکرد بهتری دارن!

این شما هستی که باید تصمیم بگیری کدوم مورد برای شما الویت داره و مهمتر هستش و نسبت به اون موارد یکی از این دو کتابخونه رو انتخاب کنی.

ولی واقعا هر دوی این کتابخونه های جز بهترین کتابخونه برای بارگذاری تصاویر توی اندروید هستن.

  • چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

0