Aplikasi Rumah Fiqih (2) : Overview Aplikasi

Aplikasi Rumah Fiqih versi terbaru saya kembangkan dengan menggunakan IDE Android Studio (beta version). Meski memiliki kekurangan utama waktu build yang masih relatif lambat (mungkin karena masih versi beta), Saya menyukai Android studio karena kita bisa membuat Flavor untuk aplikasi yang kita buat. Dengan menentukan flavor ini saya bisa membuat beberapa versi aplikasi dengan package yang berbeda dalam satu basecode/project yang sama.

    productFlavors{
        admin{
            applicationId "com.hakimlabs.rumahfiqih.admin"
        }
        publik{
            applicationId "com.hakimlabs.rumahfiqih"
        }
    }

Aplikasi Rumah Fiqih ini saya buat dengan dua flavor, yaitu versi publik dan versi admin. Versi publik adalah versi yang tersedia di Google Play Store sedangkan versi admin masih saya sendiri yang menggunakannya. Versi admin pada dasarnya sama dengan versi publik, hanya saja saya menambahkan menu yang memungkinan saya untuk meng-instantiate push notification dari aplikasi. Disamping itu, di versi admin ini saya juga melakukan experimen fitur-fitur yang nantinya bakal saya masukkan ke dalam versi publik.

project structure

Pengembangan aplikasi ini sangat terbantu dengan beberapa project open source, yaitu:
1. Picasso
Picasso adalah library untuk menampilkan image yang dibuat oleh Square Inc. Picasso ini saya pergunakan untuk menampilkan foto ustadz, dan juga snapshot video dari youtube.

	String snapshotUrl = fikrah.getYoutube().substring(fikrah.getYoutube().lastIndexOf("/")+1);
    snapshotUrl = "http://img.youtube.com/vi/"+snapshotUrl+"/0.jpg";
	Picasso.with(mContext).load(snapshotUrl).into(viewHolder);

2. Retrofit
Sebagaimana Picasso, Retrofit juga dibuat oleh developer-developer cerdas yang ada di perusahaan yang didirikan oleh salah satu founder twitter tersebut. Retrofit ini membuat implementasi API client jauh lebih mudah.
contohnya untuk endpoint:
url: API_URL/konsultasi/:kategori/:paging/:page
http method: GET
kita tinggal mendeklarasikan sebuah interface

    @GET("/konsultasi/{kategori}/{paging}/{page}")
    public List<KonsultasiSyariah> getKonsultasiKategori(@Path("kategori") int kategori, @Path("paging") int paging,
            @Path("page") int page);

den mengexecute-nya:

	restAdapter = new RestAdapter.Builder().setEndpoint(API_URL).setErrorHandler(errorHandler)
				.build();

	rumahfiqih = restAdapter.create(IRumahFiqih.class);

	.....
	public List<KonsultasiSyariah> getKonsultasiKategori(int kategori, int paging, int page) {
        return rumahfiqih.getKonsultasiKategori(kategori, paging, page);
    }

3. ListViewAnimations
Ini untuk memberikan animasi saat listview di scroll ke bawah.

4. Crouton
Saya tidak lagi menggunakan Toast untuk menampilkan error message karena berbagai isue. Penggantinya adalah crouton yang akan menampilak error message dengan lebih baik. Penggunaan crouton ini mulai banyak dipakai ketika Cyril Mottier membuat blog tentang ini di sini.

Dengan berbagai library di atas, pengembangan aplikasi Rumah Fiqih jadi jauh lebih cepat dan mudah.