stringtranslate.com

برنامه وب پیشرفته

آرم PWA

برنامه وب پیشرونده ( PWA ) یا برنامه وب پیشرونده ، نوعی از برنامه وب است که می تواند به عنوان یک برنامه مستقل روی دستگاه نصب شود . [1] PWA ها با استفاده از کش آفلاین مرورگر وب دستگاه نصب می شوند . [2]

PWA ها از سال 2016 به عنوان جایگزینی برای برنامه های کاربردی بومی (ویژه دستگاه) معرفی شدند، با این مزیت که نیازی به بسته بندی یا توزیع جداگانه برای پلتفرم های مختلف ندارند. آنها را می توان در طیف وسیعی از سیستم های مختلف، از جمله دسکتاپ و دستگاه های تلفن همراه استفاده کرد . انتشار برنامه در سیستم های توزیع دیجیتال مانند Apple App Store یا Google Play اختیاری است. [2]

از آنجایی که یک PWA در قالب یک صفحه وب یا وب سایت ساخته شده با استفاده از فناوری های رایج وب از جمله HTML ، CSS ، جاوا اسکریپت و WebAssembly ارائه می شود ، [3] می تواند بر روی هر پلتفرمی با یک مرورگر سازگار با PWA کار کند. از سال 2021، ویژگی‌های PWA به درجات مختلف توسط Google Chrome ، Apple Safari ، Firefox برای Android و Microsoft Edge [4] [5] پشتیبانی می‌شوند اما توسط Firefox برای دسکتاپ پشتیبانی نمی‌شوند. [6]

تاریخچه

پیشینیان

در کنفرانس جهانی توسعه دهندگان اپل در سال 2007، استیو جابز اعلام کرد که آیفون "برنامه های ایجاد شده با استانداردهای اینترنت وب 2.0 را اجرا خواهد کرد". [7] هیچ کیت توسعه نرم‌افزاری (SDK) مورد نیاز نبود و برنامه‌ها از طریق موتور مرورگر Safari به طور کامل در دستگاه ادغام می‌شوند . [8] این مدل بعداً به فروشگاه App تغییر یافت ، به عنوان وسیله ای برای مماشات از توسعه دهندگان ناامید. [9] در اکتبر 2007 جابز اعلام کرد که یک SDK در سال بعد راه اندازی خواهد شد. [8] در نتیجه، اگرچه اپل به پشتیبانی از برنامه های وب ادامه داد، اکثریت قریب به اتفاق برنامه های iOS به سمت فروشگاه App تغییر مکان دادند.

از اوایل دهه 2010، صفحات وب پویا امکان استفاده از فناوری های وب را برای ایجاد برنامه های کاربردی وب تعاملی فراهم کردند . طراحی وب ریسپانسیو ، و انعطاف پذیری اندازه صفحه نمایش آن، توسعه PWA را در دسترس تر کرده است. پیشرفت‌های مداوم در HTML، CSS و جاوا اسکریپت به برنامه‌های کاربردی وب اجازه می‌دهد تا سطوح بیشتری از تعامل را در خود جای دهند و تجربه‌های مشابه بومی را در یک وب‌سایت ممکن می‌سازند. [10]

در سال 2013، موزیلا سیستم عامل فایرفاکس را منتشر کرد . در نظر گرفته شده بود که یک سیستم عامل منبع باز برای اجرای برنامه های وب به عنوان برنامه های بومی در دستگاه های تلفن همراه باشد. سیستم عامل فایرفاکس مبتنی بر موتور رندر Gecko با رابط کاربری به نام Gaia بود که در HTML5 نوشته شده بود. توسعه سیستم عامل فایرفاکس در سال 2016 به پایان رسید، [11] و این پروژه در سال 2017 به طور کامل متوقف شد، [12] اگرچه یک فورک از سیستم عامل فایرفاکس به عنوان پایه KaiOS ، یک پلت فرم تلفن ویژه استفاده شد. [13]

معرفی اولیه

در سال 2015، طراح فرانسیس بریمن و مهندس گوگل کروم، الکس راسل، اصطلاح «برنامه‌های وب پیشرو» [14] را برای توصیف برنامه‌هایی که از ویژگی‌های جدید پشتیبانی شده توسط مرورگرهای مدرن، از جمله کارگران خدمات و مانیفست‌های برنامه‌های وب ، استفاده می‌کنند ، ابداع کردند که به کاربران اجازه می‌دهد برنامه‌های وب را ارتقا دهند. به برنامه های کاربردی وب مترقی در سیستم عامل اصلی خود (OS). سپس گوگل تلاش های قابل توجهی را برای ترویج توسعه PWA برای اندروید انجام داد. [15] [16] فایرفاکس پشتیبانی از کارگران خدمات را در سال 2016 معرفی کرد، و مایکروسافت اج و اپل سافاری در سال 2018 دنبال کردند، [17] [15] کارگران خدمات را در همه سیستم‌های اصلی در دسترس قرار دادند.

تا سال 2019، PWA توسط نسخه‌های دسکتاپ اکثر مرورگرها، از جمله Microsoft Edge [18] (در ویندوز ) و Google Chrome [19] (در Windows، macOS ، ChromeOS و Linux ) پشتیبانی می‌شد.

در دسامبر 2020، فایرفاکس برای دسکتاپ اجرای PWA ها را کنار گذاشت (به طور خاص، پیکربندی نمونه اولیه « مرورگر خاص سایت » را که به عنوان یک ویژگی آزمایشی در دسترس بود، حذف کرد). یکی از معماران فایرفاکس خاطرنشان کرد: سیگنالی که امیدوارم ارسال کنیم این است که پشتیبانی از PWA به این زودی ها روی فایرفاکس دسکتاپ نمی آید. [6] موزیلا همچنان قصد دارد از PWA ها در اندروید پشتیبانی کند. [20]

پشتیبانی از مرورگر

خصوصیات

برنامه های وب پیشرفته همه برای کار بر روی هر مرورگری که با استانداردهای وب مناسب مطابقت دارد طراحی شده اند . همانند سایر راه حل های چند پلتفرمی، هدف کمک به توسعه دهندگان برای ساخت اپلیکیشن های چند پلتفرمی آسان تر از برنامه های بومی است. [15] برنامه‌های وب پیشرو از استراتژی توسعه وب بهبود تدریجی استفاده می‌کنند .

برخی از برنامه های وب مترقی از رویکردی معماری به نام App Shell Model استفاده می کنند. [24] در این مدل، کارکنان خدمات، رابط کاربری پایه یا " پوسته " برنامه وب طراحی وب پاسخگو را در حافظه پنهان آفلاین مرورگر ذخیره می کنند . این مدل به PWA ها اجازه می دهد تا استفاده مشابه بومی را با یا بدون اتصال وب حفظ کنند. این می تواند زمان بارگذاری را با ارائه یک قاب استاتیک اولیه ، یک طرح یا معماری که محتوا را می توان به صورت تدریجی و همچنین پویا بارگذاری کرد، بهبود بخشد. [25]

معیارهای فنی

معیارهای پایه فنی برای اینکه یک سایت به عنوان یک برنامه وب پیشرو در نظر گرفته شود و در نتیجه قابلیت نصب توسط مرورگرها را داشته باشد، توسط راسل در سال 2016 توصیف شد [26] و از آن زمان به روز شد: [27] [28]

فن آوری ها

فن آوری های زیادی وجود دارد که معمولاً برای ایجاد برنامه های وب مترقی استفاده می شود. یک برنامه وب در صورتی که معیارهای نصب را برآورده کند PWA در نظر گرفته می شود، بنابراین می تواند به صورت آفلاین کار کند و می تواند به صفحه اصلی دستگاه اضافه شود. برای برآورده کردن این تعریف، همه PWA ها حداقل به یک مانیفست و یک سرویس دهنده نیاز دارند. [31] [32] [33] فناوری‌های دیگری ممکن است برای ذخیره داده‌ها، برقراری ارتباط با سرورها یا اجرای کد استفاده شوند.

آشکار

مانیفست برنامه وب [34] یک مشخصات کنسرسیوم وب جهانی (W3C) است که یک مانیفست مبتنی بر JSON (معمولاً با برچسب manifest.json) [30] تعریف می‌کند تا به توسعه‌دهندگان مکانی متمرکز برای قرار دادن ابرداده مرتبط با یک برنامه وب از جمله:

این ابرداده برای افزودن یک برنامه به صفحه اصلی یا فهرست کردن در کنار برنامه های بومی بسیار مهم است.

پشتیبانی از iOS

iOS Safari تا حدی مانیفست‌ها را پیاده‌سازی می‌کند، در حالی که بیشتر فراداده‌های PWA را می‌توان از طریق برنامه‌های افزودنی اختصاصی اپل برای تگ‌های متا تعریف کرد. این تگ ها به توسعه دهندگان اجازه می دهد تا نمایش تمام صفحه را فعال کنند، آیکون ها و صفحه های اسپلش را تعریف کنند و نامی برای برنامه تعیین کنند. [35] [36]

کارگران خدماتی

Service Worker یک وب کارگر است که یک پروکسی شبکه قابل برنامه ریزی را پیاده سازی می کند که می تواند به درخواست های وب/HTTP از سند اصلی پاسخ دهد. می‌تواند در دسترس بودن یک سرور راه دور را بررسی کند، محتوای حافظه پنهان زمانی که آن سرور در دسترس است را ذخیره کند و آن محتوا را بعداً به سند ارائه دهد. کارکنان خدمات، مانند سایر کارگران وب، جدا از زمینه سند اصلی کار می کنند. کارکنان خدمات می‌توانند اعلان‌های فشاری را مدیریت کنند و داده‌ها را در پس‌زمینه همگام‌سازی کنند، درخواست‌های منابع را ذخیره یا بازیابی کنند، درخواست‌های شبکه را رهگیری کنند و به‌روزرسانی‌های متمرکز را مستقل از سندی که آنها را ثبت کرده است، دریافت کنند، حتی زمانی که آن سند بارگیری نشده است. [37]

کارگران خدمات یک چرخه عمر سه مرحله ای ثبت نام، نصب و فعال سازی را طی می کنند. ثبت شامل گفتن مکان سرویس دهنده در آماده سازی برای نصب به مرورگر است. نصب زمانی اتفاق می‌افتد که هیچ سرویس‌دهنده‌ای در مرورگر برنامه وب نصب نشده باشد، یا اگر به‌روزرسانی برای سرویس‌کار وجود داشته باشد. فعال سازی زمانی اتفاق می افتد که تمام صفحات PWA بسته می شوند، به طوری که هیچ تضادی بین نسخه قبلی و نسخه به روز شده وجود ندارد. چرخه حیات همچنین به حفظ ثبات در هنگام جابجایی بین نسخه‌های یک سرویس‌گر کمک می‌کند، زیرا تنها یک سرویس‌کار می‌تواند برای یک دامنه فعال باشد. [37]

WebAssembly

WebAssembly به کدهای از پیش کامپایل شده اجازه می دهد تا در یک مرورگر وب با سرعت تقریباً اصلی اجرا شوند. [38] بنابراین، کتابخانه های نوشته شده به زبان هایی مانند C را می توان به برنامه های وب اضافه کرد. WebAssembly که در سال 2015 اعلام شد و اولین بار در مارس 2017 منتشر شد، در 5 دسامبر 2019 به توصیه W3C تبدیل شد [39] [40] [41] و جایزه نرم افزار زبان های برنامه نویسی را از ACM SIGPLAN در سال 2021 دریافت کرد . [42]

ذخیره سازی داده ها

زمینه‌های اجرای برنامه‌های وب پیشرو هر زمان که ممکن باشد تخلیه می‌شوند، بنابراین برنامه‌های وب پیشرو باید اکثر حالت داخلی بلندمدت خود (داده‌های کاربر، منابع برنامه بارگذاری شده به صورت پویا) را به یکی از روش‌های زیر ذخیره کنند:

