تطبيقات الجوال لا تعمل كبرامج سطح المكتب التي «تفتح وتُغلق» ببساطة؛ فهي تنتقل بين حالات متعدّدة يديرها نظام التشغيل. فهم دورة الحياة أساس لبناء تطبيقات موثوقة. هذه الصفحة هي المرجع التأسيسي لمسار تطوير الجوال (المفاهيم العامّة عبر المنصّات).
لماذا توجد «دورة حياة» أصلًا؟
موارد الجوال محدودة (بطّارية، ذاكرة، شبكة)، والمستخدم يتنقّل باستمرار بين التطبيقات ويتلقّى مكالمات وإشعارات. لذلك يتحكّم نظام التشغيل في تطبيقك: يوقفه مؤقّتًا حين يغادره المستخدم، وقد ينهيه لتحرير الذاكرة. تطبيقك يجب أن يتجاوب مع هذه الانتقالات لا أن يقاومها.
الحالات الأساسية
رغم اختلاف المسمّيات بين المنصّات، تدور الفكرة حول حالات متشابهة:
- نشط/أمامي (Active / Foreground): التطبيق على الشاشة ويتفاعل معه المستخدم.
- خامل/انتقالي (Inactive): على الشاشة لكن لا يستقبل أحداثًا حاليًا (أثناء مكالمة واردة مثلًا).
- خلفي (Background): لم يعد ظاهرًا، وقد ينفّذ عملًا محدودًا لوقت قصير.
- معلّق (Suspended): في الذاكرة لكنّه متوقّف عن التنفيذ لتوفير الموارد.
- مُنهى (Terminated / Not Running): أزاله النظام من الذاكرة كليًا.
أحداث دورة الحياة
عند كل انتقال، يستدعي النظام «خطّافات (Callbacks)» يمكن لتطبيقك أن يتفاعل معها: لحظة الظهور، لحظة الانتقال إلى الخلفية، لحظة العودة، ولحظة قرب الإنهاء. هنا تحفظ حالة المستخدم، وتوقف المهامّ الثقيلة، وتحرّر الموارد.
الفرق بين iOS و Android
المفاهيم متقاربة لكنّ التفاصيل تختلف:
- في iOS، تدور دورة الحياة حول حالات التطبيق ومندوبه (App Delegate / Scene) وأحداث الانتقال بينها.
- في Android، ينصبّ التركيز تاريخيًا على دورة حياة النشاط (Activity) بأحداث مثل الإنشاء والاستئناف والإيقاف المؤقّت والتدمير، مع دور بارز لإعادة إنشاء الواجهة عند تغييرات مثل تدوير الشاشة.
المشترك بينهما هو الأهمّ للمبتدئ: افترض أنّ تطبيقك قد يُقاطَع أو يُنهى في أي وقت، وصمّمه ليحفظ حالته ويستعيدها بسلاسة.
لماذا تهمّك دورة الحياة؟
- حفظ الحالة: لئلّا يفقد المستخدم تقدّمه حين يعود بعد مقاطعة.
- إدارة الموارد: إيقاف المستشعرات والمؤقّتات في الخلفية لتوفير البطّارية.
- تجربة سلسة: استئناف طبيعي دون أعطال أو بيانات ضائعة.
الخطوات التالية
بعد دورة الحياة، ستتعلّم أساليب إدارة الحالة، وكيفية عمل الإشعارات الفورية، والتخزين دون اتصال. ولتطبيق هذه المفاهيم عمليًا، اطّلع على مساراتنا في Flutter وأندرويد مع Kotlin وSwift.