رسم الأرض

بيتر كون
بيتر كون

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

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

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

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

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

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

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

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

السجلّ

مكتبة دعم Android

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

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

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

AndroidX

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

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

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

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

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

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

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

بدأ الأمر svgomg-twa استنادًا إلى عميل علامات التبويب المخصص، ولكن تم نقله بعد ذلك إلى مساعد متصفّح Android (وandroidx.browser بشكل متبادل).

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

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

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

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

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

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