Membangun Istiqomah: App Habit Tracker Tanpa Server dan Tanpa Akun

Istiqomah lahir dari kebutuhan sederhana: saya pengen aplikasi pelacak ibadah harian yang nggak ribet — nggak perlu bikin akun, nggak ada iklan, dan yang paling penting, data pribadi nggak perlu dikirim ke server manapun. Ide ini sebenarnya berangkat dari rasa nggak nyaman pribadi tiap install app sejenis dan nemuin permission request yang kebanyakan buat fitur sesederhana ini.
Prinsip desain
Prinsip desainnya saya bangun dari konsep atomic habits: mulai kecil, catat tanpa ribet, lihat progres bertumbuh. Fiturnya termasuk checklist ibadah harian, jadwal shalat akurat (berbasis GPS atau pilih kota manual), kompas kiblat, Al-Qur’an digital 114 surah dengan terjemahan, kalender Hijriyah dengan penanda puasa, dan tracking progres lewat streak serta heatmap ala GitHub contribution graph.
Tantangan teknis: arsitektur tanpa backend
Tantangan terbesarnya justru bukan soal fitur, tapi soal arsitektur “no-backend”: semua data — jadwal shalat, progres, preferensi — harus dihitung dan disimpan sepenuhnya di device, tanpa API call ke server manapun buat data personal. Buat jadwal shalat, ini artinya saya nggak bisa cuma manggil API kayak kebanyakan app lain; saya pakai library astronomical calculation lokal yang ngitung posisi matahari berdasarkan koordinat GPS device. Tantangannya baru kelihatan pas testing di lokasi dengan lintang tinggi — beberapa metode kalkulasi klasik (Umm al-Qura, MWL, dan sejenisnya) mulai ngasih hasil yang aneh atau nggak konsisten di daerah yang deket kutub, karena asumsi posisi matahari yang dipakai metode-metode itu awalnya didesain buat lintang menengah. Saya harus riset dan pilih fallback method yang paling masuk akal buat edge case itu, meskipun realistis mayoritas user saya kemungkinan besar nggak pernah ada di lintang seekstrem itu.
Kenapa native, bukan cross-platform
Saya bangun versi native buat iOS (Swift) dan Android (Kotlin) — bukan cross-platform framework — supaya bisa pakai sensor kompas device secara langsung buat fitur arah kiblat, dan optimasi performa maksimal di masing-masing platform. Kompas itu salah satu fitur yang paling sensitif ke kalibrasi sensor spesifik tiap device, dan saya nggak mau ambil resiko akurasi berkurang gara-gara lapisan abstraksi tambahan.
Trade-off privasi vs kemudahan
Keputusan “no account, no server” ini ada harganya juga: nggak ada sync antar device — kalau user ganti HP, progres streak-nya nggak otomatis pindah — dan saya nggak bisa ngasih fitur social kayak “lihat progres teman” karena itu butuh server buat nyimpen data orang lain. Saya sadar itu ngurangin sebagian fitur yang mungkin bikin app-nya lebih “sticky”. Tapi buat app yang nyentuh data ibadah pribadi, saya lebih milih user percaya penuh sama app-nya daripada ngejar engagement metric yang butuh data mereka dikirim ke suatu tempat.
Hasilnya: aplikasi yang ringan, cepat, dan nggak mengorbankan privasi penggunanya demi kemudahan development. Bukan app yang paling banyak fiturnya dibanding kompetitor, tapi app yang saya sendiri percaya buat dipakai tiap hari.