cat ~/projects/azkari.md
أذكاري / ذِكر
ذِكر واحد، بين حين وآخر، على أي شاشة تكون أمامها.
تذكير بالذِّكر تبعني إلى كل منصة أستخدمها: إضافة VS Code، وتطبيق macOS، وتطبيق شريط مهام لويندوز، وتطبيق مستقل لساعة Apple، ورفيق لساعات Wear OS. كل منها أصلي وبلا اتصال وصغير عمدًا.
- الدور
- منفردًا: خمس منصات
- السنة
- 2023–2026
- الحالة
- صدر
- الفئة
- سطح المكتب
- بُني بـ
- JavaScriptSwiftSwiftUIKotlinC#WPFVS Code APIWatchKitUserNotifications

head -n 40 overview
ما هو
بدأ هذا إضافةً لـ VS Code: إشعار صغير أثناء جلسة برمجة، يُغلق بضغطة، ويختفي وحده بعد ست ثوانٍ. وهو أكثر ما كتبته نجومًا، وفي ذلك دلالة على عدد المطورين الذين أرادوا هذا بالضبط ولا شيء أكثر.
ومنذ ذلك الحين ذهب إلى كل مكان أعمل فيه: تطبيق macOS، وتطبيق شريط مهام لويندوز بـ C# وWPF بلا أي اعتمادية NuGet، وتطبيق watchOS مستقل لا يحتاج رفيقًا على iPhone، ونسخة Wear OS. بل تأتي نسخة ويندوز براية اختبار ذاتي تطبع نجاح/فشل لمنطقها.
قيد التصميم واحد في الخمسة: يجب ألا يصير تطبيقًا مضطرًا لإدارته. فاصل زمني، وقائمة، ولا شيء غير ذلك.
diff before after
التحديات
سطر يُحذف وسطر يحلّ محلّه. المشكلة أولًا، ثم ما الذي حلّ مكانها فعلًا.
التذكير الذي يقاطع يُهجَر
القيمة كلها في التكرار، لكن ما يخطف التركيز أثناء الكتابة يُحذف خلال يوم. والإشعار النظامي الأصلي مقتحم أكثر مما ينبغي ويتراكم في سجل الإشعارات.
تقاطعك كل منصة بأقل ما تستطيع: نافذة منبثقة بلا إطار وشفافة تظهر فوق كل النوافذ دون أخذ التركيز أو حجب النقر على سطح المكتب، ونقرة على المعصم في الساعة، وإشعار محرر في VS Code. ويختفي تلقائيًا، فيكون التجاهل استجابة صحيحة.
البطارية في الساعة هي المنتج كله
تطبيق ساعة يطلق تذكيرات طوال اليوم ويستهلك بطارية ملحوظة يُحذف مهما كانت تذكيراته جيدة. وجلسات التشغيل الممتد والمضاعفات كانت الطريق البديهي والخاطئ.
تستخدم نسخة watchOS إشعارات محلية مجدولة من النظام فقط مع تحديث خلفي انتهازي: بلا جلسات تمرين ولا مضاعفات ولا شبكة إطلاقًا. وتنجو التذكيرات من إعادة التشغيل ومن تحديث التطبيق دون أن يفعل المستخدم شيئًا.
خمس منصات تعني صيانة خمسة أضعاف
كتابة التطبيق الصغير نفسه خمس مرات بخمس لغات هي كيف تموت المشاريع الجانبية، فكل ترقية اعتمادية تتضاعف خمس مرات.
لا تكاد كل نسخة تعتمد على شيء. فنسخة ويندوز بلا أي حزمة NuGet: شريط المهام عبر WinForms المدمج، وJSON عبر System.Text.Json، والإقلاع عبر السجل، والتنبيه عبر SystemSounds. ولا شيء يُرقّى يعني لا شيء ينكسر.
tail outcomes
النتائج
- منشور على متجر VS Code وعلى Google Play.
- خمس نسخ أصلية: VS Code وmacOS وويندوز وwatchOS وWear OS.
- يعمل دون اتصال في كل مكان؛ بلا حسابات ولا تحليلات ولا جمع بيانات.
open ./shots/*
الشاشات نفسها



Keep readingتابع القراءة
openassoli-site
المشروع التاليassoli.siteمعرض أعمالي السابق: صفحة واحدة متحركة تُدار بقائمة أوامر.