
كيف تضع «شطر اليوم» على الشاشة الرئيسية لهاتفك
Murtaja
📜 عن المشروع
«شطر» موقع صغير بنيته لسبب بسيط: أردت أن أفتح هاتفي كل صباح وأجد بيتاً من الشعر العربي بانتظاري، بدل أن أبدأ يومي بالتمرير بلا هدف. الفكرة بسيطة: كل يوم يختار الموقع بيتاً عشوائياً من آلاف القصائد عبر واجهة قافية البرمجية، ويعرضه في منتصف الصفحة باسم الشاعر والقصيدة، مع رابط لقراءتها كاملة إن أعجبك البيت.
لكن موقعاً تفتحه بنفسك لا يملك نفس الأثر الذي يملكه شيء يظهر أمامك تلقائياً. لذلك أردت أن أنقل «شطر اليوم» إلى الشاشة الرئيسية مباشرة، على هيئة ويدجت (widget) يتجدّد كل يوم. في هذا المقال أشرح كيف فعلت ذلك على الآيفون والأندرويد، إذا أردت تجربة الأمر بنفسك.
كل ما نحتاجه هو نقطة وصول واحدة يوفرها الموقع:
GET https://shatr-sooty.vercel.app/api/daily-shatr
وهي تُرجع بيانات بيت اليوم بصيغة JSON:
{
"date": "2026-10-04",
"sadr": "عن أناسٍ وافقوا الحقَّ بما",
"ajuz": "قال : صُوموا ؟ فاستقاموا صُوَّما",
"poem": { "title": "...", "slug": "gDJM", "path": "/poem/gDJM" },
"poet": { "name": "..." }
}
🍎 على الآيفون: عبر تطبيق Scriptable
أسهل طريقة على iOS هي تطبيق Scriptable (مجاني من App Store)، وهو يسمح لك ببناء ويدجت مخصص بأسطر بسيطة من JavaScript.
- ثبّت تطبيق Scriptable.
- افتحه واضغط + لإنشاء سكربت جديد، وسمّه «شطر».
- الصق الكود التالي داخل السكربت:
const req = new Request("https://shatr-sooty.vercel.app/api/daily-shatr")
const data = await req.loadJSON()
const widget = new ListWidget()
widget.backgroundColor = new Color("#18181b")
widget.setPadding(16, 16, 16, 16)
const shatrText = widget.addText(`${data.sadr}\n${data.ajuz}`)
shatrText.font = Font.boldSystemFont(18)
shatrText.textColor = Color.white()
shatrText.rightAlignText()
shatrText.minimumScaleFactor = 0.6
widget.addSpacer(8)
const byline = widget.addText(data.poet.name)
byline.font = Font.systemFont(12)
byline.textColor = new Color("#f0b429")
byline.rightAlignText()
widget.url = `https://shatr-sooty.vercel.app${data.poem.path}`
widget.refreshAfterDate = new Date(Date.now() + 1000 * 60 * 60 * 24)
if (config.runsInWidget) {
Script.setWidget(widget)
} else {
widget.presentMedium()
}
Script.complete()
- اخرج من المحرر، واضغط مطولاً على الشاشة الرئيسية، ثم + في الأعلى، وابحث عن Scriptable، واختر حجم Medium.
- اضغط مطولاً على الويدجت الذي أضفته واختر Edit Widget، ثم عيّن حقل Script على «شطر».
بهذا سيعرض الويدجت بيت اليوم كاملاً (الصدر والعجز)، ويفتح صفحة القصيدة الكاملة عند الضغط عليه. يتجدد تلقائياً مرة يومياً تقريباً، حسب ميزانية التحديث التي يديرها iOS نفسه.
🤖 على الأندرويد: عبر تطبيق HTTP Shortcuts
أندرويد لا يملك تطبيقاً مطابقاً لـ Scriptable تماماً، لكن تطبيق HTTP Shortcuts (مجاني ومفتوح المصدر من Play Store) يغطي الحاجة جيداً:
- ثبّت تطبيق HTTP Shortcuts.
- أنشئ اختصاراً جديداً (Shortcut) بطريقة GET وعنوان:
https://shatr-sooty.vercel.app/api/daily-shatr - فعّل خيار قراءة الاستجابة كـ JSON، واعرض الحقلين
sadrوajuz(وربماpoet.name) كنص داخل الويدجت — التطبيق يسمح بإظهار نص الاستجابة مباشرة على بلاطة الويدجت. - أضف الاختصار كويدجت على الشاشة الرئيسية من قائمة الويدجتس الخاصة بالتطبيق.
- من تبويب الجدولة (Scheduling) في التطبيق، أضف مهمة تُنفَّذ مرة يومياً لتحديث الويدجت تلقائياً.
لمن يريد تحكماً أكبر في الشكل (خطوط، ألوان، تخطيط)، يمكن الجمع بين Tasker (لجلب البيانات دورياً وتخزينها في متغيرات) وتطبيق ويدجتس مثل KWGT لعرضها بتصميم مخصص بالكامل.
في النهاية
التفاصيل التقنية بسيطة، لكن الفكرة التي أعجبتني فعلاً هي أن تذكيراً صغيراً — بيت شعر واحد، في مكان تراه كل يوم دون أن تطلبه — قد يكون كافياً لإبقاء صلتك بشيء تحبه حيّة. هذا بالضبط ما حاولت بناءه في «شطر».