من مطمئنم که بیشتر شما حتما درباره برنامههای وب پیشرونده (PWA) چیزهایی شنیدهاید. PWA یک فناوری هیجان انگیز است که توانایی تغییر روش توسعه برنامههای تحت وب و تلفن همراه را دارد. با این حال، برخی ممکن است بگویند PWA فقط وبسایتی است که به یک برنامه تلفن همراه تبدیل میشود در حالی که برخی در مورد قابلیتهای آن، مشکلات امنیتی و عملکرد آن بر روی برنامههای تلفن همراه بومی بحث میکنند.
بنابراین، در این مقاله، من پنج ویژگی ارزشمند PWA را توضیح میدهم که برای وب و برنامههای تلفن همراه آینده شما مفید است.
۱. یک فناوری واحد برای پلتفرمهای وب و تلفن همراه
در دنیای فنی مدرن، میتوانیم ببینیم که توسعهدهندگان خود را به عنوان توسعهدهنده وب، توسعهدهنده تلفن همراه و غیره معرفی کردهاند.
با نگاهی به دلایل موجود، میفهمیم که فناوریها، ابزارها و پلتفرمهای مختلف سهم قابل توجهی در این تقسیمبندی داشتهاند.
اگر توسعه برنامههای بومی را به عنوان مثال در نظر بگیریم، این امر به علم و دانشی در مورد چند فناوری تخصصی مانند Java، Kotlin، Swift، Flutter و غیره و مجموعه ابزارهایی مانند Android Studio، XCode و غیره نیاز دارد.
در مقابل، آسان است که با JavaScript یا TypeScript، HTML، CSS کار کنید و از فریمورکی مانند Angular یا کتابخانهای مانند React استفاده کنید. اگر به نتیجه نظرسنجی stackoverflow در سال ۲۰۱۹ نگاه میکردیم، میدیدیم که این زبانهای توسعه وب محبوبترین زبانها هستند.
این نتایج بر روی پذیرش فناوری توسط توسعهدهندگان تاثیر میگذارد و در نتیجه، یافتن برنامه نویسان در مسیر وب آسانتر میشود.
هزینههای توسعه را کاهش داده، سریعتر تحویل دهید
استفاده از stack یکسان برای Native و Web نه تنها راهی برای جلوگیری از یادگیری زبانها و فریمورکهای جدید میباشد، بلکه راهی برای استفاده هرچه بیشتر از کد است.
با به اشتراکگذاری و مدیریت کامپوننتها یا ماژولهای قابل استفاده مجدد در هابهای کامپوننتهای ابری، میتوانید به جای اتلاف وقت خود برای ساخت چندین فناوری و پلتفرم، بر روی ایجاد برنامههای عالی تمرکز کنید.
۲. عملکرد مطمئن
سریع، قابل اعتماد و جذاب بودن از ویژگیهای قابل توجهی است که میتوانیم در PWAها ببینیم. Application shell Architecture یکی از بهترین روشها برای دستیابی به این ویژگیهاست. این معماری عملکردی سریع و قابل اطمینان را حتی با اتصالات کند یا آفلاین برای کاربران فراهم میکند. بیایید مزیت اصلی این معماری را بررسی کنیم:
اگر از این معماری پیروی کنیم، میتوانیم برنامه را به دو قسمت اصلی Shell و Content تقسیم کنیم. حداقل محتوای مورد نیاز برنامه برای شروع رابط کاربری را Shell مینامند و سایر قسمتهای پویا که به اتصال اینترنت نیاز دارند Content نامیده می شوند. پس این shell وظیفه فراهم آوردن تجربه کاربری سریع و قابل اعتماد برای کاربران را با ذخیرهسازی محتوای آن برای استفاده در محیطهای آفلاین بر عهده دارد.
این روش برای برنامههای تک صفحهای مناسب است و میزان استفاده از دادههای مقرون بصرفه، عملکرد مطمئن و سریع، تجربه تعامل بومی را به کاربران ارائه میدهد.
۳. با استفاده از Service Workers بهترین تجربه کاربری را فراهم میکند
اگر شما یک توسعهدهنده وب هستید، مطمئنم که حتما از Service Workerها استفاده کرده یا درباره آن چیزهایی شنیدهاید.Worker Service در پسزمینه برنامه وب شما اجرا میشود و تعداد زیادی از کارها را انجام میدهد که نیازی به توجه کاربر ندارند. این Worker Service ها در اغلب اوقات در برنامههای وب جدید مورد استفاده قرار میگیرند و همچنین میتوانند در برنامههای وب پیشرونده نیز مورد استفاده قرار گیرند. بیایید به ویژگیهای اصلی ارائه شده آن نگاهی بیندازیم:
کار کردن به صورت آفلاین
توانایی کار کردن به صورت آفلاین یکی از ویژگیهای رقابتی PWA در مقایسه با برنامههای بومی است و PWA این توانایی را به دلیل Service Workerها کسب میکند. با این قابلیت میتوانید Shell را در حافظه پنهان ذخیره کنید و آن بلافاصله با بازگشت کاربر بارگذاری خواهد شد. این عملیات پسزمینه امکان بهبود تجربه کاربری از برنامه را فراهم میسازد، زیرا کاربر تفاوت قابل توجهی بین حالت آنلاین و آفلاین نخواهد دید. اما محتوای پویا فقط در صورت وجود اتصال نوسازی میشود. برای نمونه، ما میتوانیم تلگرام را که یک پلتفرم پیامرسان است برای شما مثال بزنیم. این برنامه به طور معمولی باز میشود و شما میتوانید چتهای قبلی را ببینید و بخوانید، حتی اگر آفلاین باشید. این برنامه پیامهای جدید را هر زمان که آنلاین شدید نمایش میدهد.
همگامسازی پسزمینه
همگامسازی پسزمینه یکی دیگر از ویژگیهای ارائه شده توسط Service Workers است و به برنامه این اجازه را میدهد تا در صورت وجود اتصال، به هر درخواست مهمی پاسخ دهد، حتی شما در حالت آفلاین هم قادر به برقرای تماس هستید. به عنوان مثال، اگر در حالت آفلاین بودن پیامی ارسال کنید، این سرویس آن درخواست را انجام داده و در صورت وجود اتصال، آن درخواست را تکمیل خواهد کرد. اجرای آزمایشی همگامسازی پسزمینه در ادامه نشان داده شده است:
navigator.serviceWorker.register('/service_worker.js');
navigator.serviceWorker.ready.then(function(swRegistration) {
return swRegistration.sync.register('backGroundSync');
});
self.addEventListener('sync', function(event) {
if (event.tag == 'backGroundSync') {
event.waitUntil(yourFunction());
}
});
همانطور که قبلا اشاره کردم، این سرویس طوری طراحی شده است تا همگامسازی پسزمینه حتی هنگام بسته شدن برنامه نیز کار کند. yourFunction() کاری خواهد کرد تا وضعیت فعالیت را به عنوان موفقیت یا عدم موفقیت نشان دهد. اگر موفقیت آمیز باشد، همگامسازی پسزمینه به پایان رسیده است و در صورت عدم موفقیت، همگامسازی دیگری بعدا برنامهریزی خواهد شد. همچنین، توجه داشته باشید که نام yourFunction() باید برای یک همگامسازی خاص منحصر به فرد باشد.
به غیر از این دو، ویژگیهای زیادی توسط این سرویس به PWAها مانند دریافت Push Notifications حتی در صورت عدم فعال بودن برنامه، ذخیرهسازی درخواستهای شبکه، ذخیرهسازی مطالب استاتیک و غیره ارائه شده است.
۴. برنامههای بومی را ببینید و احساس کنید
اگر یک توضیح ساده بدهم، مانیفِست برنامه وب، فایل JSON است که مسئول ظاهر بومی برنامه وب پیشرونده است. اگر برنامهای را از play store یا app store نصب کنیم، میتوانیم یک آیکون از آن برنامه را بر روی تلفن همراه خود ببینیم و این باعث تعامل بیشتر کاربران با برنامههای تلفن همراه نسبت به وبسایتها میشود. برای PWA، فایل مانیفست برنامه وب نقطه ورود تمام تعاملات کاربری است و تمام فراداده مربوط به نحوه نمایش برنامه به کاربر در اینجا گنجانده شده است. با استفاده از این فایل JSON، ما میتوانیم بسیاری از عناصر برنامه از جمله آیکونهای برنامه، رنگهای تم، جهتگیری و صفحه اسپلش را تغییر دهیم. بیایید با استفاده از یک مثال در مورد این خصوصیات کمی بیشتر صحبت کنیم:
{
"name": "My Example App",
"short_name": "My App",
"start_url": ".",
"display": "standalone"
"background_color": "#ffffff",
"theme_color": "red"
"description": "Demo App.",
"orientation": "portrait-primary",
"icons": [{
"src": "images/logo.png",
"sizes": "48x48",
"type": "image/png"
} ... ],
"related_applications": [{
"platform": "play",
"url": "https://play.google.com/store/apps/details?..."
}]
}
یک فایل ساده JSON ساده به مانند مثال بالاست: ویژگیهای name و short-name برای display name برنامهها استفاده میشود. در اینجا، ویژگی icons شامل لیستی از آیکونهای برنامه در اندازههای مختلف است. ویژگی display میتواند قابلیتهای fullscreen، standalone، minimal-UI و browser vales را داشته باشد و حالت fullscreen را از همه عناصر مرورگر حذف کند و بهترین احساس بومی را برای برنامه شما فراهم سازد. هنگامی که کاربر برنامه وب پیشرونده را از صفحه اصلی خود راهاندازی میکند، Start-url صفحه بارگذاری شده را تعریف مینماید. جدا از اینها، ویژگیهای بسیاری وجود دارد که میتوانید از ﺁنها برای انتقال احساسات بومی به PWA خود استفاده کنید. مهمترین نکته به عنوان یک توسعهدهنده این است که شما کنترل کاملی بر روند شروع برنامه داشته باشید و به راحتی بتوانید با استفاده از این ویژگیها با برنامههای بومی رقابت کنید.
۵. افزایش امنیت و دسترسی شفاف به قابلیتهای دستگاه
امنیت جنبه قابل توجه دیگری است که باید آن را در نظر بگیریم. با افزایش حوادث امنیتی در سراسر جهان، کاربران بیش از هر زمان دیگر نگران امنیت دستگاههای خود در برابر حملات مخرب هستند. بنابراین ما به عنوان توسعهدهنده باید با هر فناوری که انتخاب میکنیم بهترین شیوههای امنیتی را ایجاد کرده تا از این مسائل جلوگیری کنیم. پس بیایید ببینیم که چگونه میتوانیم با PWA امنیت کاربران خود را تضمین کنیم.
PWA امنیت لایه انتقال را تقویت میکند. بنابراین، کاربران، اطلاعات حساس را هنگام انتقال رمزگذاری میکنند و دادهها فقط با استفاده از یک کلید خصوصی ذخیره شده در سرور رمزگشایی خواهد شد. به همین دلیل، وبسایت PWA باید با استفاده از HTTPS ارائه شود و نصب گواهی SSL در سرور یک امر ضروری است.
همچنین، PWA بدون اجازه کاربران با سخت افزار دستگاه ارتباط برقرار نمیکند و پنهان کردن کدهای مخرب در داخل برنامههای PWA کار آسانی نیست. اگر بهترین روشها را دنبال کنیم و فقط دسترسی لازم به دستگاه را درخواست کرده و از کتابخانههای معتبر JavaScript که بروز هستند استفاده کنیم، خطر به طور چشمگیری کاهش مییابد.
نتیجهگیری
علاوه بر این ۵ دلیل، PWA حاوی ویژگیهای بسیاری است که ما از هر برنامه وب یا تلفن همراه مانند سرعت، اعتماد، تجربه کاربری و غیره انتظار داریم. به عنوان یک توسعهدهنده، توسعه PWA آسان است. زمان توسعه PWA در مقایسه با توسعه برنامههای بومی بسیار کم است.
اگر از نظر تجاری تصمیم بگیرید که با PWA کار کنید، هزینه شما کمتر و دسترسی به بازار کار بالاتر خواهد بود و همچنین میتوانید در موتورهای جستجو با سرعت بیشتری بهینه شوید. پس اگر به دنبال راهحلی برای وب و برنامههای تلفن همراه خود هستید، از امتحان کردن PWA دریغ نکنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید