August 21st, 2012
8 Comments

Cerita Dibalik Romadon

18 Juli 20012 18:00

Jakarta saat itu sangat macet dikarenakan menjelang bulan puasa akan dimulai dan demonstrasi pekerja salah satu swalayan terkemuka menjadi padanan yang sempurna untuk menikmati Jakarta sebenarnya. Sementara itu di kantor Departemen Agama RI sedang berlangsung sidang isbat untuk menentukan tanggal 1 Ramadhan. Saya yang sedang menikmati riuhnya Jakarta bersama @sibungsu tiba-tiba mendapat ide untuk membuat aplikasi.

Awalnya ide sederhana, saya hanya ingin membuat sebuah aplikasi jadwal puasa untuk iOS yang mudah digunakan dengan tampilkan dan paket yang menarik. Selama ini saya pernah diperlihatkan jadwal puasa selama satu bulan dalam bentuk tabel. Membosankan bukan? Melihat tabel jadwal yang berisi angka dan selisih angkanya hanya beda beberapa menit tiap harinya. Langsung saja saat itu saya diskusi dengan @ifranseda melalui iMessage sambil membuat sketsa sederhana menggunakan Paper. Memang dasarnya pengembang aplikasi iOS handal, saat itu juga @ifranseda mengatakan aplikasi ini mudah diwujudkan. ‘Cetek!’ katanya.

Rancangan Awal

Desain Antarmuka

Seperti yang tertera pada sketsa pertama, informasi yang diperlihatkan hanya beberapa poin utama: posisi matahari, lokasi pengguna, jam saat ini dan jadwal puasa (maghrib dan imsak). Ide ini saya dapatkan setelah memperhatikan tabel-tabel jadwal puasa dan beberapa aplikasi yang sudah ada kemudian saya coba memposisikan diri sendiri sebagai pengguna aplikasi yang sedang berpuasa. Ternyata saya mendapat kesimpulan bawah pengguna aplikasi ini nantinya tidak akan perduli dengan data sebanyak satu bulan. Kebanyakan orang yang berpuasa itu hanya ingin tahu jam buka puasa dan imsak untuk hari ini dan besok. Tolong koreksi saya jika salah.

Data dan Sistem

Disaat saya mulai bekerja membuat antarmuka aplikasi, ditempat yang berbeda @ifranseda memulai mencari data jadwal puasa. Referensi data yang terlintas pertama kali adalah mengambilnya dari situs Departemen Agama, apa dikata ternyata sulit mendapatkan data jadwal puasa dari situs tersebut. Hingga akhirnya kami menemukan sebuah situs LebahNdut, di situs ini kami menemukan data lengkap untuk hampir seluruh kota di Indonesia.

Dari situs tersebut @ifranseda mulai bekerja menkonversi data yang masih berbentuk tabel menjadi database karena nantinya aplikasi akan memanggil data tiap harinya melalu API. Alur sistem pada rancangan awal adalah tiap hari aplikasi akan meminta data ke server lewat API lalu API akan mengembalikan data sesuai permintaan aplikasi. Tampak boros sih, tapi ini adalah strategi supaya aplikasi cepat jadi dan mudah diwujudkan.

Kendala dan Penemuan Ide Baru

Saat kami sedang bekerja, tiba-tiba kami teringat bahwa kami berdua tidak memiliki akun bersertifikat developer di AppleStore jadi tidak mungkin menaruhnya di AppleStore tanpa akun tersebut. Hingga akhirnya kami berdua memutuskan meminta ijin ke mas @MySetiawan salah satu pendiri Agrisoft untuk menggunakan akun Agrisoft. Kebetulan pula disaat yang bersamaan kami sedang bekerjasama untuk mengembangkan aplikasi yang lainnya (ssstt… sebut saja namanya GeoKuliner).

Tak lama, mas @MySetiawan pun langsung mengijinkan kami menggunakan akun mereka tanpa ragu, disinilah mulai masuknya ide-ide baru. Ketika mengetahui rencana aplikasi yang sedang kami buat tiba-tiba mas @MySetiawan dan @firnas memberikan ide brilian! Idenya adalah aplikasi tidak perlu meminta data tiap hari ke server karena sebenarnya data jadwal puasa atau tepatnya jadwal shalat 5 waktu itu bisa didapatkan melalui perhitungan. Awalnya saya tidak pernah terpikir kalau jadwal shalat itu dapat ditentukan melalui perhitungan tapi setelah mendengarkan penjelasan @MySetiawan dan @firnas akhirnya saya dan @ifranseda pun memutuskan untuk merubah sistem aplikasi.

