ما الذي يجعل أندرويد مختلفاً؟
نظام iOS يعمل على نطاق عتاد ضيق ومتوقع. وأندرويد عكس ذلك تماماً: أحجام شاشات من هواتف صغيرة إلى قابلة للطي وأجهزة لوحية، ومعالجات تتفاوت أداؤها تفاوتاً هائلاً، وطبقات مصنّعين تغيّر سلوك العمل في الخلفية والإشعارات، وقاعدة مستخدمين موزعة على عدة إصدارات في وقت واحد.
هذا التشظي هو سبب فشل تطبيقات أندرويد التي اختُبرت على هاتف رائد حديث فقط. فتحسين البطارية لدى مصنّع ما يوقف مزامنتك الخلفية بصمت، وجهاز متوسط عمره ثلاث سنوات يفقد إطاراته في قائمة لم يمرر فريقك فيها بعيداً بما يكفي ليرى ذلك.
نبني ونحن نضع هذا الواقع في الحسبان، ونختبر على مصفوفة أجهزة حقيقية لا على المحاكي وحده، لأن هذه المشكلات تظهر هناك.
كيف نبني؟
- لغة Kotlin مع coroutines و flows للعمليات غير المتزامنة
- Jetpack Compose لواجهات حديثة قابلة للصيانة
- بنية نظيفة تفصل بوضوح بين الواجهة والمنطق والبيانات
- Room أو مخزن محلي مناسب للعمل دون اتصال
- Retrofit وعقد واجهة برمجية محدد جيداً
- حقن التبعيات عبر Hilt
- اختبارات وحدة واختبارات على الجهاز للمنطق المهم
- Firebase Crashlytics والتحليلات والتهيئة عن بُعد
- مسارات تكامل مستمر تنتج نسخاً موقّعة تلقائياً
- إدارة الإصدارات في Play Console بطرح تدريجي
Google Play والسياسات والإصدار
النشر ليس إجراءً شكلياً. فـ Google Play يتطلب سياسة خصوصية وإقرار سلامة بيانات مكتملاً ومستوى واجهة مستهدفاً صحيحاً وتعاملاً متشدداً بشكل متزايد مع الأذونات والموقع في الخلفية وخدمات المقدمة. والتطبيقات تُرفض بسبب تعارض الإقرارات أكثر بكثير مما تُرفض بسبب مشكلات برمجية.
ونتولى إعداد المتجر وأصول الصفحة ونموذج سلامة البيانات والرد على المراجعة والطرح التدريجي، فيصل الإصدار السيئ إلى واحد بالمئة من المستخدمين لا إليهم جميعاً. وتبقى ملكية حساب المطور والصفحة لك طوال الوقت.
الأداء والبطارية وحجم التطبيق
يحذف المستخدمون التطبيقات لثلاثة أسباب أكثر من غيرها: بطيء، أو يستنزف البطارية، أو حجمه كبير على بيانات الجوال. وثلاثتها قرارات هندسية لا حوادث.
نقيس زمن الإقلاع ورسم الإطارات، وننقل العمل خارج الخيط الرئيسي، ونجمع المهام الخلفية ونجدولها عبر WorkManager ليتعامل معها النظام بكفاءة، ونضغط الصور ونحمّلها عند الحاجة، ونصدر App Bundles ليحمّل كل جهاز ما يحتاجه فقط.
بعد الإطلاق
يصدر أندرويد نسخة رئيسية كل عام، ويفرض Play مواعيد نهائية لمستوى الواجهة المستهدف، ما يعني أن التطبيق غير المصان يتوقف في النهاية عن كونه قابلاً للتثبيت لمستخدمين جدد. والمكتبات تُهجر، والأذونات تتشدد، وحزم الدفع تغيّر قواعدها.
وتغطي صيانتنا تحديثات النظام ومستوى الواجهة ومراقبة الأعطال وإصلاحها وتحسين الأداء والامتثال لسياسات Play والتعديلات الصغيرة، بأزمنة استجابة مكتوبة في الاتفاقية.