در سالهای 2010 تا 2015 پنلهای مدیریت و کاربری پیشرفت چشمگیری داشتند؛ تا جایی که تبدیل به نرمافزارهای مدیریتی آنلاین شدند. در سال 2009 گوگل، ایده نرمافزارهای تحت وب را با معرفی سیستمعامل کروم مطرح کرد و از چندین پروژه به عنوان اپلیکیشنهای آنلاین مانند Docs و Sheets و Slides رونمایی کرد که همگی مجموعهای از Google Suite به شمار میآیند. حتی همزمان سیستمعامل کروم و اجرای پیشرفتهتر برنامههای مرورگر گوگل کروم بر روی این سیستمعامل جدید را معرفی کرد. سیستمعاملی که بر پایه نرمافزارهای آنلاین طراحی شده بود و برای کارهای شخصی و کوچک مناسب بود. در نهایت گوگل در سال 2015 از فناوری وب اپلیکیشن پیش رونده یا PWA (Progressive Web) رونمایی کرد.
وب اپلیکیشن پیش رونده یا PWA (Progressive Web) چیست؟
در اصل به اپلیکیشنهایی که آنلاین و در بستر مرورگر اجرا میشوند، وب اپلیکیشن پیش رونده یا PWA (Progressive Web Application) گفته میشود. در واقع اپلیکیشنهای پیشرونده همان صفحات وب هستند که با امکانات بیشتر و بسیار نرمتر و سریعتر تنها در یک صفحه و تمام Ajax اجرا میشوند. این وب اپلیکیشنها با همان زبان HTML ، CSS و JavaScript و گاهاً با فناوری WebAssembly طراحی میشوند؛ با این تفاوت که دسترسی به بخشهایی از سیستمعامل و سخت افزار به آن افزوده شده است. دسترسیهای جدید این امکان را ایجاد میکنند تا نرمافزارهای آنلاین در سمت مشتری هم بتوانند پردازشهای لازم را انجام دهند. علاوه بر اینکه برنامههای آنلاین نیاز به نصب ندارند و تنها با لود کردن پکیجهای مورد نیاز خود، درون مرورگر اجرا میشوند.
گوگل برای اینکه بتواند مرورگرها را قادر به اجرای نرمتر و سریعتر برنامههای تحت وب کند و به آنها دسترسیهای بیشتری از سخت افزار را بدهد، زبان و توابع جاوا اسکریپت را در هستهی گوگل کروم بروزرسانی کرد. اگرچه گوگل با بروزرسانی جاوا اسکریپت، PWA را معرفی کرد، اما این فناوری بیشتر از اینکه یک فناوری جدید باشد، نوعی تکنیک جدید در برنامه نویسی را ایجاد کرد که در پس آن Node.JS و ElectronJS خلق شدند. از این رو میتوان از آن به عنوان یک بروزرسانی بزرگ برای جاوا اسکریپت هم یاد کرد.
با اینکه بعداً مرورگر فایرفاکس هم از این بروزرسانیها پشتیبانی کرد، اما در نهایت بیش از 80 درصد نرمافزارهای آنلاین برپایه گوگل کروم و در کروم استور منتشر شدند. برنامهای که از یک مرورگر وب به عنوان کلاینت استفاده میکند میتواند به عنوان یک برنامه کاربردی وب شناخته شود و به این نرمافزار تحت وب در اصطلاح فنی (application that uses a web browser as a client) نیز گفته میشود.
فناوری AJAX چیست؟
ایجکس (AJAX Asynchronous JavaScript And XML) یکی از فناوریهای وب است که امکان دریافت اطلاعات را درون خود جاوا اسکریپت فراهم میکند. این فناوری ابتدا برای دریافت و تحلیل در لحظه XML توسعه یافت، اما بیشتر از هر چیز از آن برای دریافت اطلاعات JSON استفاده میشد. ای جکس طراحی صفحات تک صفحهای ممکن کرد. jQuery به واسته توسعه توابع AJAX توانست محبوبترین کتابخانه جاوا اسکریپت شود. اما امروز تمامی کتابخانهها از جمله Angular ، Ionic و ... از آن در لایه زیرین خود استفاده میکنند.
تفاوت وب اپلیکیشن و وب سایت
در وب اپلیکیشن همه چیز در یک صفحه اجرا میشود و برای نمایش بخشهای مختلف مرورگر از صفحهای به صفحه دیگر پرش نمیکند. همچنین سرعت اجرای در وب اپها بسیار بیشتر از وبسایت است و بسیار نرمتر از وبسایتها بارگذاری میشوند؛ زیرا وب اپها تنها یک بار کدهای خود را دانلود میکنند و در مرورگر کش میکنند و در مراجعات بعدی تنها اطلاعات جدید را به کدهای قبلی اضافه میکنند. درحالی که وبسایتها دائماً سعی در دانلود محتوای تکراری خود میکنند و از صفحهای به صفحه دیگر منتقل میشوند که این خود سرعت بارگذاری را کند میکند و ممکن است بین 3 تا 10 ثانیه هر بار پرش بطول بیانجامد.
نمونههایی از وب اپلیکیشن
اگر بخواهیم نمونههای برنامه کاربردی وب را مثال بزنیم، بهترین مثال مجموعه نرمافزارهای آنلاین گوگل است. از جیمیل و گوگل مپ گرفته تا مجموعه نرمافزارهای Google Suite. اما در نمونههای ایرانی میتوان به دیجیکالا ، کتابچی ، دیوار ، اسنپ ، Time.ir , تلوبیون اشاره کرد.
امکانات جدید وب اپلیکیشن در گوگل کروم
با ورود گوشیهای هوشمند و افزوده شدن سخت افزارهایی نظیر GPS، دوربین سلفی، حسگر اثر انگشت و حسگرهای مختلف دیگر، ایدههای جدید بر اساس این ابزارهای جدید بوجود آمد و امروزه شاهد میلیونها اپلیکیشن کاربردی و ایده پردازانه در اپاستور و گوگلپلی هستیم. در ابتدا این سخت افزارها تنها برای اپلیکیشنهای بومی در دسترس بودند. اما پس از این که گوگل امکان استفاده از سخت افزار را در مرورگر گوگل کروم و هسته کرومیوم قرار داد، تمامی وب اپلیکیشنها در تمامی سیستمعاملها قادر به استفاده از بخشها مختلف سخت افزار و سیستمعامل شدند. البته توجه داشته باشید که وب اپها قبل از اینکه به هر کدام از سخت افزارها دسترسی داشته باشند، از کاربر اجازه میگیرند.
ذخیره دیتابیس درون دستگاه کاربر مشتری
وب اپلیکیشنها نیز مانند هر اپلیکیشن دیگری نیاز دارند تا برخی از اطلاعات را درون دستگاه ذخیره کنند. دقیقاً مشابه اپلیکیشنهای کاربردی و یا حسابداری که اطلاعات را در کامپیوتر ذخیره میکنند. بنابراین امکان استفاده از دیتابیس و SQLite درون مرورگر فراهم شده و اطلاعات آن همانند کوکیها در مرورگر ذخیره میشود.
دسترسی به فایلها (خواندن و نوشتن فایل بر روی حافظه)
در گذشته امکان دسترسی به فایلهای داخل کامپیوتر محیا نبود و وبسایتها تنها با انتخاب فایل توسط کاربر قادر به آپلود فایل در کامپیوتر بودند. اما امروز مرورگرها قادر هستند تا به درایوها حافظه دسترسی داشته باشند و هر کجا نیاز بود فایل ایجاد و ذخیره کنند.
دسترسی به دوربینها و میکروفن
دسترسی به دوربینها و میکروفن امکان ایجاد وبینار را فراهم میکند. در سالها اخیر تماسهای تصویری و همچنین کلاسها آنلاین کاربران زیادی را به خود جذب کرده است. مخصوصاً بعد از دوره کرونا که نزدیک به دو سال تمامی کلاسها غیر حضوری و آنلاین بود. بنابراین دسترسی به دوربین میتواند به ایدههای این چنینی کمک زیادی کند. نمونه آن را میتوانید در وبینار SkyRoom مشاهده کنید.
دسترسی به لوکیشن
یکی از سخت افزارهایی که اجازه داد تا ایدههای جذابی مانند اوبر و اسنپ اجرا شوند، GPS بود. این سخت افزار موقعیت مکانی کاربر را با اجازه خود کاربر به اپلیکیشن میدهد و اپلیکیشن هم بر اساس آن، برنامههای کاربردی مبتنی بر نقشه را اجرا میکند و یا محتوای خود را برای کاربر فیلتر میکند.
ارسال اعلان Notification
PWA این امکان را بوجود آورد تا کاربران بتوانند اعلانات موقت وبسایتهای مورد علاقه خود را دریافت کنند. این امکان میتواند در وب اپلیکیشنهای چت کاربرد زیادی داشته باشد. همچنین وبسایتهای فروشگاهی میتوانند جشنوارههای تخفیف را به مشتریان وفادار خود اعلام کنند.
مزایا و معایب وب اپلیکیشن ها
با اینکه وب اپلیکیشنها کار توسعه اپلیکیشن را بسیار ساده کردهاند، اما مانند دیگر ابزارهای توسعه ممکن است دارای مزایا و معایبی باشند که باید قبل از استفاده از آن، به این موارد توجه داشته باشیم. در ادامه مزایا و معایب وب اپلیکیشنها را بررسی خواهیم کرد:
مزایای استفاده از وب اپلیکیشن
-
Cross Platform: اپلیکیشنهای PWA به واسطهی مرورگرهای گوگل کروم و فایرفاکس، میتوانند در تمامی دستگاه ها و سیستمعاملها اجرا شوند.
-
بدون نیاز به نصب: برنامههای PWA نیازی به دانلود و نصب از اپاستور و گوگلپلی ندارند و تنها کافی است که صفحه مربوط به آن را در مرورگر باز کنید. برای اینکه وب اپلیکیشن مورد نظر خود را بر روی صفحه لانچر گوشی داشته باشید، کافی از از منوی مرورگر بر روی گزینهی Install App تاچ کنید تا آیکن آن بر روی لانچر اضافه شود. وب اپلیکیشنها در اولین بارگذاری بستههای مربوط به اجرای برنامه را درون مرورگر دانلود و کش میکنند تا در استفادههای بعدی بسرعت بارگذاری شوند. اگرچه میتوان برای سهولت کار کاربران یک برنامه WebView برای اجرای PWA در اپاستور و گوگلپلی منتشر کرد.
-
حجم بسیار کم: وب اپلیکیشنها همه محتوای خود را از سرور اصلی اجرا میکنند، این بدین معنی است که وب اپ نیازی به دانلود یکباره همه چیز ندارد و تنها زمانی محتوای مورد نظر را دانلود میکند که به آن نیاز داشته باشد.
-
سادگی در کدنویسی: از آنجا که کتابخانهها و فریمورکهای PWA همگی بخشی از زبانهای اصلی وب هستند، بنابراین زمانی که شما جاوا اسکریپت و HTML و CSS را بلد باشید، میتوانید به سادگی فریمورکهای دیگر را نیز یاد بگیرید. از این رو کدنویسی برای PWA آسان است و بیشتر از آنکه نیاز به یادگیری زبان جدید داشته باشید، میبایست بتوانید با فریمورکها و کتابخانهها کار کنید که آن هم کار بسیار آسانی است.
-
کتابخانههای متنوع: برای توسعه PWA و بطور مشخص جاوا اسکریپت، کتابخانهها و فریمورکهای متنوع و زیادی وجود دارند که به کمک آنها میتوانید پروژههای سنگین را نیز در کمترین زمان، توسعه دهید. کافی است به سایت npmjs.com سری بزنید و از هزاران کتابخانه قدرتمند آن بصورت رایگان استفاده کنید.
معایب استفاده از وب اپلیکیشن
-
کاهش سرعت اجرا: از آنجا که وب اپلیکیشنهای PWA به صورت چند سکویی اجرا میشوند، میبایست چندین زبان پشت سر هم ترجمه شوند تا برنامه برای اجرا به پردازنده برسد. حتی بعضی از کدها به واسطه TypeScript خود چندین سکو بر روی جاوا اسکریپت ایجاد میکنند. حال آنکه خود جاوا اسکریپت بر روی چند سکوی دیگر قرار دارد. از این رو سرعت اجرای اپلیکیشنهای PWA نسبت به اپلیکیشنهای Native حداقل تا 50 درصد کمتر است و تنها راه بالا بردن سرعت اجرا، بهینه سازی کدها و سبک برنامه نویسی بهینه است. بهتر از تنها از یک فریمورک پرسرعت استفاده کنید و از نصب کتابخانههای اضافی پرهیز کنید.
-
وابستگی به اینترنت: از آنجا که برنامههای PWA تمامی محتوای خود را از اینترنت دانلود میکنند و باید با سرعت بالایی اجرا شوند، وابستگی زیادی به اینترنت دارند و بیشتر کدها را تنها در زمان نیاز دانلود و اجرا میکند. البته برخی از این وب اپلیکیشنها برای ایجاد عدم وابستگی کامل به اینترنت، کل دادهها را یکجا دانلود میکنند و میتوانند بصورت آفلاین نیز به کار خود ادامه دهند. بنابراین وابستگی به اینترنت و کدهای آنلاین، تصمیمی است که برنامه نویس طبق هدف اپلیکیشن باید بگیرد. با این حال همچنان 80 درصد برنامههای PWA به اینترنت وابستگی دارند. حتی بیشتر برنامههای Native هم به اینترنت وابتسگی دارند.
برنامههای آنلاین Chrome Store
تا اینجای کار در مورد برنامههای وب اپلیکیشن صحبت کردیم. اما نباید از یاد ببریم که گوگل قبل از هر چیز قصد ایجاد اپلیکیشنهای دسکتاپ و آنلاین را داشت و برای همین منظور سیستمعامل و مرورگر گوگل کروم را توسعه داد. از این رو بد نیست نگاهی هم به برنامههای مرورگر کروم بیاندازیم و کاربرد آنها را نیز مقایسه کنیم. برنامههای مرورگر کروم با فرمت crx از کروماستور دانلود و به صورت Extension نصب میشوند. این فایل در واقع یک فایل zip است که محتوای آن توسط کروماستور تأیید شده و در آن از استاندارد کدنویسی فریمورک مرورگر کروم استفاده شده است. اگرچه میتوان این فرمت را با وریمورکهای دیگر نیز ترکیب کرد تا به یک اپلیکیشن قدرتمند دست یافت.
گوگل کروم همزمان هم از وب اپلیکیشنها پشتبانی میکند و هم از افزونهها و اپلیکیشنهای کروم. بنابراین میتوان این مرورگر را چند منظوره توصیف کرد. یکی از ویژگیهای جالب گوگل کروم این است که کاربر میتواند هر صفحهای که از آن به صورت اپلیکیشن استفاده میکند را به صورت یک اپلیکیشن دسکتاپ داشته باشد تا گزینههای اضافی مرورگر حین اجرای وب اپلیکیشن، حذف شوند. برای این کار کافی است از منوی اصلی مرورگر کروم، در زیر منوی Save & Share گزینه Create Shortcut را انتخاب کنید. سپس در کادری که باز میشود، تیک Open as Window را فعال کنید تا آن صفحه مانند یک اپلیکیشن و بدون نوار آدرس و دکمههای اضافی باز شود.
سخن پایانی
اولین بار شرکت مایکروسافت بود که امکان ایجاد اپلیکیشنها تحت وب را در مرورگر اینترنت اکسپلورر ایجاد کرد. این اپلیکیشنها با فرمت mhtml به صورت یک برنامه پک شده نوشته میشدند. در همان سالهای اوج اینترنت اکسپلورر برنامههای اداری بزرگی با آن نوشته شد و به همین دلیل مایکروسافت تا آخرین سالهای عرضه ویندوز 10، اینترنت اکسپلورر را از ویندوز حذف نکرد تا شرکتهایی که هنوز از برنامههای آن استفاده میکنند، با مشکل مواجه نشوند.
null