Skip to content

mdarif/Al-Tawheed

Repository files navigation

Sharah Kitab al-Tawheed — شرح کتاب التوحید

CI codecov

Al Marfa Duroos — a free offline-first audio app for the complete Sharah Kitab al-Tawheed lecture series by Shaikh Abdullah Nasir Rahmani Hafizahullah. Stream or download all 50 lectures, follow the structured study programme class by class, and listen with full lock-screen and notification controls.

kitabattawheed.com  ·  Play Store  ·  YouTube — Al Marfa Duroos  ·  Al Marfa Technologies


Welcome screen    Audio player    Home screen


Features

  • 50 lectures · 27+ hours — the complete Sharah Kitab al-Tawheed series
  • Offline playback — download any lecture for listening without a connection
  • Study Mode — 15 structured classes to work through the series systematically
  • Background audio — lock-screen controls and notification transport on Android and iOS
  • Multilingual — English, Urdu, and Roman Urdu interface
  • Daily Benefit — a rotating Quranic reminder on the home screen
  • Bookmarks — save any lecture to revisit later
  • Variable speed — 0.75× to 2.0× playback

Architecture

UI screens never talk to services directly — all shared state flows through provider/ChangeNotifier providers, which wrap the services that do networking, persistence, and playback. lib/app.dart wires the full provider tree with explicit dependency ordering.

lib/
  app.dart, app_config.dart, main.dart   # App shell, remote config, entry point
  screens/                               # Routed pages (home, player, library, settings …)
  widgets/                               # Reusable UI pieces (lecture tiles, offline sheet …)
  providers/                             # ChangeNotifier state: catalog, downloads, progress,
                                         #   connectivity, language, theme, feature flags …
  services/                              # Networking, persistence, downloads, notifications
  audio/                                 # just_audio / audio_service integration
  models/                                # Data classes (lecture/catalog, announcements …)
  theme/                                 # AppColors, ThemeData, Typography
  l10n/                                  # Localization resources (ARB files)

Remote config — all brand strings, feature flags, and content URLs are driven from a CDN JSON file (app-config.json). Branding and feature changes require no app release.

Offline-firstConnectivityProvider and DownloadsProvider drive download state. RemoteContentService serves the catalog with a stale-while-revalidate strategy so the app always opens instantly.

SingletonsPreferencesService, CatalogService, and DownloadNotificationService are singletons (.instance) rather than constructor-injected. They must be initialised synchronously before the MultiProvider tree is built — this is a deliberate exception, not an oversight.


Local Setup

flutter pub get
flutter run -d <device-id>

Android release signing requires android/key.properties (gitignored). See docs/setup.md for the full environment setup including signing and platform-specific notes.


Testing

flutter test                                         # unit + widget tests
flutter test integration_test/app_test.dart -d <id> # end-to-end on device

Documentation

Setup Environment, dependencies, signing
CI/CD Pipelines, pre-push hook, release workflow
Deployment Build & machine setup guide
Release Runbook Step-by-step production release process
Git workflow Branching, commits, PRs
Testing Running and writing tests
i18n architecture Multilingual content strategy
Remote content strategy Catalog/announcement caching
Troubleshooting Common errors and fixes

Built by Al Marfa Technologies  ·  kitabattawheed.com

About

Al Marfa Duroos — a free, offline-first Android/iOS app for the complete Sharah Kitab al-Tawheed audio lecture series by Fazilat Shaikh Abdullah Nasir Rahmani Hafizahullah. Stream or download all 50 lectures, follow the structured study programme, and listen with full lock-screen controls.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors