← العودة إلى الورشة
خلف الكواليس

Android Store Screenshot Kit

لقطات حقيقية لتطبيقات Android حقيقية، تُلتقط بالطريقة نفسها في كل مرة وجاهزة لمتجر Google Play.

ثلاث شاشات هاتف، الوسطى منها مؤطرة وعليها علامة صح

عن المشروع

تتقادم لقطات المتجر كلما تغيّر التطبيق، والتقاطها يدويًا على الهاتف بطيء ولا يأتي متطابقًا مرتين. يحوّل هذا الطقم ذلك إلى خطوة قابلة للتكرار: يحتفظ كل تطبيق باختبار صغير يجهّز بياناته ويمر على شاشاته، ويتكفل الطقم بالباقي.

يبني التطبيق واختباره، ويشغّلهما على جهاز Firebase Test Lab المختار، ويتابع التشغيل حتى نهايته، وينزّل اللقطات ويتحقق منها وفق متطلبات Google Play قبل نسخها إلى مجلد المتجر الخاص بالتطبيق.

كيف يعمل

  1. صِف التشغيل. يحدد ملف TOML قصير التطبيق واختباره والأجهزة المستخدمة وعدد اللقطات المتوقعة وحجمها.
  2. اكتب الجزء الخاص بالتطبيق. ابدأ من الاختبار النموذجي، وحمّل بيانات أمثلة ثابتة، وحدد الشاشات المطلوب التقاطها. وتتولى دوال مشتركة انتظار الشاشات والنقر وإغلاق نوافذ النظام وتثبيت اتجاه الشاشة.
  3. شغّل جهازًا واحدًا. أمر واحد يبني ملفي APK ويرسلهما إلى Firebase Test Lab ويتابع الاختبار حتى ينتهي.
  4. اجمع وتحقق. تُنزَّل اللقطات ويُتحقق من عددها وحجمها وصيغة ألوانها، ثم تُحفظ مع سجل للتشغيل.

صُنعت بالطقم

هذه لقطات Pocket Omaha للأجهزة اللوحية على Google Play، التقطها الطقم على جهاز Pixel Tablet حقيقي في Firebase Test Lab. يحمّل الاختبار بيانات مسجلة لشركات Apple وJPMorgan وNokia، فلم تُجلب أي بيانات سوق، ويعرض كل تشغيل الأرقام نفسها.

كشف التشغيل الأول أيضًا عن تحذير توافق من Android بشأن محاذاة إحدى المكتبات الأصلية في التطبيق. وبعد تحديث المكتبة، مرّ تشغيل ثانٍ من دونه.

المزايا

  • النتيجة نفسها في كل تشغيل: يحمّل كل تطبيق بيانات الأمثلة المسجلة الخاصة به بدل الاتصال بخدمات حية، فلا تتغير اللقطات من تشغيل إلى آخر.
  • يُتحقق منها قبل الاستخدام: يُفحص كل ملف PNG من حيث العدد المتوقع والأبعاد وصيغة RGB دون شفافية التي يطلبها Google Play.
  • سجل لكل تشغيل: يحصل كل تشغيل على مجلد خاص يضم ملفات PNG دون تعديل وملف run.json يحوي بصمات الملفات والجهاز ورابط Firebase Console والإعدادات بدقة.
  • جاهز لأجهزة 16 كيلوبايت: يتحقق فحص منفصل من محاذاة ملف APK وكل مكتبة أصلية داخله، من أجل أجهزة Android ذات صفحات الذاكرة بحجم 16 كيلوبايت.
  • لا فواتير مفاجئة: يجب دائمًا تسمية الجهاز صراحة، فلا يمتد التشغيل أبدًا إلى كل الأجهزة الفعلية المُعدّة التي قد تكون مدفوعة.
  • الأسرار تبقى خارجًا: تأتي معرّفات المشروع من متغيرات البيئة، وتسجيل الدخول من Google Cloud CLI؛ ولا تحتوي الإعدادات على أي بيانات اعتماد.
  • سهل الاعتماد: لا تعتمد الدوال المشتركة إلا على AndroidX Test وUI Automator، لذا تناسب التطبيقات المبنية بـ Jetpack Compose أو من دونه.

تحت غطاء محرك السيارة

أداة سطر الأوامر سكربت Python واحد لا يحتاج إلى شيء سوى Python 3.11. والدوال المشتركة مكتبة Android صغيرة مكتوبة بلغة Java، فلا تفرض إصدارًا معينًا من Kotlin على التطبيقات التي تستخدمها، وتعمل مع AGP 8 وAGP 9. وفي التكامل المستمر يمكن تشغيل الأجهزة الافتراضية مع كل طلب سحب، مع إبقاء الأجهزة الفعلية للنسخ المرشحة للإصدار. الطقم مفتوح المصدر بترخيص GPL-3.0.