عملت قبل أسابيع على تحويل خوارزمية حفظ للقرآن الكريم استعرضتها إحدى الأخوات على فيسبوك إلى تطبيق ويب بتقنية PWA يسمح للراغبين بحفظ القرآن الكريم متابعة حفظهم من خلال توفير قائمة مهام وجدول زمني للحفظ، تحدثت بتفصيل حول هذا المشروع في موضوع سابق هنا: الموضوع السابق وبسبب تعاملي في الفترة السابقة مع إيليكترون كأداة لتحويل مشاريع الويب إلى تطبيقات محلّية في مشروع شخصيّ، خطر ببالي: هل يمكن استخدام طريقة مشابهة لإطلاق المشروع على الهاتف المحمول؟

التطبيق على غوغل بلاي: رابط التحميل
بحثت حينها عن الأدوات التي يمكن من خلالها تحويل تطبيق ويب إلى تطبيق هاتف محمول، وبحسب البحث، كان هناك طريقان مشهوران لهذا: Flutter كإطار عمل متكامل، أو Capacitor من Ionic كأداة لتحويل مشاريع الويب إلى تطبيقات Native للهاتف المحمول والحاسب الشخصي.
قررت استخدام Capacitor بسبب عدم رغبتي بإعادة بناء أجزاء كبيرة من التطبيق في إطار فلاتر من جديد.
كان هناك أيضاً خيار استخدام Cordova وهو إطار عمل يسمح بتحويل الPWA إلى تطبيق هاتف محمول أيضاً، لكن توافق Capacitor مع بنية الPWA كان أفضل حسب فهمي - لكن في الحقيقة لم أجرب حتى أحكم بنفسي.
القليل حول Capacitor
استخدمت الذكاء الاصطناعي بشكل رئيسيّ لتسريع عملية التعامل والاعتياد على Capacitor: بشكل رئيسي، طلبت من الذكاء الاصطناعي الخوض في الكود الموجود سلفاً لاستخراج الصلاحيات التي يجب طلبها من خلال Capacitor لنظام التشغيل، وبعدها سألته حول بعض الصلاحيات التي لم يعثر عليها مثل فتح الملفات.
احتاج التطبيق لثلاث صلاحيات رئيسية من نظام التشغيل:
@capacitor/filesystem # التعامل مع الملفات
@capacitor/local-notifications # الإشعارات المحلية
@capacitor/share # مشاركة المحتوى
أضيفت هذه الروابط مع نظام التشغيل من خلال Capacitor للربط بين التطبيق ونظام التشغيل - هنا استطعت تخطي المشكلة الرئيسية في نسخة PWA المستضافة على صفحات Github pages حيث لم يكن بإمكاني إرسال الإشعارات لتذكير المستخدمين مباشرة من المتصفح دون استضافة سيرفر إشعارات في مكان ما. في هذه الحالة، يمكنني إرسال إشعارات التذكير من التطبيق مباشرة.
لتحويل الكود الموجود سلفاً إلى تطبيق اندرويد تحتاج إلى سلسلة من الأوامر البسيطة:
# تثبيت الحزم الأساسية
npm install @capacitor/core @capacitor/cli
# إضافة منصة Android
npm install @capacitor/android
تقوم بإنشاء المشروع على أندرويد بكلّ بساطة:
# تهيئة Capacitor
npx cap init
# إضافة منصة Android
npx cap add android
ثم تزامن الملفات بين المشروع الأصلي ومشروع آندرويد:
# بناء ملفات الويب
npm run build
# مزامنة التغييرات مع مشروع Android
npx cap sync
وفي حالتي تم تثبيت الإضافات التالية للوصول إلى ميزات الهاتف المحمول:
npm install @capacitor/filesystem # التعامل مع الملفات
npm install @capacitor/local-notifications # الإشعارات المحلية
npm install @capacitor/share # مشاركة المحتوى
النشر على غوغل بلاي
النشر على غوغل بلاي يحتاج بدايةً إلى حساب مدفوعٍ، تكلفة فتح الحساب 25 دولار أمريكي تدفع لمرّة واحد، ثم يمكنك بعدها الدخول في الخطوات الطويلة والكثيرة جداً لنشر تطبيق على المتجر، إليك بعض الأشياء التي قد تسهّل عليك العملية:
الخصوصية:
في حالة هذا التطبيق، لم يكن هناك حاجة لربط التطبيق بخدمة سحابية أو إضافة ميزات للتعقب ومتابعة الاستخدام، لذا كانت العملية سهلة، لكن في الحالات العامّة ستسأل أسئلة كثيرة ومطوّلة تحدد تماماً ما يتم تسجيله ومشاركته من خلال التطبيق. جهّز قائمة خاصّة بك بما يتم مشاركته من المعلومات ومع أيّ جهة، وهل هناك خدمات طرف ثالث لهذا أم لا، بشكل عام، يمكنك قراءة كل سؤال بتمعن لفهم ما يجب عليك إجابته، لكن تأكد من معرفتك لما يستخدم في تطبيقك قبل نشره.
المواد الترويجية:
جهّز أيقونة التطبيق ولقطات الشاشة بمقاس 16:9 ووصف التطبيق وملفات الABB قبل البداية، فهذه أشياء ستحتاجها قطعاً للنشر.
اختبار التطبيق:
لن يُسمح لك بالنشر على المتجر قبل اتمام مرحلة اختبار مغلقة للتطبيق تشرف عليها بنفسك، في حالتي: احتجت لتوفير 12 مختبراً للتطبيق في نسخة اختبار مغلقة، شخصياً جمعت عناوين البريد الإلكتروني من بعض المهتمين عبر تويتر. حسب فهمي، قد يطلب المتجر أحياناً عدداً مختلفاً من المختبرين، وقد لا يكون هذا العدد متاحاً لدى المطوّر، وهناك خدمات مدفوعة تقدّم خدمة اختبار التطبيقات على المتجر في هذه الخطوة.
بعد توفير هذا العدد المقرر من المختبرين، عليك الانتظار لفترة 14 يوماً قبل أن يسمح لك بالتقديم على طلب نشر على العام للتطبيق - Production.
روابط يمكن أن تساعدك في رحلتك كما ساعدتني: