Library Andorid (Volley, Retrofit, Shared Preference, Paypal)

Aisha
4 min readNov 9, 2020

--

VOLLEY

Secara singkat Volley adalah library jaringan yang mengelola permintaan jaringan dan respon cache tanpa harus menulis banyak code. Volley memungkinkan untuk request yang simultan dalam pool of threads yang dapat diberikan prioritas diatas satu sama lain. Di karenakan hasil respon dikirim ke seluruh memori, maka Volley kurang ideal untuk data yang besar hal ini diarahkan untuk permintaan data yang kecil seperti file JSON, gambar, dan file lainnya yang ukurannya tidak terlalu besar seperti lagu atau film.

Dua bagian utama dari Volley:

  1. Request Queue, digunakan untuk mengirimkan permintaan ke jaringan, dapat membuat antrian permintaan pada permintaan sesuai yang diinginkan,
  2. Request, berisi rincian yang diperlukan untuk membuat panggilan web API. Seperti metode yang digunakan (POST atau GET) melewatkan data, penerima respon dan error.

Keuntungan menggunakan Volley:

  • Volley secara otomatis menjadwal permintaan jaringan.
  • Volley menyediakan transparan disk and memory cache.
  • Volley menyediakan pembatalan request API.
  • Volley memberikan kebebasan untuk di custom.
  • Volley menyediakan debuging dan tracing tools.

Kekurangan Volley:

volley kurang ideal untuk data yang besar

Library Volley :

git clone https://android.googlesource.com/platform/frameworks/volley

contoh penggunaan:

Pada Activity function onCreate()

RequestQueue queue = Volley.newRequestQueue(this);

Tambahkan request ke dalam RequestQueue

queue.add(jsObjRequest);

RETROFIT

Retrofit merupakan pustaka type-safe HTTP Client untuk Android, Java, dan Kotlin. Pustaka ini bertujuan untuk merubah bentuk REST API menjadi bentuk interface dalam Java atau Kotlin agar kita dapat lebih mudah dalam mengkonsumsi REST API (berperan sebagai REST client) lewat kode aplikasi untuk kebutuhan transaksi data.

Retrofit menggunakan pustaka OkHTTP sebagai “mesin” untuk dapat berjalan. Jika OkHTTP merupakan pustaka HTTP client biasa maka bisa di katakan lebih “sakti” karena Retrofit memiliki fitur di atas itu. Retrofit memberikan fitur type-safe agar pada saat kita mengkonsumsi REST API di Android menjadi lebih terstruktur dan teratur. Dengan pustaka ini juga, membuat kode yang kita tulis menjadi lebih modular,fleksibel dan mudah untuk di pelihara (maintenance).

Terdapat 3 komponen utama dalam Retrofit, yaitu :

  1. Database
  2. Model
  3. Data Access Object
  • Database merupakan class object (singleton) yang di gunakan untuk mendaftarkan class Data Access Object dan berfungsi sebagai titik akses utama ke remote database (REST API).
  • Model merupakan class yang di gunakan untuk menyimpan suatu nilai atau data. Retrofit membutuhkan class model untuk menyimpan data respon yang di dapat dari REST API.
  • Data Access Object (DAO) merupakan antaramuka (interface) yang di gunakan retrofit untuk akses data dari class client ke remote database (REST API) serta memuat metode yang di gunakan untuk mengakses resourcenya.

Library:

implementation "com.squareup.retrofit2:retrofit: (last version)"
implementation "com.squareup.retrofit2:converter-gson: (last verion)"

Membuat Class Repository

Tahap selanjutnya adalah kita perlu membuat sebuah class repository yang berguna sebagai “jembatan penghubung” antara komponen model yang berupa data class dengan komponen service (DAO) berupa Interface.

object DataRepository {

fun create(): PostServices {
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://jsonplaceholder.typicode.com/")
.build()
return retrofit.create(PostServices::class.java)
}
}

memanggil retrofit dan menggunakan data yang ada di REST API:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)


