Glide یا Coil ؟ کدومش رو برای اندروید استفاده کنم؟
Glide بهتره یا Coil ؟ یا اصلا از کدومش استفاده کنم بهتره؟
زمانی که میخوایم اپلیکیشن آنلاین درست کنیم یکی از مواردی که همیشه باهاش روبرو هستیم دریافت تصاویر از اینترنت هستش.
تصاویری که قرار هست به صورت آنلاین دریافت کنیم و به کاربر نشون بدیم.
اندروید چندین کتابخونه برای نمایش تصاویر آنلاین داره.
کتابخونه هایی مثل : Universal Image Loader – Picasso – Fresco – Glide – Coil و …
یکی از دغدغه های اصلی برنامه نویس های اندروید اینه که کدوم یکی از اینا بهتره؟ چرا باید ازشون استفاده کنم؟
همانطور که بالا اشاره کردم اندروید چندین کتابخونه برای اینکار داره، ولی من قصد دارم که گلاید و کویل رو مورد بررسی قرار بدم.
و اما چرا از بین این همه کتابخونه فقط میخوام این 2 تا رو بررسی کنم؟
برتری Glide و Coil نسبت به رقبا
این 2 کتابخونه جز بروزترین و پرامکانات ترین کتابخونه ها برای اندروید هستند.
از نظر کارایی و سرعت واقعا اصلا قابل مقایسه با رقبای خودشون نیستند و بسیار پرقدرتمند هستند.
هر دو این کتابخونه ها فشار بسیار کمی رو به منایع سخت افزاری اعمال میکنن و این واقعا یکی از بزرگترین نقاط قوت این کتابخونه ها هستش.
علاوه بر این موارد، هر دو این کتابخونه ها قابلیت های زیادی رو هم به برنامه نویس میدن.
قابلیت هایی مثل : گرد کردن تصاویر، اعمال انیمیشن برای زمان بارگذاری تصاویر و کلی قابلیت های کاربردی دیگر.
بررسی ساختار
هر کدوم از این دو کتابخونه روی یک سخت افزاری خاصی فوکوس کردن.
فوکوس اصلی گلاید فشار کم روی GPU (بخش گرافیکی گوشی) و فوکوس اصلی کویل هم فشار کمتر روی CPU (پردازنده گوشی) هستش.
بلکه روی این منابعی که اشاره کردم، تمرکز بیشتری شده.
کویل با استفاده از Coroutine ساخته شده و به خاطر همین موضوع هم تمرکز زیادی روی CPU داره.
گلاید از روی کتابخونه OkHttp ساخته شده و برای موارد ارتباط با اینترنت از این کتابخونه استفاده میکنه.
بررسی سرعت بارگذاری تصاویر
توی این بخش میخوام سرعت بارگذاری تصاویر توی هر دو کتابخونه رو به صورت نمودار نشون بدم و کامل بررسی کنم.
این تست به 2 صورت انجام شده :
- تصاویر با حجم کم (حجم کمتر از 100 کیلوبایت)
- تصاویر با حجم زیاد (حجم کمتر از 1 مگابایت)
توی هر دوی این تست ها، 5 تصویر با حجم های مختلف درنظر گرفته شده است.
تصاویر با حجم کم
این تست در 2 حالت انجام شده :
- بارگذاری تصاویر از سرور
- بارگذاری تصاویر از کش گوشی
تصاویر با حجم زیاد
این تست در 2 حالت انجام شده :
- بارگذاری تصاویر از سرور
- بارگذاری تصاویر از کش گوشی
اگر به تصاویر بالا خوب توجه کنی، متوجه میشی که سرعت بارگذاری تصاویر توی گلاید بیشتر از کویل هستش.
آموزش استفاده کردن
توی این بخش میخوام نحوه اضافه کردن هرکدوم از کتابخونه ها و نمونه کدهای ساده اونها برای استفاده رو توضیح بدم.
کتابخونه 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")
نتیجه گیری
واقعا نمیشه گفت که کدوم یکی از این دو کتابخونه ها عملکرد بهتری دارن!
این شما هستی که باید تصمیم بگیری کدوم مورد برای شما الویت داره و مهمتر هستش و نسبت به اون موارد یکی از این دو کتابخونه رو انتخاب کنی.
ولی واقعا هر دوی این کتابخونه های جز بهترین کتابخونه برای بارگذاری تصاویر توی اندروید هستن.