Skip to content
All projects
Source code Open sourceOwn products

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
Muslim app banner

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

  1. 01

    Users kept several single-purpose apps for Quran, azkar, prayer times and Qibla on their phones.

  2. 02

    Many of those apps needed internet or were full of ads; the goal was a simple, offline, ad-free app.

  3. 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. SurahListBuilder maps each surah to its page, SurahViewBuilder opens it there, and the last viewed and bookmarked pages persist in SharedPreferences.
  • 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.

Engineering notes

  1. 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.

  2. 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.

  3. 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.

  4. 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 analyze reports 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