تطبيق أندرويد لتتبّع النوم: تسجيل دخول، واستبيانات، ولوحة إحصاءات، ومزامنة سحابية. الجزء الصعب لم يكن الواجهات، بل أن يظل التتبّع شغّالًا فعلًا. أندرويد الحديث يوقف العمل في الخلفية، والجهاز قد يُعاد تشغيله في منتصف الليل.
ما نفّذته بـ Kotlin:
تتبّع يقرأ حسّاس التسارع وحالة الشاشة معًا ليقدّر النوم بدل الاعتماد على مصدر واحد.
بقاء التتبّع رغم قيود النظام: خدمة في المقدمة، ومنبّهات دقيقة، وWakeLock، ومستقبلات لإعادة التشغيل وتغيّر الوقت، حتى يستأنف التتبّع بعد إعادة تشغيل الجهاز أو تعديل جدول النوم.
مزامنة مع AWS Amplify وDataStore، وFirebase Analytics وCrashlytics.
أصعب قرار كان في الخصوصية. بيانات الصحة وبيانات التسجيل الشخصية كان يجب فصلهما في مشروعين مختلفين على AWS، وAmplify يربط مشروعًا واحدًا لكل سياق تطبيق. فقسّمت المشروع إلى وحدتين، ووجّهت التسجيل الشخصي إلى الوحدة الثانية، وربطت السجلين بمعرّف مشترك. النتيجة أن البيانات الصحية لا تجاور البيانات الشخصية في مكان واحد.
هذا العميل بدأ معي بمشروع واحد، ثم استمر العمل معه على مدى سنوات في عقود متتابعة، آخرها ترحيل البنية على AWS.
لو عندك تطبيق يحتاج عملًا مستمرًا في الخلفية، أو فصلًا حقيقيًا لبيانات حسّاسة، فهذا نوع المسائل التي أشتغل عليها.