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 برید و خوشحال میشم نظراتتون رو بدونم و در این باره بحث کنیم .
مطلبی دیگر از این انتشارات
Handler , Looper , MessageQueue , Thread در اندروید
مطلبی دیگر از این انتشارات
استفاده از Dagger hilt به صورت پروژه محور (قسمت سوم)
مطلبی دیگر از این انتشارات
شروع برنامه نویسی اندروید