انتقل إلى المحتوى
نسخة تجريبية مباشرة

سكينة

تطبيق ثنائي اللغة يعرض مواقيت الصلاة حسب الموقع، والعد التنازلي للصلاة القادمة، والتاريخ الهجري، والأذكار، واتجاه القبلة.

الدور
تصميم المنتج والتطوير الكامل
التصنيف
تطبيق ويب تقدمي
الحالة
تطبيق عام مباشر
أنجز باستخدام
Vanilla JS · no framework
Sakenah prayer-times app on a dark green brand background showing the next-prayer countdown in Arabic

نظرة عامة

يجيب سكينة عن سؤال واحد بإتقان: متى الصلاة القادمة وكم بقي عليها؟ وحول ذلك يضيف جدول اليوم كاملاً، والتاريخ الهجري، وأذكار الصباح والمساء، واتجاه القبلة — بالعربية والإنجليزية، بلا حساب ولا تتبّع.

المشكلة

  • معظم تطبيقات المواقيت تطلب حساباً أو تحمل إعلانات وأدوات تتبّع.
  • وكثيراً ما تكون العربية إضافة متأخرة — ترجمة فوق تخطيط من اليسار إلى اليمين.
  • وتتقادم المواقيت أو تتوقف تماماً عند انقطاع الاتصال.
  • وكثيراً ما تُظهر خاصية القبلة إبرة متحركة حتى حيث لا توجد بوصلة.

الحل

  • تفتحه فتجد الصلاة القادمة والعد التنازلي أمامك مباشرة.
  • العربية أولاً: تخطيط حقيقي من اليمين إلى اليسار، والإنجليزية لغة ثانية.
  • يُخزَّن شهر كامل من المواقيت، فلا يحتاج اليوم العادي إلى أي اتصال.
  • وتوضّح القبلة صراحةً إن كان المعروض اتجاهاً ثابتاً أم بوصلة حية.

دوري

تخطيط المنتج، وبناء تجربة الاستخدام، والتطوير الكامل، ودعم العربية والإنجليزية، واستراتيجية العمل دون اتصال والتخزين المؤقت، وتصحيح القبلة والتعامل مع حساسات الجهاز، والنشر على بيئة الإنتاج.

أبرز الميزات

  • Prayer times by location — device location or manual country and city selection.
  • Next-prayer countdown — live hours, minutes and seconds to the next adhan.
  • Daily schedule — Fajr through Isha with the active prayer highlighted.
  • Gregorian and Hijri dates — both shown together.
  • Adhkar — morning, evening and after-prayer, with a counter and cited sources.
  • Qibla guidance — a bearing from true north, plus a live compass where the device supports one.
  • Calculation methods — selectable, with the method named under the schedule.
  • العربية والإنجليزية — full RTL, switchable at any time.

كيف تُحسب المواقيت

Times come from the AlAdhan calendar service, requested a whole month at a time and cached locally. The calculation method is explicit and selectable, and the app names the method it used underneath the schedule rather than hiding it.

  • One request per location and month, not one per day.
  • Method and school are part of the cache key, so switching either refetches correctly.
  • Tomorrow’s Fajr is fetched ahead of a month boundary so the countdown never gaps.
  • Times are presented as the chosen authority calculates them; Sakenah does not adjust them.

اتجاه القبلة بصدق

The Qibla is the great-circle initial bearing from your position to the Kaaba, in degrees clockwise from true north. What the app can promise depends on the device, so it says which one you are getting.

  • Coordinates come from the device when permission is granted, otherwise from the selected city.
  • The panel states the source and whether the reading is a fixed bearing or a live compass.
  • On iOS the compass is requested only from a deliberate tap, never on page load.
  • Where the browser exposes no absolute heading, the needle stays still and says so — a compass that moves without a sensor would be worse than none.
  • Calibration guidance appears once a live heading is actually running.

يتأثر أي بوصلة هاتف بالتداخل المغناطيسي وحساسات الجهاز، لذا يُقدَّم الاتجاه المباشر كدليل استرشادي لا كأداة قياس دقيقة.

الخصوصية والموقع

  • بلا حساب ولا تسجيل دخول ولا تحليلات ولا إعلانات.
  • لا يُطلب الموقع إلا حين تطلبه أنت، ويُقرَّب إلى نحو كيلومتر.
  • وتبقى هذه القيمة المقرّبة في متصفحك — تُستخدم لجلب المواقيت ولا تُرسل إلى أي جهة أخرى.
  • واختيار المدينة بدل مشاركة الموقع خيار كامل لا حلّ ناقص.

يعمل دون اتصال وقابل للتثبيت

Sakenah is a progressive web app. It installs to the home screen and keeps working without a connection.

  • A month of times is stored locally, so a normal day makes no network request.
  • A service worker caches the app shell and falls back to the last good response.
  • The cache is versioned, so a shipped fix reaches people rather than sitting behind a stale copy.

لقطات من الواجهة

ملتقطة من التطبيق المباشر.

التقنيات

بسيط عن قصد: بلا إطار عمل، وبلا خطوة بناء، وبلا شجرة اعتماديات.

التقنيات
  • Vanilla JavaScript (ES modules)
  • CSS custom properties
  • Service worker
  • Web app manifest
  • localStorage caching
  • AlAdhan API
  • Arabic / English i18n
  • Node test runner

افتح التطبيق

بلا تسجيل دخول، ولا شيء تثبّته إلا إن أردت. اختر مدينتك وتظهر المواقيت.

تحتاج شيئا مشابها؟

أخبرني بما يفعله فريقك يدويا اليوم، وسأخبرك بصراحة إن كان البرنامج هو الحل المناسب.