هل تساءلت يومًا لماذا لا تعمل تطبيقات التذكير على هاتفك الأندرويد كما هو متوقع؟ اكتشف مطور تطبيق «GrowBook» التحديات الخفية التي تجعل مهمة إرسال إشعارات دقيقة صعبة للغاية.
هل تتساءل أحيانًا لماذا لا تصلك تذكيرات تطبيقاتك المفضلة على الأندرويد في الوقت المحدد؟ حسنًا، أنت لست وحدك. اكتشف مطور تطبيق بسيط لتذكير سقاية النباتات، يُسمى «GrowBook»، أن جعل التذكيرات تعمل بدقة على هواتف الأندرويد الحديثة أصعب بكثير مما يبدو، وهذا يعني أن العديد من تطبيقات التذكير قد تفشل بصمت لأسباب لا يعرفها المستخدم.
في منشور المدونة التقنية الخاص به، شرح المطور «Shao Jie» كيف أن وظيفة تطبيق «GrowBook» الوحيدة كانت إرسال إشعار تذكير بسيط، لكن تحقيق ذلك استغرق أسبوعًا كاملاً من العمل الشاق. يرجع السبب في ذلك إلى أن جدولة إشعار في وقت محدد على نظام أندرويد الحديث ليست مشكلة واحدة، بل ثلاث مشكلات رئيسية، وكل واحدة منها يمكن أن تفشل دون أي رسالة خطأ.
المشكلة الأولى هي الأذونات. بدءًا من أندرويد 13، تحتاج التطبيقات لطلب إذن «POST_NOTIFICATIONS» صراحةً. إذا لم يوافق المستخدم، لن تظهر التذكيرات ببساطة. يظن المستخدم أن التطبيق معطل، بينما يظن التطبيق أنه يعمل بشكل صحيح. لذلك، بدلاً من مجرد طلب الإذن، قام «Shao Jie» بإنشاء حوار يشرح للمستخدم سبب حاجته لإرسال الإشعارات.
المشكلة الثانية تتعلق بالتوقيت الدقيق. إذا كنت تريد تذكيرًا في التاسعة صباحًا بالضبط، فأنت بحاجة إلى إذن منفصل آخر هو «SCHEDULE_EXACT_ALARM» الذي ظهر مع أندرويد 12. بدون هذا الإذن، يمكن لنظام التشغيل تأخير إشعاراتك لتوفير البطارية، مما يحول تذكير التاسعة صباحًا إلى الواحدة ظهرًا. لطلب هذا الإذن، يجب على التطبيق توجيه المستخدم يدويًا إلى شاشة إعدادات النظام، وهي عملية معقدة.
وأخيرًا، المشكلة التي كسرت ظهر المطور: بقاء التذكيرات بعد إعادة تشغيل الهاتف. يتم مسح جميع التذكيرات المجدولة عند إعادة تشغيل الجهاز. الحل هو استخدام «BootReceiver» لإعادة جدولة كل شيء عند تشغيل الهاتف. على الرغم من أن هذا يعمل على معظم الهواتف، إلا أن «Shao Jie» اكتشف أن الهواتف الرخيصة ذات الواجهات المخصصة الثقيلة يمكن أن تتجاهل هذا الحل تمامًا، مما يعني أن التذكيرات قد لا تعمل أبدًا على بعض الأجهزة. هذه التحديات الخفية تفسر لماذا قد لا تعمل تطبيقات التذكير كما تتوقع دائمًا.
في منشور المدونة التقنية الخاص به، شرح المطور «Shao Jie» كيف أن وظيفة تطبيق «GrowBook» الوحيدة كانت إرسال إشعار تذكير بسيط، لكن تحقيق ذلك استغرق أسبوعًا كاملاً من العمل الشاق. يرجع السبب في ذلك إلى أن جدولة إشعار في وقت محدد على نظام أندرويد الحديث ليست مشكلة واحدة، بل ثلاث مشكلات رئيسية، وكل واحدة منها يمكن أن تفشل دون أي رسالة خطأ.
المشكلة الأولى هي الأذونات. بدءًا من أندرويد 13، تحتاج التطبيقات لطلب إذن «POST_NOTIFICATIONS» صراحةً. إذا لم يوافق المستخدم، لن تظهر التذكيرات ببساطة. يظن المستخدم أن التطبيق معطل، بينما يظن التطبيق أنه يعمل بشكل صحيح. لذلك، بدلاً من مجرد طلب الإذن، قام «Shao Jie» بإنشاء حوار يشرح للمستخدم سبب حاجته لإرسال الإشعارات.
المشكلة الثانية تتعلق بالتوقيت الدقيق. إذا كنت تريد تذكيرًا في التاسعة صباحًا بالضبط، فأنت بحاجة إلى إذن منفصل آخر هو «SCHEDULE_EXACT_ALARM» الذي ظهر مع أندرويد 12. بدون هذا الإذن، يمكن لنظام التشغيل تأخير إشعاراتك لتوفير البطارية، مما يحول تذكير التاسعة صباحًا إلى الواحدة ظهرًا. لطلب هذا الإذن، يجب على التطبيق توجيه المستخدم يدويًا إلى شاشة إعدادات النظام، وهي عملية معقدة.
وأخيرًا، المشكلة التي كسرت ظهر المطور: بقاء التذكيرات بعد إعادة تشغيل الهاتف. يتم مسح جميع التذكيرات المجدولة عند إعادة تشغيل الجهاز. الحل هو استخدام «BootReceiver» لإعادة جدولة كل شيء عند تشغيل الهاتف. على الرغم من أن هذا يعمل على معظم الهواتف، إلا أن «Shao Jie» اكتشف أن الهواتف الرخيصة ذات الواجهات المخصصة الثقيلة يمكن أن تتجاهل هذا الحل تمامًا، مما يعني أن التذكيرات قد لا تعمل أبدًا على بعض الأجهزة. هذه التحديات الخفية تفسر لماذا قد لا تعمل تطبيقات التذكير كما تتوقع دائمًا.