تطبيق flutter لمعرفة اتجاه القبلة بتصميم بسيط
يهدف هذا التطبيق إلى توفير طريقة بسيطة وسهلة لمعرفة اتجاه القبلة. يعتمد التطبيق على مكتبة Geolocator لتحديد موقع المستخدم، ومكتبة QiblaDirection لحساب اتجاه القبلة.
لماذا تطبيق معرفة القبلة مهم؟
- – سهولة للمستخدمين أثناء السفر أو في أماكن جديدة.
- – ضرورة دينية يومية لكثير من المسلمين.
- – تطبيق خفيف لا يستهلك بيانات أو موارد كثيرة.
- – يمكن توسيعه لاحقًا لإضافة منبهات للصلاة، خرائط، أو مشاركة الاتجاه.
تصميم التطبيق (بسيط — صفحة واحدة)
الشاشة تحتوي على:
1. مؤشر بوصلة (Compass) يدور تبعًا لاتجاه الهاتف.
2. سهم أو خط يُظهر اتجاه القبلة نسبةً للاتجاه الحالي.
3. نص يعرض درجة القبلة (مثلاً: 123°) واسم أقرب مدينة (اختياري).
4. زر لتحديث الموقع أو إعادة المحاذاة.
تصميم بسيط يركز على تجربة مستخدم نظيفة: لون خلفية هادئ، سهم واضح، خط أو دائرة للإشارة.
إعدادات الأذونات (Android / iOS)
Android (`AndroidManifest.xml`)
أضف الأذونات التالية داخل `android/app/src/main/AndroidManifest.xml`:
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION”/>
<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION”/>
ولنظام Android 12+ قد تحتاج أيضاً:
<uses-permission android:name=”android.permission.BLUETOOTH” />
<uses-permission android:name=”android.permission.BLUETOOTH_ADMIN” />
(إذا كنت تستخدم مستشعر البوصلة عبر البلوتوث أو أجهزة خارجية — عادي لا تحتاجها عادة).
في application أضف الإعدادات الخاصة بالـ foreground إذا تطلب الأمر.
iOS (Info.plist)
<key>NSLocationWhenInUseUsageDescription</key>
<string>التطبيق يحتاج موقعك لحساب اتجاه القبلة بدقة</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>التطبيق يحتاج موقعك لحساب القبلة حتى عند الخلفية (اختياري)</string>
تحسين دقة القبلة وبوصلة الهاتف
– استخدم LocationAccuracy.high وقت الحصول للموقع الأولي.
– حافظ على تحديثات الموقع بفلاترdistanceFilter لتقليل استهلاك البطارية.
– اعتماداً على نوع الجهاز، اقرأ مستشعر البوصلة (magnetometer) أو استخدم حزمة توفر heading (اتجاه) مباشرة.
– نفّذ ضبطًا على تأثير التشويش المغناطيسي (داخل المباني قد تكون القيم غير دقيقة).
– أعرض رسالة توضح للمستخدم كيفية تحسين الدقة: إبعاد الهاتف عن مصادر مغناطيسية، تحريك الهاتف في شكل ‘8’ لمعايرة البوصلة.
نصائح تصميم واجهة المستخدم (UX/UI)
– اجعل الشاشة الرئيسية بسيطة: دائرة كبيرة تظهر القبلة وسهم واضح.
– استخدم نصوص عربية واضحة واتجاه RTL.
– وفر زر “مساعدة” يشرح للمستخدم لماذا يحتاج التطبيق إذن الموقع وكيف يحسن ذلك النتيجة.
– استخدم رسومات متجهة (SVG) لسهم القبلة للحصول على مظهر نظيف عبر أحجام الشاشات.
– اجعل اللون الأساسي هادئًا (أزرق/تركوازي/زمردي) لتناسب تجربة روحية.
تحسين الأداء واستهلاك البطارية
– لا تقم بعمل Stream عالي التكرار للموقع؛ استخدم distanceFilter أو timeInterval.
– أوقف الاستماع عند الخروج من الصفحة (dispose).
– ادعم وضع توفير الطاقة بتقليل دقة الموقع.
لماذا اتجاه القبلة غير دقيق داخل المبنى؟
بسبب التشويش المغناطيسي من المعادن والأجهزة الإلكترونية. انقل الهاتف إلى مكان مفتوح أو قم بمعايرة البوصلة.



