Guna Cache pada aplikasi Catatan Kredit

Sepintas, cache adalah data yang tersimpan didalam hape. Data ini diambil dari server Google Cloud saat cache kosong atau cache berbeda isinya dengan server. Karena aplikasi ini hanya diakses oleh satu pengguna saja, maka data di server hanya diubah oleh pengguna ybs. Artinya data server tidak berubah kecuali pengguna ybs merubahnya alias melakukan transaksi, penghapusan atau tambah nama. 

Jadi sifatnya data cache disini tidak seperti data chat yang diakses oleh ribuan pengguna yang akan menyebabkan data server berubah ubah terus bagi pengguna lainnya. Yang pastinya data cache akan sering di sinkron kan dengan data server.

Karena keuntungan aplikasi ini hanya memiliki satu pengguna untuk satu data khusus miliknya, maka mudah menggunakan data cache hanya tuk sekedar cetak PDF/CSV ataupun urutkan nama/tanggal dls.

Sehingga saya buatlah untuk hanya akses data cache, karena yakin data tidak akan berubah. Karena saat pengguna melakukan transaksi baru, data cache juga akan diubah otomatis. Bila tidak melakukan apa apa, maka data cache akan pasti selalu sama seperti data server. Jadi data cache adalah data yang ada di memori hape. Dan saya lihat kecil saja. Berkisar 20MByte s/d 100MByte maksimal. Karena itu setelan cache default dari server Google Cloud, hanya memberikan maksimal 100MB, dan saya cek hanya 18MB saja.

Dibawah ini beberapa contoh Source.Cache aplikasi catatan kredit v50.0

public void exportPDF() {
CollectionReference unisRef = db.collection(mUserFb);
PdfDocument pdfDocument = new PdfDocument(); // initial PdfDocument
unisRef.orderBy("name").limit(100).get(Source.CACHE).addOnCompleteListener(task -> {
int noTransaksi = 0;

 dan


public void KreditSet() {
//CollectionReference enengRef = db.collection(mUserFb);
db.collection(mUserFb).get(Source.CACHE).addOnCompleteListener(task -> {
double sumKuKredit = 0.0;

dan

PdfDocument.Page myPage = pdfDocument.startPage(mypageInfo);
Canvas canvas = myPage.getCanvas();
title.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
mRestaurantRef.get(Source.CACHE).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();

Tetapi saat dijalankan, kadang perlu 2x klik, kadang malahan crash.

Setelah cek sana sini di v50.0 ini, akhirnya saya temukan tuk menjaga Source.Cache mendapatkan datanya maka perlu dijagain diakhir task seperti ini

} else {
Log.d(TAG, "get failed with ", task.getException());

Jadi kalau mau lengkapnya adalah :

        mRestaurantRef.get(Source.CACHE).addOnCompleteListener(task -> {

            if (task.isSuccessful()) {

                DocumentSnapshot document = task.getResult();

                    //do stuff here
                    //do other stuff here

            } else {
                Log.d(TAG, "get failed with ", task.getException());
            }
        });

Jadi semua harus ada else nya, agar aplikasi ga ngeloyor aja kalau ga hasil. Jadi spt anak buah yg suka ngeloyor aja ga laporan kalau terjadi kegagalan atau enggak dikerjakan. Nah else dibawah itu, menyuruh untuk membuat laporan kalau gagal atau ga ada data. Nah dia kan jadi malu, langsung kerjakan tugas nya agar laporan nya bagus. Hehehe.
Jadi source cache saya selalu menghasilkan cetak pdf/csv dengan baik dan cepat. Walau masih sekali saya temui laporannya tidak tampil dan layar catatan kredit freeze. Mungkin karena memori/cpu ngambek, langsung saya klik Home, dan buka aplikasi lagi. Eh muncul laporan tapi sudah tidak bisa kirim ke sosmed krn gagal share. Begitu klik cetak, langsung normal kembali. Kalau di game itu layar tersendat atau diam. Karena cpu dan memori hape lagi bingung.

Sekian ulasan mengenai cache yang sangat membantu kecepatan aplikasi catatan kredit v50.0

Terimakasih sudah membaca.


Lanjutan kupas tuntas aplikasi Catatan Kredit

Komentar