اپلیکیشنهای پیشرفتهی وب یا PWA چیست؟
هیچوقت شده آرزو کنید که اپلیکیشنهای وب هم مثل اپلیکیشنهای واقعی عمل میکردند؟ اپلیکیشنهای پیشرفتهی وب (Progressive Web Apps) ایدهی جدیدی است که با هدف انجام همین کار مطرح شده است.
توضیح کوتاه: اپلیکیشنهای پیشرفتهی وب به چه معناست؟
گویا آی تی: به طور خلاصه میتوان گفت که گوگل، مایکروسافت، موزیلا و سایر شرکتها در حال کار بر روی استاندارد جدید اپلیکیشنهای وب هستند. حتی اپل هم به این ماجرا پیوسته و در حال افزودن پشتیبانی از این فناوری میباشد. این اپلیکیشنها هنوز هم اپلیکیشنهای وب هستند، ولی رفتار آنها بیشتر شبیه اپلیکیشنهای بومی سیستم عاملهاست. این برنامهها هم مثل اپلیکیشنهای وب مستقیماً در خود سایت مربوطه میزبانی میشوند. توسعهدهندگان میتوانند این برنامهها را به طور مستقیم و بدون نیاز به ثبت آنها در فروشگاههای مختلف نرمافزاری، از طریق وب سرور خودشان آپدیت کنند. با این کار این اپلیکیشن بر روی همهی مرورگرها و پلتفرمها اجرا خواهد شد.
وقتی یک برنامهی PWA را نصب میکنید، بسته به پلتفرمتان، یک صفحهی خانگی، یک نوار وظیفه یا حتی یک میانبر رومیزی دریافت مینمایید. برنامه به سرعت بارگذاری میشود و از قابلیتهایی نظیر پشتیبانی آفلاین، ارسال نوتیفیکیشن، همگامسازی پسزمینه و سایر ویژگیهای مدرن هم پشتیبانی میکند.
این اپلیکیشنها میتوانند از فناوریهای موجود وب برای دسترسی به خدمات مربوط به موقعیتیابی، وبکم و دیگر ویژگیهای این چنینی که معمولاً فقط در اپلیکیشنهای بومی یافت میشوند استفاده کنند. البته برای فعال شدن این قابلیتها ابتدا باید دسترسیهای مربوطه را به آنها بدهید.
توضیحات فنی: نحوهی عملکرد این برنامهها چگونه است؟
اپلیکیشنهای پیشرفتهی وب همان اپلیکیشنهای سنتی وب هستند که با فناوریهای مدرن وب توسعه داده شدهاند تا تجربهی کاربری اپلیکیشن-گونهتری را برای شما به ارمغان بیاورند. عبارت Progressive در این عنوان به معنای این است که این برنامهها با قابلیتهای مدرن وب شدیداً توسعه یافتهاند. البته این برنامهها در مرورگرهای قدیمیتر که از قابلیتهای جدید پشتیبانی نمیکنند هم کار میکنند، اما عملکرد آنها در مرورگرهای جدید بهتر و پرقابلیتتر است.
این اپلیکیشنها در نوار وظیفهی ویندوز ۱۰ و هر پلتفرم دیگری که قادر به اجرای کروم است پنجره و میانبر مخصوص خودشان را دارند. علاوه بر این در دستگاههای اندرویدی و سایر سیستم عاملهای موبایلی هم برای خودشان بر روی صفحهی خانگی دستگاه یک آیکن مخصوص میسازند. وقتی این برنامهها را باز میکنید، به لطف Cache API و IndexedDB که منابع و اطلاعات اپلیکیشن را بر روی دستگاه شما ذخیره میکند، حتی در صورت آفلاین بودن هم به آنها اجازهی فعالیت میدهد. فناوریهایی مثل Service Workers و ارسال نوتیفیکیشن به این اپلیکیشنها اجازه میدهد تا وظایف پسزمینه نظیر همگامسازی و ارسال نوتیفیکیشن را مثل یک اپلیکیشن بومی به خوبی اجرا کنند؛ حتی اگر برنامه در حافظهی دستگاه باز نباشد. Fetch API امکان درخواست اطلاعات توسط اپلیکیشن را سریعتر و سادهتر ممکن میسازد. این برنامهها یک فایل Web App Manifest دارند که نام، آیکن، اسم سازنده و توضیحات مربوط به اپلیکیشن را که در هنگام نصب مورد استفاده قرار میگیرد فراهم میکند. اپلیکیشنهای PWA همیشه با پروتکل رمزنگاری شدهی HTTPS کار میکنند و این یعنی ایمنی آنها بالاست و امکان دستکاری اطلاعات در هنگام انتقال آنها وجود ندارد.
اپلیکیشنهای پیشرفتهی وب شبیه اپلیکیشنّهای بستهبندی شدهی (Packaged Apps) کروم گوگل یا اپلیکیشنهای وب میزبانی شده (Hosted Web Apps) مایکروسافت نیستند. آنها باید به عنوان یک فایل بستهبندی شده در فروشگاههای مختلف ثبت شوند. کل اپلیکیشن به صورت یک بستهی کوچک آفلاین در میآید و کاربران باید آن را از فروشگاه وب کروم یا ویندوز نصب کنند. به علاوه، این اپلیکیشنها پلتفرم-محور هستند و فقط بر روی کروم یا ویندوز کار میکنند. برای آپدیت اینّها، توسعهدهنده مجبور است فایلهای آفلاین مربوطه را تغییر داده و نسخهی جدید را دوباره بر روی فروشگاه اپلیکیشنها ثبت کند.
در طرف مقابل، PWA-ها هیچوقت داخل یک فایل آفلاین بستهبندی نمیشوند. آنها هم درست مثل اپلیکیشنهای سنتی وب که امروزه از آنها استفاده میکنیم به طور کامل بر روی سرورهای اپلیکیشن مربوطه میزبانی میشوند. اگر یک توسعهدهنده بخواهد اپلیکیشن پیشرفتهی وب خود را آپدیت کند، این کار دقیقاً مثل فرآیند آپدیت شدن اپلیکیشنهای وب – بر روی سرورها – انجام میشود. همهی پلتفرمها و مرورگرهایی که از PWA پشتیبانی میکنند میتوانند از همان اپلیکیشن پیشرفتهی وب استفاده نمایند.
PWA-ها را میتوان برای یافتن و نصب راحتتر برنامهها در فروشگاههای نرمافزاری قرار داد، ولی فروشگاهها هم صرفاً شما را به سرور مربوطه هدایت میکنند. حتی اگر یک اپلیکیشن با سیاستهای کاری فروشگاه سازگاری نداشته باشد، کاربران میتوانند آن را به طور مستقیم از طریق مرورگر خود نصب کنند.
این موضوع چه اهمیتی دارد؟
موضوع فقط این نیست که اپلیکیشنهای وب را کمی بهتر کنیم. موضوع ارائهی استاندارد جدیدی برای اپلیکیشنهای قابل نصب است که همهی پلتفرمها از آن پشتیبانی کنند. این یعنی در آیندهی نزدیک باید شاهد وقوع رویدادهای غافلگیرکنندهای باشیم.
برای مثال، وقتی این کار انجام شود، گوگل میتوانند سرویسهایی مثل جیمیل و Google Calendar را به PWA تبدیل کند. یعنی این سرویسها مثل اپلیکیشنهای بومی ویندوز ۱۰ در فروشگاه این سیستم عامل قرار میگیرند. با این کار مشکل گوگل که نمیخواهد از استانداردهای Universal Windows Platform (UWP) مایکروسافت پشتیبانی کند حل میشود. سایر توسعهدهندگانی که نمیخواستند اپلیکیشنهای UWP جداگانه بسازند هم با استفاده از PWA میتوانند از ویندوز ۱۰ پشتیبانی کنند.
توسعهدهندگان برای اجرای قدرتمندتر اپلیکیشنهای وب خود راهی سادهتر خواهند داشت تا اپلیکیشنهای خود را در گسترهی وسیعی از دستگاهها، بدون نیاز به درگیر شدن با پیچیدگیهای مربوط به فروشگاههای مختلف، به شکل یکپارچه به اجرا درآورند. اپلیکیشنهای وبی که همه جا کار کنند بهتر میتوانند با اپلیکیشنهای بومی مخصوص یک پلتفرم رقابت نمایند. شرکتی که منابع کافی برای تولید این تک اپلیکیشن را داشته باشد، میتواند PWA بسازد و به جای پشتیبانی مجزا از iOS، اندروید، ویندوز و اپلیکیشنهای وب همه را یکجا با هم داشته باشد.
و به خاطر فایلهای Web App Manifest که توسعهدهندگان میسازند، موتورهای جستجو میتوانند در سطح وب بگردند و به سادگی PWA-های موجود را پیدا کنند. این کار باعث میشود PWA-ها هم مثل صفحات وب به راحتی قابل یافت شوند.
چه پلتفرمهایی از این فناوری پشتیبانی میکنند؟
مدتی است که اپلیکیشنهای پیشرفتهی وب در حال توسعه میباشند، ولی به زودی قرار است در معرض دید عموم قرار بگیرند.
مایکروسافت با آپدیت بعدی ویندوز ۱۰ – با اسم رمز Redstone 4 که در ماه مارس ۲۰۱۸ منتشر میشود – پشتیبانی از PWA را معرفی میکند. برای سایر پلتفرمها هم میتوانید به وبسایت PWA بروید و نسخهی مربوطه را دانلود کنید. با این حال، برای نصب آسان این برنامهها مایکروسافت آنها را در فروشگاه خود لیست کرده است. خود توسعهدهندهها هم میتوانند اپلیکیشنهای خود را در فروشگاههای مورد نظرشان قرار دهند، ولی مایکروسافت با استفاده از موتور جستجوی بینگ PWA-های خوب را از سطح وب پیدا کرده و آنها را به طور خودکار لیست میکند. این اپلیکیشنها همچنان به طور عادی در وبسایت توسعهدهنده قرار داشته و بهروز میشود، اما مایکروسافت کار را راحت کرده و خودش آنها را پیدا و نصب میکند. در ویندوز ۱۰ برای پیدا، نصب و اجرا کردن PWA-ها حتی لازم نیست مرورگر Edge را باز کنید. این اتفاق به توسعهی فروشگاه ویندوز کمک میکند، ولی برای پلتفرم اپلیکیشنهای UWP مایکروسافت خبر خوبی نیست. با وجود PWA که امکان اجرای برنامه بر روی سیستم عاملهای مختلف را ممکن میکند چرا توسعهدهندگان باید بخواهند از استاندارد UWP استفاده کنند؟
PWA-ها در گوگل کروم – فرقی نمیکند که نسخهی ویندوز باشد یا مک یا لینوکس یا Chrome OS – میخواهند جانشین پلتفرم بیسرانجام Chrome Apps شوند. گوگل میگوید پشتیبانی از نصب رومیزی PWA-ها حدوداً تا اواسط ۲۰۱۸ در اختیار کاربران قرار میگیرد. آنگاه این PWA-ها با نسخهی دسکتاپ کروم کار خواهند کرد. این ویژگی پیش از این هم در نسخهی ناپایدار کروم با نام قناری (Canary) آزمایش شده است.
نسخهی اندروید گوگل کروم هم مثل سایر مرورگرها از جمله فایرفاکس، اوپرا و مرورگر سامسونگ از قبل از PWA-ها پشتیبانی میکرد. گوگل در حال کار بر روی فناوری جدیدی به نام WebAPK است که اجازه میدهد PWA به فایلهای APK (فایل برنامههای اندروید) تبدیل شده و مثل اپلیکیشنهای معمولی روی این دستگاهها نصب شود. مدیر پروژهی گوگل اعلام کرده که ممکن است PWA-ها نیز به Play Store اضافه شود.
اپل هم که تاکنون در این حوزه نقش فعالی نداشته در حال افزودن PWA به مرورگر خود، سافاری، است.
۲۰۱۸ برای PWA-ها سال بزرگی خواهد بود، به خصوص بر روی ویندوز ۱۰ که میتواند به مایکروسافت در از بین بردن شکاف نرمافزاری موجود کمک کند و اپلیکیشنهای بیشتری را به این پلتفرم بیاورد.