Perbedaan dan Cara Penggunaan Image Loader Glide dan Picasso pada Android

Keluhan mengenai Image Loader sudah tidak asing bagi seorang developer, khususnya developer Android. Problem yang sering dihadapi beragam diataranya image tidak mau tampil, image lambat ketika mau tampil karena berukuran atau pixel nya kegedean sehingga berefek pada kelancaran aplikasi dan kadang-kadang bisa menghasilkan hadian NullPointerException hehehe

Banyak image loader yang ada saat ini, namun beberapa masih belum bisa berfungsi maksimal dimata developer. Kalian bisa cari-cari macam-macam image loader. Dua diantaranya yaitu Picasso dan Glide

Glide merupakan Library bentukan Google, banyak yang berpendapat bahwa google telah menyadari masalah image loader, makanya dia menciptakan Image Loader tandingan bernama Glide. Bahkan Google sangat merekomendasikan untuk memakai Glide (iyalah orang produknya dia hehe)

Sepintas tidak ada perbedaan yang jelas antara Picasso dan Glide, karena cara penggunaannya hampir, perbedaan akan terlihat ketika sudah menangani project besar yang banyak ada gambar-gambarnya.

Mari langsung pelajari saja perbedaan keduan dan cara pakainya gimana.

Pertama kalian compile kedua library tersebut di gradle.build (app). Oya Glide membutuhkan Android Support Library v4 keatas, tapi picasso tidak.

    //glide libs
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'

    //libs picasso
    compile 'com.squareup.picasso:picasso:2.5.1'

Tapi biasanya ketika kalian membuar project pertama kali Android Support Libary sudah ter include didalamnya.

Seperti yang sudah dijelaskan, Cara penggunaan keduanya sangat mirip, sama-sama meload image dan men-setnya di imageview bawaan android

Picasso

Picasso.with(context)
    .load("http://api.androidhive.info/images/glide/medium/deadpool.jpg")
    .into(imageView);

Glide

Glide.with(context)
    .load("http://api.androidhive.info/images/glide/medium/deadpool.jpg")
    .into(imageView);

Salah satu perbedaan yang ada adalah, dalam contructor masing-masing image loader tersebut, ketika kita men-set with di picasso atau glide, lihat suggestion apa saja yang ada didalamnya, lihat Gambar 1 :

Gambar 1

Bahkan saat sudah berhasil meload data, perbedaan secara terperinci juga belum kentara, Lihat Gambar 2

Gambar 2

Kalian dapat melihat dengan seksama bahwa gambar yang dimuat oleh Glide lebih buruk kualitasnya dibandingkan dengan Picasso. Hal ini disebabkan Glidle menggunakan standart format Bitmap diatur ke RGB_565, karena konsumsinya hanya 50% memori jika dibandingkan dengan picasson yang diatur dengan ARGB_8888. Berikut ini adalah grafit perbedaan keduanya :

Gambar 3

Kenapa bisa seperti itu pebedaan nya, alasan utamanya karena Picasso menampilkan full size gambar (1920×1080 pixel) kedalam memory dan membiarkan GPU melakukan realtime otomatis ketika ditarik, sedangkan Glide menampilkan image tepat seperti ukuran Imageview (768×432 pixel) kedalam memori.

Tapi jangan khawatir, kalian dapat me-resize sendiri ukuran pixel dipicasso dengan perintah :

        Picasso.with(this).load(url)
                .resize(768,432)
                .into(imageViewPicasso);

Namun ada masalah lagi ketika ImageView tidak diset secara wrap_content, kalian harus mengkalkulasikan secara manual, bukan? tapi tenang saja, kalian bisa melakukan hal berikut :

   
 Picasso.with(this).load(url)
                .fit()
                .centerCrop()
                .into(imageViewPicasso);

Nah ketika kalian sudah men-set seperti diatas, penggunaan memory sekarang menjadi sama, lihat Gambar 4

Gambar 4

Meskipun penggunaan memory menjadi sama, tapi (developer lain mengatakan) Glide mengalahkan Picasso dalam hal yang satu ini, karena Glide dapat menghitung otomatis ukuran ImageView disetiap kasus.

Ada satu behavior dari Glide yang dapat merize semua gambar dan menyesuaikan ukurannya menjadi sama, kalian lakukan hal tersebut dengan perintah berikut :

 Glide.with(this).load(url)
                .thumbnail(0.5f)
                .crossFade()
                .diskCacheStrategy(DiskCacheStrategy.ALL).
                into(imageViewGlide);

Keuntungan dari Glide adalah dapat me load dan menampilkan gambar sangat cepat dibandingkan picasso. Terkadang di Picasso image akan seperti terlihat delay saat ditampilkan mesikup sudah menggunakan perintah berikut :

//picasso
.noFade();

Gambaran delay masud saya seperti Gambar 5 berikut ini

Gambar 5

Saya sendiri sempat mencoba pertama kali meload aplikasi Picasso vs Glide yang saya buat, dan memang Picasso agak delay menampilkan gambar (tapi hanya sekali, setelah itu saya coba2 lagi keduanya tampil bersamaan, yauda saya cari gif lain sebagai gambarannya)

Namun ada beberapa hal yang bagus diatara keduanya, kalian bisa memilik diantara keduanya, sesuai dengan kebutuhan aplikasi yang kalian buat.

FILE GIF

Jujur saja, untuk yang satu ini Glide unggul mutlak dari Picasso. Kalian dapat mengunakan Glide untuk menampilkan gambar dengan format.gif, sedangkan di Picasso tidak. Lihat Gambar 6

Gambar 6


UKURAN LIBRARY

Picasson (v2.5.1) memiliki ukuran sekitar 118KB semetara Glide (V3.5.2) memiliki ukuran sekitar 430KB

METHOD COUNT

Method count dari Picasso adalah 840 dan Glide 2678. Beberapa developer mengatakan ukuran method count 2678 merupakan ukuran yang cukup banyak untuk batas method count 65535  dari file Android Dex.

Itu beberapa review dari keduanya, silakan gunakan sesuai kebutuhan project kalian, intinya sama-sama bagus digunakan. Saya pernah menggunakan untuk meload banyak image di listview (semacam protal berita), dan memang saya akui Glide lebih bagus.

Referensi bisa kalian baca disini :
https://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en

https://github.com/bumptech/glide/wiki/Configuration

CONTOH PROJECT

Berikut ini project yang saya buat :

Target API (saya ambil dari androihive.info) :

String url = "http://api.androidhive.info/images/glide/medium/deadpool.jpg";

Tambahkan uses-permission di Androidmanifest.xml kalian


Buat layout.xml nya beri nama activity_main.xml
 


Selanjutnya buat class dengan nama MainActivity.java, kodingannya seperti berikut ini :

Semoga artikel diatas membantu dan bermanfaat, jika ada pertanyaan boleh di comment langsung. happy codding!! have fun!!

(Visited 139 times, 1 visits today)



Baca juga :


About The Author

Related Posts

3 Comments

  1. Dony Nuransyah
    November 29, 2016
  2. Putu Guna
    November 30, 2016
  3. Kristeen
    October 10, 2017

Add Comment

Berlangganan Artikel

Untuk mendaftarkan tutorial pemrograman terbaru dari putuguna[dot]com, silakan tuliskan email kalian dibawah ini