Info Haji adalah hobby project independen yang saya desain, bangun, rilis, dan pelihara sendiri. Aplikasi ini membantu calon jamaah haji Indonesia dan keluarganya memeriksa detail porsi, estimasi keberangkatan, status pembayaran, antrean, kuota, serta berita terkait dari satu antarmuka mobile.
![]()
Kenapa Saya Membuatnya
Aplikasi resmi sudah menyediakan akses ke informasi haji, tetapi menurut saya antarmukanya sulit digunakan. Ketika memeriksa network response menggunakan HTTP Toolkit, saya juga menemukan bahwa API mengembalikan sejumlah field berguna yang tidak ditampilkan oleh aplikasinya.
Gap tersebut menjadi ide produknya: menggunakan data resmi yang tersedia secara lebih lengkap dan menyajikannya melalui pengalaman yang lebih jelas serta terfokus. Info Haji tidak dibuat untuk menggantikan layanan pemerintah di baliknya. Aplikasi ini menjadi alternative client agar informasinya lebih mudah dipahami.
Peran Saya
Saya memegang seluruh project: product direction, interface design, implementasi React Native, data modeling, keputusan privasi, testing, rilis Play Store, repository open-source, dan maintenance. Tidak ada designer, backend engineer, atau QA team terpisah.
Arsitektur
Aplikasi menggunakan React Native CLI 0.79.2 dan TypeScript. Redux Toolkit mengelola application state, sedangkan RTK Query menangani API request dan caching. React Navigation menyediakan struktur navigasi, dan Hermes menjadi JavaScript runtime.
Info Haji tidak memiliki custom backend maupun database. Aplikasi mobile terhubung langsung ke layanan haji resmi Kementerian Agama untuk data jamaah dan haji. Artikel terkait berasal dari NU Online.
Arsitektur langsung ini menjaga hobby project tetap kecil dan menghilangkan data-processing layer tambahan yang seharusnya perlu saya operasikan serta amankan.
Tanggung Jawab Teknologi
| Teknologi | Fungsi |
|---|---|
| React Native CLI | Menjadi native Android application foundation yang saya desain, implementasikan, dan rilis secara independen. |
| TypeScript | Memberikan type safety pada UI components, application state, dan model response API haji yang luas. |
| Redux Toolkit | Mengelola client-side application state dan menjaga state transition tetap predictable pada lookup flow. |
| RTK Query | Menangani direct request ke layanan Kemenag, response transformation, caching, serta loading dan error state. |
| React Navigation | Mengatur navigasi antara layar pencarian, hasil, referensi, dan berita. |
| Hermes | Menjalankan JavaScript bundle aplikasi pada Android. |
| Layanan Haji Kemenag | Menyediakan data resmi jamaah, antrean, keberangkatan, pembayaran, dan operasional haji yang dikonsumsi langsung oleh aplikasi. |
| NU Online | Menyediakan berita haji yang ditampilkan bersama data layanan resmi. |
| HTTP Toolkit | Membantu saya menginspeksi network response dan menemukan field API berguna yang tidak ditampilkan aplikasi resmi. |
| JailMonkey | Mendeteksi perangkat rooted sebagai salah satu lapisan perlindungan informasi pribadi jamaah. |
| Jest | Memverifikasi application logic dan mengurangi regression pada data-processing behavior. |
Mengubah Response Lengkap Menjadi Informasi Berguna
Masalah engineering utamanya bukan mengumpulkan lebih banyak data. API sudah mengembalikannya. Tantangannya adalah memodelkan response yang luas dan mengubah field yang sebelumnya tersembunyi menjadi layar yang tetap mudah dipahami oleh jamaah serta keluarga.
Aplikasi menampilkan identitas porsi, posisi antrean, estimasi keberangkatan Masehi dan Hijriah, kuota provinsi, tahap pembayaran, status cadangan atau istitha’ah, informasi BPIH, detail embarkasi, jadwal penerbangan, kelompok terbang, dan informasi hotel ketika tersedia.
Menempatkan data layer di RTK Query memberi setiap layar model loading, success, dan error yang konsisten. Pendekatan ini juga memisahkan penanganan API response dari presentation sehingga UI dapat fokus pada hierarchy serta readability.
Privasi pada Perangkat Pribadi
Pengecekan porsi dapat mengembalikan informasi pribadi jamaah. Info Haji menyimpan hasil pengecekan di perangkat pengguna untuk kemudahan akses, tetapi saya tidak mengoperasikan server yang menerima atau mengumpulkan data tersebut. Deklarasi keamanan data Google Play mencatat tidak ada pengumpulan maupun pembagian data kepada pihak ketiga.
Saya menambahkan root detection menggunakan JailMonkey dan screen-capture protection untuk mengurangi paparan kasual pada perangkat yang compromised atau digunakan bersama. Kontrol ini menambah privacy friction; bukan jaminan terhadap attacker yang serius.
Quality dan Open Source
Jest melindungi application logic, sementara linting dan pemeriksaan TypeScript mendukung kualitas kode sehari-hari. Source code lengkap tersedia di repository GitHub publik sehingga implementasi serta keputusan teknisnya dapat diperiksa.
Aplikasi ini tidak lagi dipelihara secara aktif. Repository tetap tersedia sebagai rekam jejak product dan engineering work.
Impact
Google Play mencatat lebih dari 1.000 download. Untuk solo hobby project tanpa growth atau marketing team khusus, adopsi tersebut memvalidasi manfaat penyajian informasi resmi haji melalui interface yang lebih lengkap.
Kenapa Ini Penting
Info Haji menunjukkan cara saya menangani product experience yang belum ideal: memeriksa underlying system, menemukan informasi yang belum dimanfaatkan, merancang interface yang lebih jelas, lalu mengirimkan produk lengkap secara independen.