Multiple AsyncTask di Android

Hai All, pada kesempatan kali ini saya ingin berbagi pengalaman selama pengembangan aplikasi Android. Kasusnya gini, aplikasi ini mengalami sedikit keanehan saat me-load data dari database dan api. Saat aplikasi ini pertama kali di gunakan berjalan lancar seperti biasanya, tapi berbeda kondisi jika aplikasi dalam mode onPause (ditutupi lockscreen).

Keanehan itu terjadi ketika device Android dibiarkan 3 menit setelah di dalam mode lockscreen dan mengakses aplikasi itu kembali. PopUp loading muncul secara looping tanpa bisa dihentikan, seolah2 aplikasi seperti meload data tidak selesai-selesai. Jika dilihat dari status network ke API, aplikasi tidak hit API sama sekali. Ya, kurang lebih seperti itulah kasusnya.

Setelah di telusuri, ternyata masalah ini muncul karena di Android ada batas maximal AsyncTask jika menggunakan fungsi execute saja. Muncul lah solusi untuk menggunakan Multiple AsyncTask di Android.

Continue reading

Filter Data menggunakan Spinner pada SQLite Database

Tokopedia Spinner

Pada kesempatan kali ini saya ingin berbagi pengalaman sewaktu membuat filter data dari SQLite menggunan Spinner. Tentu teknik ini sangat sering digunakan di banyak aplikasi yang digunakan untuk memfilter data, contohnya kategori pada aplikasi Tokopedia disamping ini.

Nah pada tutorial kali ini saya mencoba mengimplementasikan Spinner ini untuk memfilter data dari SQLite Database. Untuk memulainya, buat lah empty project baru, disini saya memberi nama projectnya dengan “SpinnerFilterSQLite”. So check this tutorial:

Continue reading

ViewHolder Pattern di Android

Berawal dari rasa penasaran, kenapa ViewHolder pattern ini sering digunakan pada banyak aplikasi yang menampilkan ListView di Android, akhirnya saya menemukan alasannya. Yaitu untuk meningkatkan performa dari ListView dengan AdapterViews di Android. Postingan ini merupakan seri lanjutan dari pembahasan sebelumnya, dimana pada pattern ini AdapaterViews menggunakan Adapter untuk mendaur ulang tampilan yang ada di AdapaterView agar konten otomatis diperbaharui ketika dibutuhkan.

AdapterView
AdapterView

Jika kita membuat aplikasi android dengan ListView tanpa menggunakan ViewHolder, salah satu masalah terbesarnya performa dan efisiensi. Karena cara kerja dasar ListView tanpa ViewHolder ini akan melakukan pemanggilan berulang untuk setiap item data menggunakan findViewById(). Yang artinya ini sangat mempengaruhi performa dari aplikasi saat meload data. Gampangnya gini, misalnya ketika Adapter mengembalikan nilai untuk di tampilkan, kita harus melakukan pencarian “by Id” untuk elemen yang baru agar terus update secara terus menerus.

Continue reading

Membuat Expand ListView Material Design di Android

Hai All, di sharing kali ini kita akan membuat aplikasi sederhana untuk menampilkan expand list view, berbeda dengan listview sebelumnya. Di tutorial kali ini kita tidak akan menggunakan library mana pun, karena framework yang disediakan oleh Android sudah powerfull untuk menampilkan expand listview standar menurut saya. Class yang digunakan untuk mengimplementasikannya adalah class Adapter. Jadi mari kita langsung saja mencobanya.

Continue reading