mushaf

pub package pub points License: MIT GitHub release

قارئ مصحف جاهز لـ Flutter، بروايتي حفص عن عاصم وورش عن نافع في حزمة واحدة.

الحزمة على pub.dev · الإصدارات على GitHub Releases · المثال في example/

تفتح سورة، تقلب الصفحات، وتضغط ضغطاً مطوّلاً على الآية لتحديدها. من الإعدادات تختار ملء الشاشة أو شكل الكتاب، والتمرير الأفقي أو العمودي، وصفحة واحدة أو صفحتين عندما تكون النافذة عريضة وأفقية. حفص يُرسم بخطوط QCF4، ويمكن تلوين التجويد. ورش يُرسم بخط واحد مع ضبط السطور.

A Flutter mushaf reader for Hafs (QCF4) and Warsh: surah list, page turns, long-press ayah selection, fullscreen or book frame, and a two-page spread on a wide landscape window.

المعاينة

من مثال الحزمة على macOS.

ورش — الفاتحة حفص — الفاتحة
سورة الفاتحة برواية ورش سورة الفاتحة برواية حفص
قائمة السور حفص بالتجويد
قائمة السور والتبديل بين حفص وورش صفحة حفص ملوّنة بالتجويد
تحديد الآية ملء الشاشة
ضغط مطوّل يظلل الآية صفحة حفص بملء الشاشة
إطار الكتاب صفحتان متقابلتان
الصفحة داخل إطار الكتاب حفص، الصفحتان ٤٣ و٤٤

ماذا ترى في القارئ

  • قائمة السور مع البحث، والتبديل بين حفص (604 صفحة) وورش (599 صفحة).
  • تحديد الآية بالضغط المطوّل، مع تمييزها، والانتقال إلى صفحة أو آية.
  • ملء الشاشة، أو إطار كتاب بحواف الصفحات.
  • تمرير أفقي أو عمودي.
  • في النافذة العريضة الأفقية: صفحة واحدة أو صفحتان.
  • شريط مصغّرات للصفحات، أو منزلق يقفز عند الإفلات.
  • ساعة اختيارية، وخلفية سوداء في الوضع الليلي.
  • تلوين التجويد لحفص فقط.

التثبيت

dependencies:
  mushaf: ^0.2.1
import 'package:flutter/material.dart';
import 'package:mushaf/mushaf.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Mushaf.initialize();
  runApp(const MyApp());
}
MushafReader(
  riwayah: MushafRiwayah.hafs,
  initialPage: 1,
  settings: const MushafReadingSettings(),
  onSettingsChanged: (settings) {},
  onAyahLongPress: (ref) {},
)

MushafReaderController.goToPage وgoToAyah ينقلان الصفحة ويميزان الآية. لورش استخدم MushafRiwayah.warsh بعد registerMushafWarsh.

حفص وورش داخل الحزمة

الملفان assets/packs/hafs.zip وassets/packs/warsh.zip جزء من الحزمة. أول استدعاء لـ Mushaf.initialize() يفكّهما على الجهاز، وبعدها حفص وورش جاهزان. لا يحتاج المستخدم إلى تنزيل منفصل.

cd example
flutter run

إن أردت استخدام مجلد خاص بدل الملفات المضمّنة، سجّله قبل initialize:

registerMushafHafsQcf4(localRoot: hafsPackRoot);
registerMushafWarsh(localRoot: warshPackRoot);
await Mushaf.initialize();

الترخيص

كود Dart تحت رخصة MIT. الخطوط ونص القرآن لهما شروط أصحاب الحقوق. راجع LICENSE وNOTICE.md.

للمشاركة في التطوير راجع CONTRIBUTING.md.

Libraries

mushaf
Digital mushaf engine for Flutter (Hafs & Warsh).