ذخیره سازی وب
Web Storage یک API استاندارد W3C است که ذخیره‌سازی با ارزش کلید را در مرورگرهای مدرن فعال می‌کند. API از دو شی تشکیل شده است، sessionStorage (که فضای ذخیره‌سازی فقط جلسه را فعال می‌کند و پس از پایان جلسه مرورگر پاک می‌شود) و localStorage (که فضای ذخیره‌سازی را در هر جلسه فعال می‌کند). [43]
API پایگاه داده نمایه شده
Indexed Database API یک API استاندارد پایگاه داده W3C است که در همه مرورگرهای اصلی موجود است. API توسط مرورگرهای مدرن پشتیبانی می‌شود و ذخیره‌سازی اشیاء JSON و هر ساختاری را که به‌عنوان یک رشته قابل نمایش باشد، امکان‌پذیر می‌سازد. [44] Indexed Database API را می توان با یک کتابخانه wrapper که ساختارهای اضافی در اطراف آن ارائه می دهد استفاده کرد.

مقایسه با اپلیکیشن های بومی

در سال 2017، توییتر Twitter Lite را منتشر کرد، یک جایگزین PWA برای برنامه های رسمی اندروید و iOS . با توجه به توییتر، Twitter Lite تنها 1 تا 3 درصد از اندازه برنامه های بومی را مصرف می کند. [45] Starbucks یک PWA را ارائه می دهد که 99.84٪ کوچکتر از برنامه iOS معادل خود است. پس از استقرار PWA، استارباکس تعداد سفارش‌های آنلاین را دو برابر کرد و کاربران دسکتاپ تقریباً با همان نرخی که کاربران برنامه‌های موبایل سفارش می‌دادند، سفارش دادند. [46]

یک بررسی در سال 2018 که توسط فوربس منتشر شد ، نشان داد که کاربران PWA Pinterest در مقایسه با وب‌سایت تلفن همراه قبلی، 40 درصد زمان بیشتری را در سایت صرف می‌کنند. نرخ درآمد تبلیغات نیز 44 درصد و تعاملات اصلی 60 درصد افزایش یافته است. [47] Flipkart شاهد بود که 60٪ از مشتریانی که برنامه اصلی خود را حذف نصب کرده بودند، برای استفاده از Flipkart PWA بازگشتند. Lancôme شاهد کاهش 84 درصدی زمان تا تعاملی شدن صفحه بود که منجر به افزایش 17 درصدی در تبدیل و افزایش 53 درصدی در جلسات تلفن همراه در iOS با PWA خود شد. [48]

انتشار از طریق اپ استور

از آنجایی که PWA a نیازی به بسته‌بندی یا توزیع جداگانه برای پلتفرم‌های مختلف ندارد و از طریق وب در دسترس کاربران است، لازم نیست توسعه‌دهندگان آن را از طریق سیستم‌های توزیع دیجیتال مانند Apple App Store ، Google Play ، Microsoft Store یا Samsung منتشر کنند. فروشگاه گلکسی . اپ استورهای بزرگ از انتشار PWA به درجات مختلف پشتیبانی می کنند. [2] گوگل پلی، مایکروسافت استور، [49] و فروشگاه گلکسی سامسونگ از PWA پشتیبانی می کنند، اما اپل اپ استور این کار را نمی کند. فروشگاه مایکروسافت برخی PWAهای واجد شرایط را پس از کشف آنها از طریق نمایه سازی Bing به صورت خودکار (حتی بدون درخواست نویسندگان برنامه) منتشر می کند . [50]

همچنین ببینید

