Muslim
Your daily Islamic essentials, offline
An offline Islamic companion in Flutter: Quran reader with bookmarks, azkar, duas, hadiths, prophets' stories, tasbeeh, Hijri calendar, prayer times and Qibla.
- Country
Egypt
- Type
- Source code
- Timeline
- 2020
- Platforms
- Android · iOS
Overview
Muslim puts the daily essentials in one place: the Holy Quran, the Prophet's hadiths, morning and evening azkar, duas, stories of the prophets and companions, an electronic tasbeeh, a Hijri calendar, prayer times and a Qibla compass.
It works without an internet connection, with every text and the Mushaf shipped inside the app. Built solo in 2020 as one of Mahmoud's first published Flutter apps, it was released on Google Play and is now shared with full source.
The challenge
- 01
Users kept several single-purpose apps for Quran, azkar, prayer times and Qibla on their phones.
- 02
Many of those apps needed internet or were full of ads; the goal was a simple, offline, ad-free app.
- 03
Arabic religious text needs right-aligned layout and clean typography to stay readable.
Highlights
Quran
- Full Mushaf bundled as a PDF with a surah index loaded from JSON.
- Search by surah name.
- Resumes at the last page read, with a bookmark to jump back to.
- Keeps the screen awake and remembers the reading brightness.
Azkar, duas and stories
- Morning, evening and general azkar.
- Prophets' duas, assorted duas and duas for the deceased.
- Tasbeeh phrases and a list of the Prophet's hadiths.
- Prophets' stories from Adam to Muhammad, plus the companions and caliphs.
Tools
- Prayer times calculated on the device with the PrayTimes algorithm, no API.
- Qibla compass with a location-error state and a map fallback on devices without a compass sensor.
- Hijri calendar with an Umm al-Qura date picker.
- Electronic tasbeeh counter with haptic feedback.
Signature feature
Works with no internet
- Quran: the Mushaf is a bundled PDF.
SurahListBuildermaps each surah to its page,SurahViewBuilderopens it there, and the last viewed and bookmarked pages persist inSharedPreferences. - Prayer times: a pure Dart PrayTimes implementation handles calculation method, Asr juristic method, high-latitude adjustment and per-prayer offsets, using only coordinates and a time zone.
- Texts: azkar, duas, hadiths and stories are Dart lists, so they load instantly with no database.
Screens
Engineering notes
- 01
Offline by design
No backend and no API keys: the Mushaf, the surah index and all texts are bundled assets, so the app opens instantly and works anywhere.
- 02
Reading continuity
The Quran reader saves the last viewed page and the bookmark, and a floating button on the index jumps straight to the bookmark.
- 03
Sensor-driven Qibla
The app checks for a compass sensor and falls back to a map without one. Location status flows through a
StreamController<LocationStatus>, showing a retry widget instead of a broken compass. - 04
Configurable prayer location
Prayer location is a build-time setting via
--dart-define, defaulting to Cairo, so a version for any city builds without code changes.
Results
- Published on Google Play as
com.anashaker.islam; the listing is no longer live, so no install numbers are claimed. - With Flutter 2.10.5,
flutter analyzereports 0 errors and 0 warnings on the 2020 codebase.
Stack
- Flutter
- Dart
- native_pdf_view
- SharedPreferences
- PrayTimes
- flutter_qiblah
- geolocator
- Google Maps
- hijri_picker
- vibration
- flutter_svg