لای زمین

مقدار زیادی اکوسیستم در مورد فعالیت‌های وب مورد اعتماد وجود دارد و دیدن اینکه چگونه همه چیز به هم مرتبط است و از چه چیزی باید استفاده کنید می‌تواند بسیار دشوار باشد. این مقاله امیدوار است به آن بپردازد.

اگر تازه وارد فعالیت‌های وب مورد اعتماد هستید یا فقط به دنبال مجموعه ابزارهای توصیه‌شده‌ای هستید که باید امروز از آن استفاده کنید، در اینجا چیزی است که باید از آن آگاه باشید:

  • Bubblewrap : یک ابزار NodeJS که به توسعه دهندگان اجازه می دهد یک APK Android ایجاد و بسازند که یک PWA موجود را پوشش می دهد. برنامه تولید شده توسط Trusted Web Activities ارائه می شود، اما این برای توسعه دهنده شفاف است. هیچ تجربه توسعه اندروید مورد نیاز نیست. برای شروع ، مستندات Bubblewrap را بررسی کنید.
  • android-browser-helper : یک کتابخانه Android که پروتکل Trusted Web Activities را کپسوله می کند. برای توسعه دهندگانی که با توسعه Android آشنا هستند و می خواهند از فعالیت های وب مورد اعتماد به عنوان یکی از فعالیت ها در برنامه Android خود استفاده کنند یا سفارشی سازی هایی را انجام دهند که توسط Bubblewrap پشتیبانی نمی شود، توصیه می شود. برای شروع کار با android-browser-helper، اسناد و دموهای ما را بررسی کنید.

در بخش بعدی خلاصه ای از تمام پروژه ها در ارتباط با یکدیگر ارائه می شود. در نهایت (برای کسانی که واقعاً کنجکاو هستند) یک بخش تاریخ وجود دارد که به شما نشان می دهد چگونه به اینجا رسیدیم و در آینده نزدیک به کجا برنامه ریزی می کنیم.

مروری بر کتابخانه ها

در اینجا خلاصه ای کوتاه و تک جمله ای از هر یک از کتابخانه هایی است که ممکن است در نهایت از آنها استفاده کنید:

  • androidx.browser ، یک کتابخانه اندروید برای تعامل با مرورگر نصب شده در دستگاه کاربر.
  • راهنمای مرورگر Android ، یک ساختمان کتابخانه در androidx.browser برای مشتریان فعالیت وب مورد اعتماد که روش‌های راحت و پیش‌فرض‌های معقولی را ارائه می‌کند.
  • Bubblewrap ، ابزاری برای ایجاد فعالیت‌های وب مورد اعتماد از PWA بدون دست زدن به هیچ کد جاوا.

علاوه بر این، هر یک از این کتابخانه ها/ابزارها جایگزین یک کتابخانه قدیمی می شوند:

تاریخ

کتابخانه پشتیبانی اندروید

کتابخانه پشتیبانی اندروید پلتفرم اندروید را با APIهای جدید و ویژگی‌های سازگاری گسترش می‌دهد. این در چندین بسته تقسیم شده است، با کتابخانه پشتیبانی برگه های سفارشی که دارای عملکردی برای تعامل با مرورگرهای سیستم کاربر است. توسعه کتابخانه پشتیبانی از تب های سفارشی عمدتاً در مخزن GitHub -Custom-tabs-client انجام شد و تغییرات به کتابخانه پشتیبانی Android بازگردانده شد.

تب سفارشی یک فعالیت اندروید است که از یک مرورگر برای نمایش یک صفحه وب استفاده می کند. مزیت اصلی برای توسعه‌دهنده این است که می‌تواند مضمون باشد و دکمه بستن دارد، بنابراین کاربر همچنان در برنامه توسعه‌دهنده باقی می‌ماند (به‌جای ترک برنامه و رفتن به تجربه مرور کامل). به عنوان یک API Android، تب های سفارشی می تواند توسط هر مرورگری پشتیبانی شود و از مرورگر پیش فرض کاربر استفاده می کند (اگرچه توسعه دهندگان می توانند آن را لغو کنند).

از آنجایی که Trusted Web Activities بر روی برگه‌های سفارشی ساخته شده‌اند، زندگی خود را در این کتابخانه سفارشی-tabs-client شروع کردند. وقتی کاربر در حال مرور سایتی است که متعلق به توسعه‌دهنده برنامه است، «فعالیت‌های وب مورد اعتماد» نوار بالای برگه‌های سفارشی را حذف می‌کند. این درها را به روی یکپارچه سازی یکپارچه وب سایت شما در یک برنامه بومی Android باز می کند و می تواند برای ایجاد برنامه هایی استفاده شود که در آن همه عملکردها توسط وب ارائه می شود.

AndroidX

