Android Team Lead at blu Bank
لود تصاویر در کاتلین با کتابخانه Coil
کتابخانه Coil اولین لایبرری لود تصاویر در کاتلین است که سریع , سبک و مدرن هست که با استفاده از Coroutine , Okhttp , Okio به لود تصاویر کمک میکنه . Coil مخفف کلمه Coroutine Image Loader هست .

همونطور که میدونید لایبرری های زیادی برای لود عکس در اندروید وجود داره مثل گلاید , پیکاسو و Fressco اما Coil یسری برتری هایی نسبت به بقیه داره که جلوتر بررسی میکنیم:
با کاتلین نوشته شده
کاتلین ویژگی های زیادی نسبت به جاوا داره که کمک های زیادی به ما میکنه مثل Extension Function , Lambda و.. که تو این کتابخونه به خوبی ازشون استفاده شده و شما عکس هاتون رو میتونید مستقیما با استفاده از ImageView لود کنید که جلوتر نمونه هاش رو میبینیم .
استفاده از Coroutines
کتابخونه Coil از لایبرری Coroutine استفاده میکنه که تو مباحث تردینگ و async به خوبی عمل میکنه
کم حجم و سبک
کتابخونه Coil نسبت به گلاید 8 برابر کد کمتری داره و همینطور کمتر از پیکاسو و Fressco عه و حدود 1500 متد به فایل APK اضافه میکنه که باز هم کمتر از کتابخونه های دیگست .
همینطور این کتابخونه تو تست نویسی کمک های زیادی میکنه و به دلیل استفاده نکردن از annotation به کم شدن سرعت کامپایل برنامه کمک زیادی میکنه .

به کمک این لایبرری شما پردازش های مختلفی مثل کم کردن حجم در لود تصاویر که برای نمونه عکس 500*500 رو در دیسک حفظ و 100*100 رو در ایمیج ویو نماش میده . با این حال شما میتونید کیفیت تصاویر رو مشخص کنید و اینکه نمایش تصاویر 100*100 گزینه مناسبی برای نمایش بصورت PlaceHolder هستش .
همینطور نمایش انیمیشن و لودر در زمان بارگزاری تصاویر رو هم ساپورت میکنه .
نمونه کد های استفاده :
بنظرم Coil کتابخونه بسیار خوبیه و میتونه جایگزین Glide و.. بشه در پروژه های کاتلین حتی در مقیاس بزرگ مورد استفاده قرار بگیره .
استفاده از اون بسیار ساده ست و امکانات خیلی خوبی داره . برای مثال با Extension Function و براحتی با صدا زدن ImageView.load() براحتی تصاویر لود میشن که تو خوانایی کد هم کمک زیادی میکنه . همینطور با دادن URL عکس رو دانلود و Drawable رو در اختیارتون قرار میده که تو کاستوم ویو ها و... هم کمک زیادی میتونه بکنه .
امیدوارم که این مقاله مفید بوده باشه و برای اطلاعات بیشتر به صفحه Coil برید و خوشحال میشم نظراتتون رو بدونم و در این باره بحث کنیم .
مطلبی دیگر از این انتشارات
آشنایی با مبحث شیرین Serialization در جاوا
مطلبی دیگر از این انتشارات
تغییر رنگ استوس بار در iOS
مطلبی دیگر از این انتشارات
۳۱ ترفند پیشرفته جهت بهبود مهارتهای برنامه نویسی اندروید