✦ Selamat Idul Fitri 1447 H 🌙 Taqabbalallahu minna wa minkum. Mohon maaf lahir dan batin. ✦
ALFAkwt

Menghadirkan Kitab Safinatun Najah di HP Lama

· Diperbarui 26 Mar 2026 · 0 komentar · ± 4 menit baca · 👁 631 dilihat

Menghadirkan Kitab Safinatun Najah di HP Lama — Perjalanan Membuat Aplikasi Fiqih yang Ringan dan Indah

Berawal dari banyaknya permintaan teman-teman yang masih menggunakan HP lama dengan RAM terbatas, saya akhirnya memutuskan untuk membuat aplikasi Kitab Safinatun Najah Lite — sebuah aplikasi fiqih Islam yang dirancang khusus agar bisa berjalan mulus bahkan di HP dengan RAM 256MB sekalipun.

Kitab Safinatun Najah (سَفِيْنَةُ النَّجَاةِ) atau "Perahu Keselamatan" adalah kitab fiqih ringkas mazhab Syafi'i yang sangat populer di pesantren dan madrasah seluruh Indonesia. Kitab karya Syaikh Salim bin Samir Al-Hadhrami ini memuat dasar-dasar ibadah yang wajib diketahui setiap Muslim — mulai dari thaharah, shalat, zakat, hingga puasa Ramadan.


Kenapa Dibuat Versi "Lite"?

Masalahnya sederhana. Banyak aplikasi kitab yang sudah ada ternyata terlalu berat — penuh fitur yang tidak perlu, ukuran besar, dan sering force close di HP lama. Padahal justru pengguna HP lama inilah yang paling membutuhkan akses mudah ke ilmu agama.

Dari situ muncul pertanyaan: Bisakah membuat aplikasi kitab yang benar-benar ringan, tapi tetap indah dan lengkap?

Jawabannya: bisa — asal tahu caranya.


Filosofi Desain: Sesederhana Mungkin, Seringan Mungkin

Sejak awal, saya menetapkan beberapa prinsip yang tidak boleh dilanggar:

  • Tidak ada database runtime — semua 68 bab disimpan sebagai data hardcoded di dalam kode Dart, bukan file SQLite yang harus dibuka saat runtime
  • Tidak ada network request untuk konten — 100% offline, kecuali untuk iklan AdMob
  • Tidak ada library besar — custom HTML renderer sendiri tanpa flutter_html, custom ornamen tanpa package eksternal
  • ListView.builder wajib — hanya render item yang terlihat di layar, bukan semuanya sekaligus
  • Const constructor di mana-mana — Flutter tidak akan rebuild widget yang tidak berubah

Hasilnya? Ukuran APK hanya sekitar 6-7 MB dan penggunaan RAM saat berjalan normal hanya sekitar 35-50 MB.


Tampilan yang Tidak Biasa

Saya tidak mau tampilan aplikasi ini terlihat seperti aplikasi generik. Karena ini kitab Islam, tampilannya harus mencerminkan nuansa manuskrip Islam klasik — hangat, tidak menyilaukan, dan ada sentuhan ornamen yang indah.

Palet warna yang dipilih:

  • Background krem parchment #F5F0E8
  • Hijau teal Islamic #2D6A4F
  • Emas #C9A84C
  • Teks coklat tua #3D2B1F

Semua ornamen — mulai dari header, divider, hingga frame teks Arab — dibuat menggunakan SVG CustomPainter langsung di Flutter. Tidak ada gambar PNG, tidak ada asset berat. Ornamen bintang 8 sudut, garis emas, sudut dekoratif — semuanya digambar secara programatik.

Font Arab yang digunakan adalah Amiri — font kaligrafi Naskhi yang elegan dan nyaman dibaca, tersedia gratis dari Google Fonts.


Fitur yang Ada

Meskipun "lite", aplikasi ini cukup lengkap untuk kebutuhan sehari-hari:

  • 📖 68 bab lengkap — teks Arab, transliterasi Latin, terjemah Indonesia, penjelasan
  • 🔍 Pencarian cepat — filter berdasarkan judul, latin, atau isi terjemah
  • 🔖 Penanda (Bookmark) — tandai bab favorit, tersimpan permanen
  • 🔤 Ukuran font — pilih kecil, sedang, atau besar sesuai kenyamanan
  • ⬅️ Navigasi antar bab — tombol Sebelumnya dan Selanjutnya di setiap halaman detail

Tantangan Teknis yang Menarik

Salah satu tantangan terbesar adalah merender konten penjelasan yang formatnya HTML — ada tag <h3>, <h4>, <p>, <ul>, <li>, dan <div class="arabic">. Solusi paling mudah adalah pakai package flutter_html, tapi itu cukup berat.

Akhirnya saya memutuskan membuat custom HTML renderer sendiri menggunakan regex parser sederhana. Hasilnya jauh lebih ringan dan sudah cukup untuk menangani semua tag yang ada di data kitab.

Tantangan lain adalah kompatibilitas Gradle. Flutter terus berkembang dan setiap versi baru membawa perubahan sistem build. Versi Flutter terbaru sudah tidak support cara lama apply from: app_plugin_loader.gradle — harus migrasi ke declarative plugins block. Ini yang sering membuat developer pemula bingung saat project tiba-tiba gagal build setelah update Flutter.


Kompatibilitas Device

Aplikasi ini bisa berjalan di:

  • Minimum: Android 5.0 Lollipop (API 21) — dibatasi oleh Google AdMob
  • Maksimum: Android 15 (API 36) — dan tetap kompatibel ke depan

Artinya menjangkau hampir 98% device Android aktif di Indonesia saat ini — termasuk HP-HP lama yang masih banyak dipakai.


Niat dan Harapan

Aplikasi ini dibuat gratis, dan insyaAllah akan selalu gratis untuk kontennya. Ada iklan banner kecil di bawah layar — itu hanya untuk menutup biaya pengembangan dan memotivasi agar terus diperbarui.

Yang paling penting, aplikasi ini dibuat dengan niat menyebarkan ilmu agama yang bermanfaat. Setiap orang yang membuka aplikasi ini dan mengamalkan isinya, insyaAllah menjadi amal jariyah.

Semoga bermanfaat untuk umat, dan menjadi amal jariyah untuk semua yang terlibat dalam pembuatannya.

آمِيْن يَا رَبَّ الْعَالَمِيْن


Download aplikasi: Segera tersedia di Google Play Store.


Komentar

Belum ada komentar. Jadilah yang pertama menulis.

Tulis Komentar