Guides
Use and adapt etjah-v2
Use and adapt etjah-v2: An Arabic-first progressive web app for Etjah real estate, with RTL layouts and browser installation support.
Use the documented interfaces and source layout for etjah-v2. The sections below retain the README’s examples and configuration details.
كيف يعمل تطبيق الويب التقدمي (PWA)
تطبيق الويب التقدمي (PWA) هو تطبيق ويب يستخدم تقنيات الويب الحديثة لتقديم تجربة تشبه التطبيقات الأصلية للمستخدمين. يتميز هذا التطبيق بما يلي:
- قابلية التثبيت: يمكن للمستخدمين تثبيت التطبيق مباشرة من المتصفح إلى الشاشة الرئيسية لأجهزتهم (Android و iOS) دون الحاجة إلى متاجر التطبيقات.
- العمل دون اتصال بالإنترنت: بفضل عامل الخدمة (Service Worker)، يمكن للتطبيق العمل حتى في حالة عدم وجود اتصال بالإنترنت، مما يوفر تجربة مستخدم مستمرة.
- السرعة والأداء: يتم تحميل المحتوى المخزن مؤقتًا بسرعة، مما يقلل من أوقات التحميل ويحسن الأداء العام.
- تجربة المستخدم المحسّنة: يفتح التطبيق في وضع ملء الشاشة بدون واجهة مستخدم المتصفح، مما يوفر تجربة غامرة.
المكونات الرئيسية لـ PWA
public/manifest.json: ملف JSON يصف التطبيق للمتصفح، بما في ذلك اسمه، أيقوناته، لون السمة، وكيف يجب أن يظهر عند التثبيت.public/sw.js(Service Worker): نص برمجي يعمل في الخلفية، منفصل عن صفحة الويب. يقوم بمعالجة طلبات الشبكة، وتخزين الأصول مؤقتًا (caching)، وتوفير وظائف دون اتصال بالإنترنت، وإدارة التحديثات.- علامات
<meta>فيapp/layout.tsx: علامات HTML إضافية في قسم<head>لدعم ميزات PWA الخاصة بـ iOS، مثلapple-mobile-web-app-capableوapple-touch-icon. components/pwa-install-prompt.tsx: مكون React يعرض مطالبة للمستخدم لتثبيت التطبيق عندما يكون متاحًا.components/service-worker-register.tsx: مكون React يقوم بتسجيل عامل الخدمة عند تحميل التطبيق.app/loading.tsx: مكون تحميل يظهر أثناء جلب البيانات على الخادم، مما يحسن تجربة المستخدم من خلال توفير ملاحظات مرئية.
كيفية تحديث عامل الخدمة (Service Worker)
عند إجراء تغييرات على ملف public/sw.js أو الأصول المخزنة مؤقتًا، يجب تحديث عامل الخدمة لضمان حصول المستخدمين على أحدث إصدار.
- تغيير
CACHE_NAME: فيpublic/sw.js، قم بتغيير قيمة المتغيرCACHE_NAME(على سبيل المثال، منetijah-real-estate-v1إلىetijah-real-estate-v2). هذا سيجعل عامل الخدمة الجديد يرى أن هناك إصدارًا جديدًا من ذاكرة التخزين المؤقت. - تحديث
urlsToCache: إذا أضفت صفحات جديدة أو أصولًا ثابتة مهمة، تأكد من إضافتها إلى مصفوفةurlsToCacheفيpublic/sw.js. - إعادة النشر: بعد إجراء التغييرات، قم بإعادة نشر تطبيقك. سيكتشف المتصفح عامل الخدمة الجديد، ويقوم بتثبيته في الخلفية، ثم ينشطه عند إغلاق المستخدم لجميع علامات تبويب التطبيق القديمة.
كيفية تخصيص ملف manifest.json
يمكنك تخصيص سلوك ومظهر PWA الخاص بك عن طريق تعديل public/manifest.json:
nameوshort_name: اسم التطبيق الكامل والمختصر الذي يظهر للمستخدم.langوdir: لغة التطبيق واتجاه النص (مهم جدًا لـ RTL).start_url: المسار الذي يجب أن يفتحه التطبيق عند التشغيل.display: يحدد وضع عرض التطبيق (على سبيل المثال،standaloneلفتح التطبيق في نافذة خاصة به).theme_colorوbackground_color: ألوان الواجهة التي يستخدمها المتصفح (مثل شريط الحالة).description: وصف موجز للتطبيق.icons: قائمة بأيقونات التطبيق بأحجام مختلفة. تأكد من وجود أيقونات 192x192 و 512x512 على الأقل.screenshots: (اختياري) لقطات شاشة لتطبيقك تظهر في واجهة تثبيت المتصفح.
Commands in the root manifest
The captured package.json declares the following scripts. Run them from the directory containing that manifest.
| Command | Script |
|---|---|
npm run build | next build |
npm run dev | next dev |
npm run lint | next lint |
npm run start | next start |
Troubleshoot a local change
- Reproduce the smallest example from the quick-start guide.
- Compare required configuration and dependency versions with the README.
- Check the linked issue tracker for the same error. Include the command, runtime version, and relevant error when reporting a problem; omit credentials.
Source and help
Source captured: 2026-10-11
