Tutorial Cara Menggunakan Library Volley Di Android Studio Part 1

Perkembangan dunia pemrograman aplikasi android sangatlah cepat begitu juga dengan munculnya berbagai library yang dapat mempersingkat serta mempermudah dalam implementasi code program. Kali ini pembahasan pada posting kali ini yaitu tentang bagaimana membuat aplikasi android yang bisa mengakses data dari internet baik itu berupa data json, string, maupun gambar. Perlu diperhatikan bahwa dalam mengakses data melalui internet, sebenarnya kita dapat menggunakan HttpClient atau Httpconnection namun harus diimplementasikan secara asyncronous alias berjalan di background dengan thread yang berbada dengan aktivitynya. Banyak code yang harus dituliskan jika menggunaka keduanya, bahkan cukup ribet apalagi buat pemula yang baru belajar pemrograman android.



Namun sekarang sudah ada banyak library-library yang memudahkan implementasi code program untuk mengakses data dari internet, salah satunya yaitu volley. Pada library ini juga terdapat fitur untuk mencache data yang telah diakses agar meringankan beban akses internetnya jikalau request ulang dilakukan. Dan untuk menggunakan library ini pada android studio sangatlah mudah tinggal import modul pada gradle, bisa mode jar fil maupun maven yang sudah tersedia di repository.

Sekarang kita mulai dalam pembahasan, langkah awal yang perlu dilakukan yaitu mengimport library volley tersebut dengan cara masukk gradle pada projek, kemudian tambahkan code program di bawah ini pada dependencies :

compile 'com.mcxiaoke.volley:library:1.0.19' 

Setelah library telah ditambahkan maka selanjutnya buat pengontrol cachenya terlebih dahulu dengan membuat class baru beri nama LruBitmapCache.class dan berikut script lengkapnya :

import com.android.volley.toolbox.ImageLoader.ImageCache;
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;

public class LruBitmapCache extends LruCache implements ImageCache {
 public static int getDefaultLruCacheSize() {
  final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
  final int cacheSize = maxMemory / 8;
  return cacheSize;
 }
 public LruBitmapCache() {
  this(getDefaultLruCacheSize());
 }
 public LruBitmapCache(int sizeInKiloBytes) {
  super(sizeInKiloBytes);
 }
 @Override
 protected int sizeOf(String key, Bitmap value) {
  return value.getRowBytes() * value.getHeight() / 1024;
 }
 @Override
 public Bitmap getBitmap(String url) {
  return get(url);
 }
 @Override
 public void putBitmap(String url, Bitmap bitmap) {
  put(url, bitmap);
 }
}

Selanjutnya membuat controller pada projek aplikasi tersebut, dengan membuat class baru dan beri nama AppController.class dimana class tersebut direferensikan dengan Application. Untuk lebih jelasnya silahkan copy paste aja script di bawah ini :

import android.app.Application;
import android.text.TextUtils;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import (nama package anda).LruBitmapCache;

public class AppController extends Application {

    public static final String TAG = AppController.class.getSimpleName();
    private RequestQueue mRequestQueue;
    private ImageLoader mImageLoader;
    LruBitmapCache mLruBitmapCache;
    private static AppController mInstance;
    @Override
    public void onCreate(){
        super.onCreate();
        mInstance = this;
    }
    public static synchronized AppController getInstance() {
        return mInstance;
    }
    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }
        return mRequestQueue;
    }
    public ImageLoader getImageLoader() {
        getRequestQueue();
        if (mImageLoader == null) {
            getLruBitmapCache();
            mImageLoader = new ImageLoader(this.mRequestQueue, mLruBitmapCache);
        }
        return this.mImageLoader;
    }
    public LruBitmapCache getLruBitmapCache() {
        if (mLruBitmapCache == null)
            mLruBitmapCache = new LruBitmapCache();
        return this.mLruBitmapCache;
    }
    public <T> void addToRequestQueue(Request <T> req, String tag) {
        req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
        getRequestQueue().add(req);
    }
    public <T> void addToRequestQueue(Request <T> req) {
        req.setTag(TAG);
        getRequestQueue().add(req);
    }
    public void cancelPendingRequests(Object tag) {
        if (mRequestQueue != null) {
            mRequestQueue.cancelAll(tag);
        }
    }
}

Pastikan dalam membuat kedua class diatas telah berhasil tanpa adanya error, karena kedua class diatas berfungsi sebagai controller dari penggunaan library volley tersebut. Langkah berikutnya yaitu menambahkan android:name pada applications dan permission internet di manifestnya, berikut contoh penulisannya :

<uses-permission android:name="android.permission.INTERNET" />
<application 
       android:name="(nama package anda).AppController" 
       android:allowbackup="true" 
       android:icon="@drawable/icon_apps" 
       android:label="@string/app_name" 
       android:supportsrtl="true" 
       android:theme="@style/AppTheme">

       * * * * *

</application>

Sampai disini persiapan awal penggunaan volley telah selesai, selanjutnya tinggal penerapan fitur-fitur yang ada pada volley seperti image loader, jtring request, maupun json request . Namun untuk pembahasan penggunaannya akan di bahas diposting part yang selanjunya.

Tutorial Cara Menggunakan Library Volley Di Android Studio Part 2
Tutorial Cara Menggunakan Library Volley Di Android Studio Part 3

Post a Comment