lib/.just_audio_background (which had plugin-registration conflicts with audio_service), I wrote a custom QuranAudioHandler extending BaseAudioHandler, giving full control over lock-screen controls, playlist-scoped playback, and cross-Surah continuity.getPrayerTimesIfPermitted() checks permission status without prompting, falling back to cache or null. The user is never ambushed with a system dialog — a deliberate UX decision for an audience that may be cautious about a religious app requesting location.FlutterError.onError, ErrorWidget.builder, and PlatformDispatcher.instance.onError are all wired with stack_trace demangling, so even web JS stack traces resolve back to Dart file:line:col for source-accurate production diagnostics.firebase_web_registrar_stub.dart / _web.dart via dart.library.html) to keep mobile builds clean while supporting four platforms from one codebase.Posted Jun 9, 2026
Built iQuran app for non-Arabic speakers, featuring Quran reader, audio, and prayer tools.
0
0
Jan 6, 2026 - Ongoing
ICNA Dawah