رسم الأرض

Peter Conn
Peter Conn

هناك قدر لا بأس به من المنظومة المتكاملة حول "الأنشطة الموثوق بها على الويب"، وقد يكون من الصعب جدًا معرفة كيفية ارتباط كل شيء ببعضه وما يجب استخدامه. نأمل أن تتناول هذه المقالة هذه المشكلة.

إذا كنت مستخدِمًا جديدًا لميزة "النشاطات الموثوق بها على الويب" أو كنت تبحث فقط عن مجموعة الأدوات المقترَحة التي يجب استخدامها اليوم، إليك ما يجب الانتباه إليه:

  • Bubblewrap: أداة NodeJS تتيح للمطوّرين إنشاء حزمة APK لنظام التشغيل Android وبنائها لتغليف تطبيق ويب متقدّم حالي. يستند التطبيق الذي تم إنشاؤه إلى "أنشطة الويب الموثوق بها"، ولكن يتم إبلاغ المطوّر بهذه العملية بشكل شفاف. لا يلزم توفّر خبرة في تطوير تطبيقات Android. راجِع مستندات Bubblewrap للبدء.
  • android-browser-helper: مكتبة Android التي تُحاط ببروتوكول Trusted Web Activities يُنصح به للمطوّرين الملمّين بتطوير تطبيقات Android ويريدون استخدام "أنشطة الويب الموثوق بها" كأحد الأنشطة في تطبيق Android أو إجراء تخصيصات لا تتوافق مع Bubblewrap. للبدء باستخدام android-browser-helper، يُرجى الاطّلاع على المستندات والعروض التوضيحية.

يقدّم القسم التالي ملخّصًا موجزًا لجميع المشاريع في ما يتعلّق ببعضها. أخيرًا (للمهتمين حقًا)، يتوفّر قسم "السجلّ" يعرض لك كيفية وصولنا إلى ما نحن عليه الآن وخططنا المتعلّقة بالمستقبل القريب.

نظرة عامة على المكتبات

في ما يلي ملخّص قصير في جملة واحدة لكل مكتبة من المكتبات التي قد تستخدمها:

  • androidx.browser، وهي مكتبة Android للتفاعل مع المتصفّح المثبَّت على جهاز المستخدم
  • مساعِد متصفّح Android، وهي مكتبة تستند إلى androidx.browser لعملاء "نشاط الويب الموثوق" ، وتقدّم طرقًا ملائمة وإعدادات تلقائية معقولة.
  • Bubblewrap، وهي أداة لإنشاء أنشطة ويب موثوق بها من تطبيقات الويب التقدّمية بدون لمس أي رمز Java

بالإضافة إلى ذلك، تحل كل مكتبة أو أداة من هذه المكتبات أو الأدوات محل مكتبة أو أداة قديمة:

السجلّ

مكتبة دعم Android

توفّر مكتبة Android Support Library نظام Android الأساسي مع واجهات برمجة تطبيقات جديدة وميزات ملفتة للانتباه تتعلّق بالتوافق. وهي مُقسَّمة على حِزم متعدّدة، وتتضمّن مكتبة دعم علامات التبويب المخصّصة وظائف للتفاعل مع المتصفّحات على نظام المستخدم. تم تطوير مكتبة دعم علامات التبويب المخصّصة بشكل أساسي في مستودع GitHub الخاص بـ custom-tabs-client ، مع إعادة تحميل التغييرات إلى مكتبة Android Support Library.

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

بما أنّ النشاطات الموثوق بها على الويب مبنية على علامات التبويب المخصّصة، فقد بدأت في مكتبة custom-tabs-client هذه. تزيل ميزة "النشاطات الموثوق بها على الويب" شريط "العلامات المخصّصة" العلوي عندما يتصفّح المستخدم موقعًا إلكترونيًا يملكه مطوّر التطبيق. يتيح لك ذلك دمج موقعك الإلكتروني بسلاسة في تطبيق Android أصلي، ويمكن استخدامه لإنشاء تطبيقات توفّر الويب جميع وظائفها.

AndroidX

تم لاحقًا تغيير اسم مكتبة Android Support Library إلى AndroidX، وهي جزء من جهدٍ أكبر لتحسين تجربة المطوّرين يُعرف باسم JetPack. لذلك، كان على علامات التبويب المخصَّصة والأنشطة الموثوق بها على الويب الانتقال من مكتبة دعم علامات التبويب المخصَّصة إلى androidx.browser الجديدة.