کتابخانه پشتیبانی اندروید بعداً به AndroidX تغییر نام داد که خود بخشی از یک تلاش بزرگتر برای بهبود تجربه توسعه دهندگان به نام JetPack است. بنابراین، برگه‌های سفارشی و فعالیت‌های وب مورد اعتماد باید از کتابخانه پشتیبانی Tabs سفارشی به androidx.browser جدید منتقل می‌شدند.

برخی از کدهایی که در custom-tabs-client نوشته بودیم برای کتابخانه کلاس‌های کمکی Trusted Web Activity مناسب بود، اما برای Android API مناسب نبود. کدهای مربوط به بررسی نسخه‌های قدیمی Chrome و ترغیب کاربر برای به‌روزرسانی یا تصمیم‌گیری درباره نحوه ذخیره داده‌ها، نمی‌توانند به AndroidX منتقل شوند. بنابراین، ما یک کتابخانه جایگزین ایجاد کردیم که حاوی این بخش‌های Custom-tabs-client باشد که نمی‌توانست به androidx.browser وارد شود، و بنابراین Helper مرورگر Android متولد شد.

راهنمای مرورگر Android برای حاوی کدهایی ایجاد شده است که می‌تواند مختص مرورگرها باشد (نه فقط Chrome، ما به طور خاص برای سایر مرورگرها کدنویسی می‌کنیم) و می‌تواند تصمیمات مشخصی بگیرد که کتابخانه‌ها نباید انجام دهند. ما از این فرصت استفاده کردیم تا به طور کلی نقش این دو کتابخانه را از هم جدا کنیم:

  • androidx.browser شامل بلوک های اساسی برای تعامل با مرورگرهای موجود در سیستم کاربر است.
  • راهنمای مرورگر اندروید شامل پیاده‌سازی‌های پیش‌فرض راحت و معقول است.

بوت استرپینگ

توسعه‌دهندگان افراد پرمشغله‌ای هستند، کارهای زیادی برای انجام دادن و ضرب‌الاجل‌هایی که باید انجام دهند. برای کمک به این کار، ما دو ابزار ایجاد کردیم تا به کاربر اجازه راه‌اندازی فعالیت وب مورد اعتماد خود را بدهد.

اولین (و قدیمی ترین) svgomg-twa است که یک پروژه اندرویدی میزبان GitHub است که یک فعالیت وب مورد اعتماد را راه اندازی می کند. این در ابتدا به عنوان یک پروژه آزمایشی طراحی شده بود که بیشتر به یک الگو تبدیل شد. کاربران می‌توانند آن مخزن را شبیه‌سازی کنند و فایل build.gradle را تغییر دهند تا به وب‌سایت خودشان اشاره کند، آن را بسازند و بدون دست زدن به کد جاوا، یک فعالیت وب مورد اعتماد تولید کنند. (تأیید شدن پیوندهای دارایی دیجیتال به تلاش بیشتری نیاز دارد، بیشتر در اینجا بخوانید.)

svgomg-twa بسته به سفارشی-tabs-client شروع به کار کرد، اما سپس به Helper مرورگر Android (و به طور موقت androidx.browser) منتقل شد.

جدیدترین و درخشان‌ترین ابزار Bubblewrap است، یک ابزار Node.js که مانیفست برنامه وب شما را می‌گیرد و یک فعالیت وب مورد اعتماد برای شما ایجاد می‌کند. این ساده ترین راه برای ایجاد یک فعالیت وب مورد اعتماد از یک PWA موجود است و به دانش توسعه اندروید نیاز ندارد.

آینده نزدیک

ما svgomg-twa را به دو دلیل منسوخ خواهیم کرد:

  • Bubblewrap اساسا یک svgomg-twa پر شده برای یک توسعه دهنده تولید می کند. این کار را به صورت تعاملی انجام می‌دهد و می‌تواند پیکربندی را از یک مانیفست برنامه وب (که احتمالاً یک PWA از قبل دارد) بگیرد.
  • اگر توسعه‌دهندگان مرجعی برای نحوه شروع پروژه فعالیت وب مورد اعتماد خود از ابتدا می‌خواهند، می‌توانند به فهرست دموهای راهنمای مرورگر Android مراجعه کنند.

توسعه دهندگان جدید باید از Bubblewrap برای تولید پروژه خود استفاده کنند. اگر در حال حاضر از svgomg-twa استفاده می کنید و تغییرات زیادی انجام داده اید، بهتر است این کار را ادامه دهید، اما به روز رسانی دریافت نخواهید کرد.

ما قصد داریم تا Bubblewrap را تا حد ممکن توانمند کنیم، بنابراین اگر یک ویژگی واضح وجود ندارد یا با یک اشکال مواجه شدید، با خیال راحت مشکلی را ایجاد کنید .