// get post data
val postServices = DataRepository.create()
postServices.getPosts().enqueue(object : Callback<List<PostModel>> {

override fun onResponse(
call: Call<List<PostModel>>,
response: Response<List<PostModel>>)
{
if (response.isSuccessful) {
val data = response.body()
Log.d("tag", "responsennya ${data?.size}")

data?.map {
Log.d("tag", "datanya ${it.body}")
}
}
}

override fun onFailure(call: Call<List<PostModel>>, error: Throwable) {
Log.e("tag", "errornya ${error.message}")
}
})
}
}

SharedPreferences

SharedPreference adalah sebuah class yang berfungsi sebagai media penyimpanan data primitif pada file internal pada aplikasi dalam bentuk key-value. SharedPreference menyediakan method sederhana untuk membaca dan menulis, kita dapat meggunakan class ini untuk menyimpan nilai-kunci yang relatif kecil.

Salah satu kebutuhan menggunakan SharedPreferences adalah saat user melakukan login pada aplikasi, username dan password bisa kita simpan menggunakan SharedPreferences, jadi saat user keliar aplikasi, user tidak perlu menginputkan kembali username & password untuk bisa mengakses aplikasinya lagi.

Terdapat beberapa media penyimpanan yang bisa kalian gunakan pada Aplikasi Android, seperti SQLite yang digunakan sebagai media penyimpanan atau Database yang digunakan untuk meyimpan data-data yang relatif banyak, SQLite terdiri dari kolom dan baris, didalam SQLite kita bisa mengkategorikan data-data yang disimpan, berdasarkan nama kolomnya.

Shared Preferences pada umumnya digunakan untuk pemyimpanan data yang berukuran kecil, seperti pengaturan aplikasi, usr token, theme, dll. Data tersebut akan tersimpan dalam bentuk file XML di penyimpanan Internal aplikasi Android.

contoh penggunaan:

Di dalam class Preferrences

public static SharedPreferences getSharedPreference(Context
context){
return PreferenceManager.getDefaultSharedPreferences(context);
}

deklarasi kan key

public class Preferences {
static final String KEY_USER_TEREGISTER =
“user”,KEY_PASS_TEREGISTER =”pass”;
static final String KEY_USERNAME_SEDANG_LOGIN =
“Username_logged_in”;
static final String KEY_STATUS_SEDANG_LOGIN =
“Status_logged_in”;
}

Tambahkan code ini untuk semua

public static void setRegisteredUser(Context context, String
username){
SharedPreferences.Editor editor =
getSharedPreference(context).edit();
editor.putString(KEY_USER_TEREGISTER, username);
editor.apply();
}

PAYPAL

Perpustakaan Pembayaran Seluler (MPL) PayPal menyediakan cara yang aman, dapat diperluas, dan dapat diskalakan untuk menambahkan fungsionalitas PayPal ke aplikasi seluler asli Anda. Menggunakan MPL, MPL sepenuhnya mengintegrasikan aliran pembayaran ke dalam aplikasi Anda, dan pelanggan menyelesaikan pembayaran mereka tanpa perlu membuka tampilan web untuk memproses pembayaran.

Dalam aliran panggilan ini:

  1. Aplikasi Anda menginisialisasi perpustakaan.
  2. Perpustakaan menghasilkan tombol Bayar dengan PayPal dan mengembalikan kode tombol untuk ditambahkan ke aplikasi Anda.
  3. Your application sets all of the payment parameters, including the amount, currency, recipient, and any other pertinent details.
  4. When the customer clicks Pay with PayPal, the library initiates the PayPal checkout experience. The library displays a window on top of the app’s Window object.
  5. Setelah pelanggan menyelesaikan pembayaran, perpustakaan mengembalikan panggilan balik ke aplikasi Anda dengan ID transaksi dan status pembayaran. Di sini, pustaka masih mengontrol UI dan belum mengembalikan kontrol ke aplikasi Anda.
  6. Setelah alur perpustakaan selesai, perpustakaan mengembalikan callback ke aplikasi Anda yang menunjukkan bahwa ia melepaskan kontrol UI.

Paypal bisa digunakan oleh semua jenis app yang terdapat flow metode pembayaran (Market Place, Games, Editor Apps, dll.)

--

--

No responses yet