مراجع

  1. «برنامه‌های وب پیشرفته چیست؟ راهنمای PWA برای مبتدیان». freeCodeCamp.org ​18-01-2024 . بازیابی شده در 2024-05-06 .
  2. ^ abc "برنامه های وب پیشرو | Software AG". techradar.softwareag.com . بازیابی شده در 2020-09-25 .
  3. ^ با مسئولیت محدود، سیبلیوم. تسلط بر توسعه Front-end Cybellium Ltd. p. 273. شابک 979-8-8668-4882-9.
  4. ^ "آیا می توانم از pwa استفاده کنم؟". CanIUse . بازیابی شده در 27 ژانویه 2021 .
  5. «آیا کارگر خدماتی آماده است؟». جیک آرچیبالد
  6. ↑ abcde Newman، Jared (26-01-2021). فایرفاکس به تازگی از یک بخش کلیدی وب باز فاصله گرفت. شرکت فست . بازیابی شده در 2021-01-27 .
  7. ^ جابز، استیو؛ اپل (11 ژوئن 2007). "آیفون برای پشتیبانی از برنامه های وب 2.0 شخص ثالث". اپل .
  8. ↑ اب ریچی، رنه (5 مارس 2018). «App Store Year Zero: برنامه‌های وب غیر شیرین آیفون را به SDK سوق دادند». iMore . بازبینی شده در 23 مه 2019 .
  9. «دیدگاه اصلی جابز برای آیفون: بدون برنامه بومی شخص ثالث». 9to5Mac . 21 اکتبر 2011 . بازبینی شده در 22 مه 2019 .
  10. مارکوت، ایتان (25 مه 2010). "طراحی وب سایت واکنش گرا". یک لیست جدا بازیابی شده در 25 مه 2010 .
  11. «موزیلا به توسعه تجاری سیستم عامل فایرفاکس پایان داد - اخبار فناوری gHacks». اخبار فناوری gHacks . 2016-09-27 . بازیابی شده در 2022-05-05 .
  12. ^ هافمن، کریس؛ PCWorld | (28-09-2016). "موزیلا تمام توسعه تجاری در سیستم عامل فایرفاکس را متوقف می کند". PCWorld ​بازیابی شده در 2021-03-17 .
  13. «KaiOS، یک پلتفرم تلفن همراه که بر روی خاکستر سیستم عامل فایرفاکس ساخته شده است، برنامه های فیس بوک، توییتر و گوگل را اضافه می کند». TechCrunch . 26 فوریه 2018 . بازیابی شده در 2021-03-17 .
  14. ^ راسل، الکس. "برنامه های وب پیشرو: فرار از برگه ها بدون از دست دادن روح" . بازبینی شده در 15 ژوئن 2015 .
  15. ↑ abc Evans، Jonny (26 ژانویه 2018). "اپل با برنامه های وب به آینده باز می گردد". دنیای کامپیوتر بازبینی شده در 23 مه 2019 .
  16. لاداج، هارون (17 آوریل 2018). "برنامه های وب مترقی اینجا هستند و همه چیز را تغییر می دهند". درجه ​بازبینی شده در 23 مه 2019 .
  17. ^ "آیا می توانم از ... پشتیبانی از جداول برای HTML5، CSS3، و غیره استفاده کنم". caniuse.com . بازیابی شده در 2021-05-16 .
  18. ^ ab "نمای کلی برنامه های وب پیشرو در ویندوز". مستندات Microsoft Edge . 13 مارس 2021 . بازبینی شده در 13 مارس 2021 .
  19. LePage، Pete (4 ژوئن 2019). "برنامه های وب پیشرفته روی دسکتاپ". توسعه دهندگان گوگل بازبینی شده در 13 سپتامبر 2019 .
  20. ^ agi90 (19 دسامبر 2020). "نظر". Reddit . ما هیچ برنامه ای برای غروب PWA در تلفن همراه نداریم که من می دانم.{{cite web}}: CS1 maint: نام های عددی: فهرست نویسندگان ( پیوند )
  21. «PWA خود را روشن کنید». مرورگر ویوالدی 07-10-2021 . بازیابی شده در 2021-10-11 .
  22. ^ زاویه، پاتریک؛ اونارد، ژان ایو؛ کاسرس، مارکوس؛ کانن، آدا رز; کارلسون، اریک؛ دیویدسون، گرت؛ دیویس، جان؛ دوبوست، کارل؛ ایدسون، بردی (06-06-2023). "اخبار از WWDC23: ویژگی های WebKit در سافاری 17 بتا". وب کیت . بازیابی شده در 14-06-2023 .
  23. ^ زاویه، پاتریک؛ کاسرس، مارکوس؛ کلیمان، رضوان; دیویس، جان؛ ایدسون، برادی؛ هچر، تیموتی؛ نیوا، ریوسوکه؛ سیمونز، جن (27-03-2023). "ویژگی های WebKit در سافاری 16.4". وب کیت . بازیابی شده در 14-06-2023 .
  24. «مدل پوسته برنامه».
  25. عثمانی، آدی. "مدل پوسته برنامه | مبانی وب". توسعه دهندگان گوگل بازبینی شده در 23 مه 2019 .
  26. ^ راسل، الکس. " دقیقاً چه چیزی یک برنامه وب پیشرفته را می سازد" . بازبینی شده در 18 اکتبر 2016 .
  27. ^ "برای نصب شدن چه چیزی لازم است؟". web.dev . بازیابی شده در 2021-05-19 .
  28. «برنامه وب پیشرو». web.dev . بازبینی شده در 15 ژوئن 2015 .
  29. «Service Worker caching and HTTP caching». web.dev . بازیابی 2021-05-19 .
  30. ^ ab W3C "Web App Manifest"، پیش نویس کاری، بازیابی شده در 12 سپتامبر 2016.
  31. «قابل کشف». شبکه توسعه دهندگان موزیلا بازیابی شده در 2017-04-24 .
  32. «شبکه مستقل». شبکه توسعه دهندگان موزیلا بازیابی شده در 2017-04-24 .
  33. «بارگیری فوری برنامه های وب با معماری پوسته برنامه». توسعه دهندگان گوگل بازیابی شده در 2017-04-24 .
  34. «Web Manifest Docs on MDN». اسناد وب MDN .
  35. «چه خبرهای جدید در iOS 12.2 برای برنامه‌های وب پیشرو». متوسط ​27 مارس 2019.
  36. «پیکربندی برنامه های وب». راهنمای محتوای وب سافاری .
  37. ^ ab "مقدمه ای بر خدمات کارگر | وب". توسعه دهندگان گوگل 1 مه 2019 . بازبینی شده در 23 مه 2019 .
  38. «مفاهیم WebAssembly». MDN . بازبینی شده در 14 آگوست 2018 .
  39. ^ کنسرسیوم وب جهانی. "مشخصات هسته WebAssembly". کنسرسیوم وب جهانی (W3) . بازیابی شده در 2024-05-06 .
  40. "WebAssembly 1.0 تبدیل به توصیه W3C و چهارمین زبانی که به صورت بومی در مرورگرها اجرا می شود". InfoQ . بازیابی شده در 2024-05-06 .
  41. کانتا نگوین (2022-05-01). "آشیانه خانه" . بازیابی شده در 2024-05-06 .
  42. «جایزه نرم افزار زبان های برنامه نویسی». www.sigplan.org . بازیابی شده در 2024-05-06 .
  43. «Web Storage API». MDN . بازبینی شده در 14 آگوست 2018 .
  44. «مفاهیم پشت IndexedDB». MDN . بازبینی شده در 14 آگوست 2018 .
  45. شانکلند، استفان (30 ژوئیه 2020). "برنامه توییتر به متوقف کردن تلفن ها از خفه کردن وب کمک می کند." CNET . بازبینی شده در 11 فوریه 2023 .
  46. «۱۲ بهترین نمونه از برنامه‌های وب پیشرو (PWA) در سال ۲۰۲۱». سیمی کارت 22-02-2021 . بازیابی شده در 2021-05-16 .
  47. عثمانی، آدی (30 نوامبر 2017). "مطالعه موردی عملکرد اپلیکیشن وب پیشرو پینترست". تیم ChromiumDev . بازبینی شده در 10 فوریه 2023 .
  48. گازدکی، اندرو (9 مارس 2018). "چرا برنامه های وب پیشرفته جایگزین برنامه های موبایل بومی خواهند شد". فوربس ​بازبینی شده در 10 فوریه 2023 .
  49. ^ MSEdgeTeam. «برنامه وب پیشرو خود را در فروشگاه مایکروسافت منتشر کنید - Microsoft Edge Development». docs.microsoft.com . بازیابی شده در 2021-05-16 .
  50. «اولین دسته از برنامه‌های وب پیشرفته ویندوز 10 اینجاست». ویندوز مرکزی 07-04-2018 . بازیابی شده در 2021-05-16 .

لینک های خارجی