logo

تجربتي في انشاء تطبيق ToDo-List

- هذا الموضوع ماخوذ عن Twitter thread كنت قد كتبته من فترة - في Dec 23, 2020 - وهنا اعيد صياغته فقط.

دعني احدثك اليوم يا صديقي عن احد تجاربي في مجال برمجة الاندرويد لانشاء تطبيق ToDo-List .. كانت لدي مشكلة صغيرة وهي ان التطبيق لا يمكن ان يعمل بشكل دائم في الخلفية لان الاندرويد يقوم بقفل التطبيقات بعد فترة لتحرير موارد الجهاز وتقليل استهلاك.

واول ما خطر على بالي هنا -وما سيخطر على بال اي مبرمج اندرويد في نفس الموقف تقريبا- هو استخدام ال "Foreground service" لاجبار الاندرويد على ترك التطبيق يعمل -باذن المستخدم-ولكن حتي تعمل ال "Foreground service" يجب ان يظهر معها اشعار بشكل دائم لتنبيه المستخدم الى عملها وهو ما يبدو انه شئ مزعج للكثيرين وبالتالي احتجت ان افكر بطريقة اخري.

فقررت استخدام "Broadcast receiver" يتم تسجيله ويقوم النظام باستدعائه كل دقيقة للتحقق من وجود مهم يجب اشعار المستخدم بها ولكن هنا ظهرت مشكلة اخري وهي انه في انظمة اندرويد الجديدة قد يتاخر النظام في استدعاء كود ال "Broadcast receiver" مدة تصل الي 3 و 4 دقائق او اكثر بغرض توفير الطاقة وتجميع اكبر عدد من ال "Broadcasts" لتنفيذهم سويا وهنا لا يمكن اجبار النظام على استدعاء الكود في موعده تماما باي شكل.

كان الحل المؤقت -من وجهة نظري- جعل التطبيق يعرض المهام اللتي مر موعد عرضها للمستخدم وكنت منزعجا للغاية من تاخر التطبييق في عرض المهام خصوصا اذا دخل الهاتف في ال "Idle Mode" وكان في اعتقادي ان الشركات الكبيرة من المستحيل ان تسمح بهذا التاخير في تطبيقاتها.

المهم اليوم اضفت مهمة على تطبيق ToDo من مايكروسوفت وابلغني التطبيق بالمهمة بعد الموعد المحدد ب 9 دقائق.

هل يعني ذلك ان مهندسي مايكروسوفت -القادمين من الفضاء الخارجي كما يظن البعض- واجهو المشكلة التي واجهها مبتدئ في صناعة التطبيقات وطبقو نفس الحل الذي اعتبرته في ذلك الوقت -لقلة ثقتي بنفسي ربما- مجرد دوران حول الحل وليس حل حقيقي ؟ 

الفكرة هنا يا صديقي انك يجب ان دائما ان تثق ان الجميع يسعي ويجتهد مثلك تماما وانه لاتوجد حلول مريخية لما يواجهك من مشكلات وستظل تواجه المشكلات حتي بعد سنوات من التعلم وتحلها بنفس الطريقة اللتي تعودت على حلها عندما كنت في البداية .. ولا يعني هذا انك لست كفئ فاحيانا نتيجة 80% هي ما تحتاج اليه وليس ال 100% فاجتهد واسع دائما وارض بما وصلت له.

رابط التطبيق في حال ثار فضولك لتجربة اول البرامج من تصميمي على المتجر .. https://play.google.com/store/apps/details?id=com.blogspot.mmabas77.todos

اضغط ESC للخروج