كان بعض الرمز البرمجي الذي كتبناه في custom-tabs-client مناسبًا لمكتبة فئات مساعدة "نشاط الويب الموثوق به"، ولكن ليس لواجهة برمجة تطبيقات Android. لا يمكن نقل الرمز البرمجي الذي يتعامل مع التحقّق من إصدارات Chrome القديمة وطلب المستخدم لتحديثها أو اتخاذ قرارات بشأن كيفية تخزين البيانات إلى AndroidX. لذلك، أنشأنا مكتبة بديلة تحتوي على أجزاء custom-tabs-client التي تعذّر إدراجها في androidx.browser، وبالتالي تم إنشاء مساعِد متصفّح Android.

تم إنشاء مساعِد متصفّح Android ليحتوي على رمز يمكن أن يكون خاصًا بالمتصفّحات (وليس Chrome فقط، فنحن منفتحون على استخدام رمز مخصّص للمتصفّحات الأخرى) ويمكنه اتّخاذ قرارات ملموسة لا يمكن للمكتبات اتّخاذها. لقد انتهزنا هذه الفرصة لفصل أدوار هاتين المكتبتَين بشكل عام:

  • يحتوي androidx.browser على الوحدات الأساسية للتفاعل مع المتصفّحات على نظام المستخدم.
  • يحتوي مساعِد متصفّح Android على عمليات تنفيذ تلقائية ملائمة وسهلة الاستخدام.

تجميع عينات عشوائية لتوقّع النتائج

المطوّرون مشغولون جدًا، ولديهم الكثير من العمل والمواعيد النهائية التي يجب الالتزام بها. للمساعدة في ذلك، أنشأنا أداتين للسماح للمستخدمين ببدء استخدام ميزة "نشاط الويب الموثوق".

المشروع الأول (والأقدم) هو svgomg-twa، وهو مشروع Android مستضاف على GitHub يشغّل نشاطًا موثوقًا على الويب. تم تصميمه في الأصل ليكون مشروعًا تجريبيًا، ولكن تم تطويره ليصبح نموذجًا. يمكن للمستخدمين استنساخ هذا المستودع وتعديل ملف build.gradle للإشارة إلى موقعهم الإلكتروني، وإنشاءه وإنشاء نشاط موثوق على الويب بدون تعديل أي رمز Java. (يتطلب إثبات ملكية روابط مواد العرض الرقمية مزيدًا من الجهد، يمكنك الاطّلاع على مزيد من المعلومات هنا).

كان svgomg-twa يعتمد في البداية على custom-tabs-client، ولكن تم نقله بعد ذلك إلى Android Browser Helper (وبشكلٍ عارض إلى androidx.browser).

الأداة الأحدث والأكثر رواجًا هي Bubblewrap، وهي أداة Node.js ستأخذ ملف ملف بيان تطبيق الويب وتُنشئ لك نشاط ويب موثوقًا. هذه هي الطريقة الأسهل لإنشاء نشاط ويب موثوق من تطبيق ويب تقدّمي حالي، ولا تتطلّب معرفة بأيّ من ميزات تطوير تطبيقات Android.

المستقبل القريب

سنوقف نهائيًا استخدام svgomg-twa لسببَين:

  • ينشئ Bubblewrap بشكل أساسي svgomg-twa مملوءًا للمطوّر. ويتم ذلك بشكل تفاعلي ويمكن أن يتم الحصول على الإعدادات من بيان تطبيق الويب (الذي سيتوفّر على الأرجح في تطبيق PWA).
  • إذا كان المطوّرون بحاجة إلى مرجع حول كيفية بدء مشروع "النشاط الموثوق به على الويب" من الصفر، يمكنهم الاطّلاع على دليل العروض التوضيحية لمساعدات متصفّح Android.

على المطوّرين الجدد استخدام Bubblewrap لإنشاء مشروعهم بدلاً من ذلك. إذا كنت تستخدم حاليًا svgomg-twa وأجريت بعض التعديلات الكبيرة، يمكنك مواصلة استخدامه، ولكن لن تتلقّى تحديثات.

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