Kali ini aplikasi tidak perlu lagi meminta data ke server tetapi aplikasi dapat bekerja sendiri melakukan perhitungan jadwal shalat. Perhitungan jadwal puasa di tiap-tiap kota itu berbeda tetapi hal ini menjadi mudah karena aplikasi dapat membaca posisi pengguna saat itu melalui GPS. @firnas yang saat itu paham soal perhitungan ini, langsung melakukan riset dan mencari referensi sana-sini. Akhirnya dia menemukan situs praytimes.org, website ini ternyata memberikan penjelasan bagaimana perhitungan jadwal shalat itu dilakukan. Tak hanya itu PrayTimes juga langsung menyediakan library sesuai apa yang kami inginkan salah satunya Objective-C, jadi kalau ada yang mau membuat aplikasi yang sejenis cobalah buka PrayTimes.org. Viola! anda akan mengerti gimana sebenarnya perhitungan jadwal shalat itu dilakukan.

Implementasi

Aplikasi ini terdiri dari 4 mode warna, biru telor-asin untuk pagi, jingga untuk siang, biru gelap untuk malam dan biru kehitaman untuk dini hari. Tak hanya itu mode warna itu pun saya buat dengan gradasi menaik (dari terang ke gelap) dan menurun (dari gelap ke terang), gradasi menaik bisa dilihat pada malam dan dini hari sedangkan gradasi menurun bisa dilihat pada pagi dan siang hari. Dengan menambah elemen matahari dan bulan yang bisa naik dan turun sesuai dengan posisi matahari membuat pengguna tidak perlu sulit membaca jam saat itu.

Membuat aplikasi sederhana itu tidak sederhana karena akan berbenturan dengan keinginan dan kebiasaan pengguna. Dari beberapa hasil diskusi dengan tim dan coba memperlihatkan desain sementara ke beberapa orang ternyata kami mendapat masukan untuk tetap mengapresiasi pengguna yang ingin melihat jadwal puasa tidak hanya hari ini dan besok tapi jadwal puasa selama sebulan. Oleh karena itu kami membuat aplkasi dalam 2 mode orientasi, mode orientasi potret untuk melihat jadwal hari ini dan mode orientasi lanskap untuk melihat jadwal penuh selama sebulan. Cara ini ternyata cukup efektif sehingga antarmuka tidak perlu menggunakan banyak tombol untuk membuka fitur ini.

Disamping itu kami juga menambahkan fitur konfigurasi pengingat, dimana pengguna dapat melakukan konfigurasi pengingat untuk semua jadwal shalat atau untuk sebagian saja.

Mengunggah ke AppleStore & Memulai Android

Sebelum kami memutuskan untuk mengunggah aplikasi ke AppleStore kami melakukan uji coba ke beberapa teman untuk menggunakan aplikasi dengan cara mengundang mereka melalui TestFlight. Dari situ kami mendapat masukan lagi hingga akhirnya produk final kami paket dan kirim ke AppleStore. 24 Juli 2012, kami mulai mengunggahnya ke AppleStore. Menunggu aplikasi disetujui oleh AppleStore relatif lama karena ada proses ‘pending for review’ dan ‘review’ mungkin dengan cara inilah Apple mengontrol aplikasi yang masuk.

Sambil menunggu proses review dari AppleStore beberapa teman di Twitter meminta aplikasi yang kami buat itu tersedia untuk Android, akhirnya kami memutuskan untuk membuat aplikasi versi Android. Untuk versi Android kali ini kami membangunnya dengan menggunakan PhoneGap sebagai pembungkus, hal ini dikarenakan kami tidak punya orang yang ahli membangun aplikasi di Android. Lagi pula dengan PhoneGap kami lebih mudah membangun aplikasi dengan desain yang hampir sama di iOS dengan menggunakan HTML5 dan CSS3 yang dibantu oleh @hazmi.

3 Agustus 2012 akhirnya AppleStore menyetujui aplikasi yang kami bangun dan kami mulai memperkenalkan aplikasi ini dengan nama Romadon. Dibutuhkan waktu 8 hari untuk lolos dari proses review AppleStore, cukup lama tapi kami merasa senang pada saat mendengar kabar aplikasi ini lolos dari proses tersebut. Tidak lama setelah itu, kami mulai melakukan finalisasi Romadon untuk versi Android. Untuk versi Android ini tidak dibutuhkan waktu yang lama hingga disetujui dan dipajang di GooglePlay. Tidak perlu 1 hari penuh setelah diunggah Romadon versi Android pun sudah bisa diunduh, tepatnya pada tanggal 5 Agustus 2012.

Setelah Romadon bisa diunduh dan digunakan oleh banyak orang, akhirnya kami menerima dapat masukan yang lagi-lagi membuat kami senang. Satu per satu masukan tersebut kami simpan dan berusaha memperbaiki Romadon, meski tidak semua masukan kami respon tapi kami cukup senang dengan respon yang ada, setidaknya ini respon tersebut memperlihatkan keperdulian mereka terhadap aplikasi ini.

Pengalaman Terbaik!

Mungkin inilah pengalaman terbaik saya dalam membangun aplikasi mobile. Selain bekerjasama dengan orang-orang yang cukup hebat dibidangnya masing-masing, saya pun belajar banyak hal tentang menghitung jadwal shalat. Terima kasih buat @ifranseda, @MySetiawan, @firnas, @hazmi dan tim Agrisoft yang sudah sama-sama mewujudkan aplikasi ini. Mari kita bikin aplikasi baru lagi!